fix(aosguard): re-lock onto umbra v0.161.0 so --query stops being refused #1154

Merged
coilysiren merged 4 commits from chore/relock-umbra-query-fix into main 2026-08-20 09:01:50 +00:00
Member

Closes #1153.

--query is refused on every aosguard ops forgejo verb on the current release, not repo get alone:

$ aosguard --version
aosguard version aos-v0.214.0
$ aosguard ops forgejo repo get coilyco-flight-deck umbra --query topics --output json
aosguard: --query cannot project a non-JSON response

Cause

umbra#293. A shared $ref response carries the root produces, so a JSON operation is flagged raw and writeRawResponse refuses the projection rather than ignoring it. Forgejo's swagger has exactly that shape, which is why the whole area went with it.

The pin missed the fix by hours:

  • v0.142.0 tagged 2026-08-15 16:23 UTC
  • 92afd48 ("fix(specverb): a response offering JSON is parsed, not raw") landed 2026-08-15 21:01 -0700
  • 22352d05 (#1066) re-locked onto v0.142.0 that same day

The fix first ships in v0.143.0, so every release since has carried the refusal.

Change

just aosguard-lock, which moves the frozen umbra graph v0.142.0 -> v0.161.0. One file, .specgen/guardfiles/specverb.lock. The two vendored swagger locks re-locked to identical bytes.

Verification

Against a binary built from this lock:

  • repo get --query topics returns the topics array
  • issue get --query title returns the title
  • org-repo list --query '[*].name' and the flatten form '[].name' both project
  • reads without --query are unchanged

Note for review

The failure was quiet at the call site, which is the part that made it expensive. A caller that reads a non-zero --query result as "no data" writes an empty value instead of reporting a broken tool. coilyco-bridge/agentic-os-kai#888 hit exactly that: a bare except turned the refusal into an empty topic list, indistinguishable from a repository with no topics, and would have blanked every topic in the fleet registry. Fixed on that caller in agentic-os-kai a2775aa, but other --query callers may be swallowing it the same way.

Generated with Claude Code

Closes #1153. `--query` is refused on every `aosguard ops forgejo` verb on the current release, not `repo get` alone: ``` $ aosguard --version aosguard version aos-v0.214.0 $ aosguard ops forgejo repo get coilyco-flight-deck umbra --query topics --output json aosguard: --query cannot project a non-JSON response ``` ## Cause umbra#293. A shared `$ref` response carries the root `produces`, so a JSON operation is flagged raw and `writeRawResponse` refuses the projection rather than ignoring it. Forgejo's swagger has exactly that shape, which is why the whole area went with it. The pin missed the fix by hours: - `v0.142.0` tagged 2026-08-15 16:23 UTC - `92afd48` ("fix(specverb): a response offering JSON is parsed, not raw") landed 2026-08-15 21:01 -0700 - 22352d05 (#1066) re-locked onto `v0.142.0` that same day The fix first ships in `v0.143.0`, so every release since has carried the refusal. ## Change `just aosguard-lock`, which moves the frozen umbra graph `v0.142.0` -> `v0.161.0`. One file, `.specgen/guardfiles/specverb.lock`. The two vendored swagger locks re-locked to identical bytes. ## Verification Against a binary built from this lock: - `repo get --query topics` returns the topics array - `issue get --query title` returns the title - `org-repo list --query '[*].name'` and the flatten form `'[].name'` both project - reads without `--query` are unchanged ## Note for review The failure was quiet at the call site, which is the part that made it expensive. A caller that reads a non-zero `--query` result as "no data" writes an empty value instead of reporting a broken tool. coilyco-bridge/agentic-os-kai#888 hit exactly that: a bare except turned the refusal into an empty topic list, indistinguishable from a repository with no topics, and would have blanked every topic in the fleet registry. Fixed on that caller in agentic-os-kai a2775aa, but other `--query` callers may be swallowing it the same way. Generated with [Claude Code](https://claude.com/claude-code)
fix(aosguard): re-lock onto umbra v0.161.0 so --query stops being refused
Some checks failed
ci / aos-eval-tests (pull_request) Successful in 6s
ci / aos-cli-tests (pull_request) Successful in 18s
ci / ward-doctor (pull_request) Successful in 13s
ci / gate (pull_request) Failing after 29s
745bcc3842
Every `aosguard ops forgejo` verb refused a projection with "--query cannot
project a non-JSON response". Not `repo get` alone: every object read.

The cause is umbra#293. A shared `$ref` response carries the root `produces`,
so a JSON operation is flagged raw and writeRawResponse refuses the projection
rather than ignoring it. Forgejo's swagger has exactly that shape, so the whole
area went with it.

umbra fixed it in 92afd48 and the pin missed it by hours. v0.142.0 was tagged
2026-08-15 16:23 UTC, the fix landed 2026-08-15 21:01 -0700, and 22352d05
(#1066) re-locked onto v0.142.0 that same day. The fix first ships in v0.143.0,
so every release since has carried the refusal.

Verified against a binary built from this lock: `repo get --query topics`,
`issue get --query title`, and `org-repo list --query '[*].name'` all project,
and the flatten form projects too.

The failure was quiet at the call site, which is the part worth noting. A caller
that reads a non-zero --query result as "no data" writes an empty value instead
of reporting a broken tool. agentic-os-kai#888 hit exactly that: a bare except
turned the refusal into an empty topic list and nearly blanked every topic in
the fleet registry.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
fix(dev-base): carry the specgen pin with the umbra re-lock
Some checks failed
ci / aos-cli-tests (pull_request) Successful in 18s
ci / aos-eval-tests (pull_request) Successful in 17s
ci / ward-doctor (pull_request) Successful in 14s
ci / gate (pull_request) Successful in 1m51s
dev-base-pr / build (pull_request) Has been cancelled
78dbee3bb1
`test_specgen_pin_is_owned_by_the_dependency_lock` asserts the dev-base full
image pins the exact version the dependency lock names, and the re-lock moved
`cliGuard` to v0.161.0 while the Dockerfile still asked for 0.142.0. The image
fetches specgen from umbra's own release downloads, so the two are one train
and the test exists to keep them from drifting apart.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Merge branch 'main' into chore/relock-umbra-query-fix
Some checks failed
ci / ward-doctor (pull_request) Successful in 13s
ci / aos-cli-tests (pull_request) Successful in 21s
ci / aos-eval-tests (pull_request) Successful in 47s
ci / gate (pull_request) Failing after 1m12s
dev-base-pr / build (pull_request) Has been cancelled
c9b1742940
Merge branch 'main' into chore/relock-umbra-query-fix
All checks were successful
ci / aos-cli-tests (pull_request) Successful in 25s
ci / aos-eval-tests (pull_request) Successful in 5s
ci / ward-doctor (pull_request) Successful in 13s
ci / gate (pull_request) Successful in 54s
dev-base-pr / build (pull_request) Successful in 7m51s
31a68238d2
coilysiren deleted branch chore/relock-umbra-query-fix 2026-08-20 09:01:51 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/agentic-os!1154
No description provided.