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

@ysyneu ysyneu commented Jul 20, 2026

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: --description removed, --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-fix Jul 20, 2026
12 checks passed
@ysyneu
ysyneu deleted the fix/monit-contract-sync branch July 20, 2026 10:43
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