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

@ysyneu ysyneu commented Jul 20, 2026

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/catalog sparse-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: --description removed, --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.

dependabot Bot and 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 main Jul 20, 2026
12 checks passed
Sign up for free to 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