Skip to content

chore(sdk): bump go-flashduty, regenerate CLI for the monit sparse-field contract - #92

Merged
ysyneu merged 1 commit into
feat/api-review-auto-fixfrom
fix/monit-contract-sync
Jul 20, 2026
Merged

chore(sdk): bump go-flashduty, regenerate CLI for the monit sparse-field contract#92
ysyneu merged 1 commit into
feat/api-review-auto-fixfrom
fix/monit-contract-sync

Conversation

@ysyneu

Copy link
Copy Markdown
Contributor

Third link in the monit contract chain: flashduty-docs #190 → go-flashduty #31 (merged) → this PR → runner bundle → sandbox.

Why

monit-webapi d0d1ef4 changed /monit/tools/invoke and /monit/tools/catalog to sparse-field responses — absent means empty, no null placeholders — and flattened the single-tool result (no nested data.data). The CLI's generated response-help still described the old shape, so flashduty diagnostics tools-invoke --help told callers to expect "data": null / "error": null / "tool_version": "" fields the server no longer sends.

What

go get github.com/flashcatcloud/go-flashduty@4d5816a + go run ./internal/cmd/cligen + make gen-cards, in one commitzz_generated_*.go are generated from the linked SDK's embedded openapi.en.json, so a split commit fails CI's cligen drift check.

monit-facing result: data / summary / truncated / tool_version / per-tool error / target / error.target_kinds / next_cursor / output_shape are now all documented as present-only.

Carried along (honest disclosure)

The regen also picks up unrelated SDK work already merged upstream. This is not optional — the regen is whole-tree.

New commands

  • flashduty licenses …
  • flashduty session-replay …

Breaking

  • a2a-agent create/update: --descriptionremoved, --instructions now required (API deprecated description in favour of instructions)
  • session list/info: entry_kind enum scheduledautomation

Additive

  • a2a-agent: --allow-insecure-oauth-http, --allow-insecure-tls-skip-verify, --environment-id, --environment-kind, --query
  • a2a-agent list: --scope enum all|personal|teamall|account|team
  • automation create: --cron-expr no longer marked required

skills/flashduty/reference/monit-agent.md and monit.md are unchanged here — PR #91 already landed those card fixes and make gen-cards reproduces them byte-for-byte.

Verification

make check green locally: gofmt+gci clean, golangci-lint 0 issues, go test -race ./... all packages ok, build ok. CLI JSON and toon output were previously verified key-for-key identical to the live webapi wire on both success and error paths against dev (localhost:11480, target devbox.107.local).

Follow-up

Merging this unblocks tag v1.3.27 → flashduty-runner FDUTY_VERSION bump + checksums → runner release → sandbox image rebuild/repoint → prod overlay.

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.
@ysyneu
ysyneu merged commit 5020cfd into feat/api-review-auto-fixJul 20, 2026
12 checks passed
@ysyneu
ysyneu deleted the fix/monit-contract-sync branch July 20, 2026 10:43
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