Skip to content

release: v1.3.27 — monit sparse-field contract + regenerated CLI surface - #93

Merged
ysyneu merged 6 commits into
mainfrom
feat/api-review-auto-fix
Jul 20, 2026
Merged

release: v1.3.27 — monit sparse-field contract + regenerated CLI surface#93
ysyneu merged 6 commits into
mainfrom
feat/api-review-auto-fix

Conversation

@ysyneu

Copy link
Copy Markdown
Contributor

Release merge for v1.3.27. Authorized by @ysyneu ("cli 你自行合并发版即可").

What lands

The intended change — the monit contract chain (flashduty-docs #190 → go-flashduty #31 → flashduty-cli #92):
monit-webapi d0d1ef4 made /monit/tools/invoke and /monit/tools/catalogsparse-field responses (absent means empty, no null placeholders) and flattened the single-tool result envelope. The CLI's generated response-help still documented the old shape. Now data / summary / truncated / tool_version / per-tool error / target / error.target_kinds / next_cursor / output_shape are all documented as present-only.

Also #91: the monit / monit-agent skill cards referenced four tool names that do not exist in the monit-agent registry, and os.top_processes params sort/limit (real names: sort_by/top_n — the agent validates with additionalProperties: false, so a wrong name is a hard invalid_args failure).

⚠️ Carried along — read before tagging

main was pinned to go-flashduty v0.5.6-0.20260714 but had never been regenerated against it (there is no cligen drift check in CI, so it went unnoticed). PR #92's regen therefore also materializes that backlog:

New commands

  • flashduty licenses …
  • flashduty session-replay …

Breaking

  • a2a-agent create/update: --descriptionremoved, --instructions now required (the API deprecated description in favour of instructions)
  • session list/info: entry_kind enum scheduledautomation
  • a2a-agent list: --scope enum all|personal|teamall|account|team

Additive

  • a2a-agent: --allow-insecure-oauth-http, --allow-insecure-tls-skip-verify, --environment-id, --environment-kind, --query
  • automation create: --cron-expr no longer marked required

These are SDK-side changes already merged upstream; the regen is whole-tree and cannot land them selectively.

Verification

  • make check green on the branch: gofmt+gci clean, golangci-lint 0 issues, go test -race ./... all packages ok, build ok.
  • Reproducibility gate: re-ran make sync-spec (pulls the consolidated spec from flashduty-docs main, now that #190 is merged) + make generate in go-flashduty on feat/api-review-auto-fixzero drift. The docs spec and the SDK this CLI links agree byte-for-byte.
  • CLI JSON and toon output verified key-for-key identical to the live webapi wire on both success and error paths against dev (localhost:11480, target devbox.107.local).

After merge

Tag v1.3.27 → goreleaser → flashduty-runner FDUTY_VERSION bump + checksums → runner release → sandbox image rebuild/repoint → prod overlay.

dependabotBotand others added 6 commits July 9, 2026 04:49
Bumps [golang.org/x/term](https://github.com/golang/term) from 0.44.0 to 0.45.0.
- [Commits](golang/term@v0.44.0...v0.45.0)
---
updated-dependencies:
- dependency-name: golang.org/x/term
dependency-version: 0.45.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
…g.org/x/term-0.45.0
chore(deps): bump golang.org/x/term from 0.44.0 to 0.45.0
`monit-agent.md` ran `host.top` / `host.disk` and `monit.md` ran `host.cpu` /
`host.mem`. None of the four exist. monit-agent v0.0.7 registers exactly:
host → os.overview, os.top_processes, net.tcp_ping, http.get, shell.exec;
mysql → mysql.overview, mysql.lock_contention, mysql.query.
An agent copying these gets `unknown_tool`, and the `host.top` example also
passed `limit`, which is not a parameter of anything (`os.top_processes` takes
`top_n` / `sort_by`, and the agent validates with `additionalProperties:false`,
so a wrong key is a hard `invalid_args`, not a silent no-op).
The generated help in this repo (zz_generated_diagnostics.go,
zz_generated_response_help.go) was already correct — only these hand-written
cards drifted, because nothing checks their JSON bodies against the registry.
Replacements verified live against a real dev target. Deliberately kept
separate from the SDK-bump branch so it can land without waiting on that.
fix(skills): monit 卡片里四个工具名不存在
Picks up go-flashduty 4d5816a (PR #31), which regenerates the SDK from the
corrected monit OpenAPI spec (flashduty-docs #190).
monit contract — the reason for this bump:
monit-webapi d0d1ef4 turned /monit/tools/invoke and /monit/tools/catalog
into sparse-field responses (omit instead of null) and flattened the
single-tool result envelope. The CLI's generated response-help still
documented the old nested/nullable shape, telling callers to expect
"data": null and "error": null placeholders that the server no longer
sends. Now aligned: data/summary/truncated/tool_version/error/target/
target_kinds/next_cursor/output_shape are all documented as present-only.
Carried along — unrelated SDK work already merged upstream that this regen
necessarily picks up (the dep bump and the regen must be one commit or CI's
cligen drift check fails):
New commands
flashduty licenses ...
flashduty session-replay ...
Breaking flag changes
a2a-agent create/update: --description removed, --instructions now
required (the API deprecated description in favour of instructions)
session list/info: entry_kind enum value scheduled -> automation
New flags
a2a-agent: --allow-insecure-oauth-http, --allow-insecure-tls-skip-verify,
--environment-id, --environment-kind, --query
a2a-agent list: --scope enum all|personal|team -> all|account|team
automation create: --cron-expr no longer marked required
Cards regenerated via `make gen-cards`; monit-agent.md / monit.md are
unchanged here because PR #91 already landed those fixes.
make check green: gofmt+gci clean, golangci-lint 0 issues, go test -race all
packages ok, build ok.
chore(sdk): bump go-flashduty, regenerate CLI for the monit sparse-field contract
@ysyneu
ysyneu merged commit 054f36a into mainJul 20, 2026
12 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ysyneu