chore: sync main into feat/ai-sre#97
Merged
Merged
Conversation
release: feat/ai-sre → main (incident list --channel-id)
…re-rename shadows, #50 positional args
Feat/ai sre
… skills.sh (v1.3.15) release: flashduty skill v1.3.15 — generated cards + withdraw from skills.sh
…1.3.16) feat/ai-sre → main: add --fields projection to incident/alert list (v1.3.16)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v6...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Merge SDK bump into feat/api-review-auto-fix after CI passed.
Feat/api review auto fix
…ctions/checkout-7 chore(deps): bump actions/checkout from 6 to 7
…2a-openapi chore: update go-flashduty SDK
fix: document automation schedules as UTC
…ination Schedule/oncall output returns `person_id`s — a different id namespace from `member_id`. The schedule.md card and the `oncall who` help told agents to resolve names by joining `fduty member list` on `member_id`: wrong namespace, and it forces a full-roster scan that silently drops people on later pages. In prod this produced a confidently-incomplete on-call answer (a responder on page 21 of 22 was missed). The batch resolver already exists: `fduty person infos <person_id> ...` (POST /person/infos) returns person_id + person_name in one call. Point the cards and the oncall help at it, and warn that person_id != member_id. - schedule.md: replace the member_id-join flow with `person infos` - member.md: cross-reference `person infos`; add a person_id gotcha - oncall.go: correct the `oncall who` Long help (table already enriches names; use `person infos` for raw ids elsewhere) Surfaced by /audit-ai-sre-sessions (run audit-2026-06-26): sess_8fKpUejeyKfHt2hx5XNSsc, sess_UtK6eDMFY4TVZCSAj64gKF.
…id 0`, never via fired alerts `rule-counter-status` 400s "too many rules" on large accounts, and a guessed `--folder-id N` 400s "Folder not found". With both paths blocked, a prod agent fell back to FIRED alerts (`insight top-alerts 90d`) as a proxy for CONFIGURED rules and produced a confidently-wrong coverage report — marking P0 checks as "missing" when it had only verified them as not-fired-in-90d. The enumerate-all path already exists: `rule-list-basic --folder-id 0` returns every configured rule with no folder id needed. Make it the documented path, add the two-error fallback, and add a hard CONFIGURED != FIRED warning. monit.md only (skill card; edits are outside the GENERATED fence). Note: `rule-counter-status` itself cannot be scoped/paginated from the CLI — the SDK `ReadCounterStatus(ctx)` and `POST /monit/rule/counter/status` take no params; making it not 400 on large accounts is backend work, out of scope here. Surfaced by /audit-ai-sre-sessions (run audit-2026-06-26): sess_DiRDzjygi4NuYyAcsgzB6o.
… list
The first commit on this branch claimed `rule-list-basic --folder-id 0` lists
all rules. That is FALSE — verified against the live API (400 "Folder not
found") and confirmed in monit-webapi: ListRuleBasic -> SafeFolder ->
GetByID(0) -> nil -> 400. `rule-list-basic` also returns only a folder's
DIRECT rules, not its descendants, and there is no account-wide rule list;
`rule-counter-status`/`rule-status` abort with "too many rules" past a server
cap (default 100).
Corrected guidance: enumerate by walking the folder tree (rule-counter-status
-> rule-status -> rule-list-basic per node); past the cap, report the limit
honestly ("cannot fully enumerate configured rules on this account") instead of
fabricating a completeness %. Kept the CONFIGURED != FIRED guardrail. The
generated `--folder-id` help ("0 to list all accessible rules") is a known
SDK/OpenAPI bug, flagged for a backend round.
Surfaced by /audit-ai-sre-sessions (run audit-2026-06-26): sess_DiRDzjygi4NuYyAcsgzB6o.
…it-agent probes P6 — incident-summary.sh dumped ~80K chars of toon per incident (81042/79075 in the audited sessions), most of it empty boilerplate, overflowing the inline output cap and forcing 3-4 sequential reads to page it back in. Root cause: the script appended `--output-format toon` to every command, which takes each verb's machine-readable branch and marshals the full raw response object (every empty field on `incident detail`, plus heavy blobs like a change's `labels.steps`). The DEFAULT (table/summary) renderer of each of these read verbs is a curated projection of exactly the summary-relevant fields (id/severity/status/title/ channel/timestamps/ai_summary/root_cause/…). Fix: drop `--output-format toon` from run() so each command uses its lean default renderer; that default IS the field projection a fault summary needs. Kept all six commands, set -uo pipefail, and the read-only "print real output" intent. P8 — monit-agent.md: parallelizing multiple probes against the SAME host hit the per-target concurrency limit and returned `code=overloaded`, forcing an identical retry that re-sent the growing context. Added a Gotchas line steering fan-out to serialize probes per target (batch a host's tools into one `invoke`) and parallelize only across distinct targets. Evidence: audit run audit-2026-06-26, sessions sess_TRdrnq5oA345qF66GgbYrY (P6) and sess_QmoruPkRjrwA2tcHvEbNvT (P8). Surfaced by /audit-ai-sre-sessions. These two files are kept byte-identical with their embedded copies in fc-safari (logic/runtime/bootstrap/skills/flashduty/); mirrored there in a linked PR.
release: merge audit fixes for v1.3.22
chore: sync CLI with latest API spec
chore: sync go-flashduty sdk
…space-disambiguation-main docs(skill): disambiguate Flashcat workspace spaces
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>
feat(cli): surface monit diagnose evidence
…g.org/x/term-0.45.0 chore(deps): bump golang.org/x/term from 0.44.0 to 0.45.0
Release v1.3.26
release: sync CLI v1.3.26 to main
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 6 to 7. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](actions/setup-go@v6...v7) --- updated-dependencies: - dependency-name: actions/setup-go dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
`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
release: v1.3.27 — monit sparse-field contract + regenerated CLI surface
…ctions/setup-go-7 chore(deps): bump actions/setup-go from 6 to 7
…eway-err chore: bump go-flashduty to v0.5.7 for clearer gateway-timeout errors
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Bring the latest released CLI baseline into the AI-SRE integration branch before publishing the compact audit projections.
Resolution
Verification