Skip to content

fix(orchestration): address Antigravity groups from the agent catalog - #21655

Merged
nwparker merged 5 commits into
nwparker/agy-native-quotafrom
nwparker/agy-group-addresses
Sep 21, 2026
Merged

nwparker merged 5 commits into
nwparker/agy-native-quotafrom
nwparker/agy-group-addresses

Conversation

@nwparker

@nwparker nwparker commented Sep 19, 2026 •

Copy link
Copy Markdown
Contributor

Latest verification — 2026-09-20: Authenticated supervised worker using the agy alias, selected model and high effort completed successfully, settled with zero failures, and was released: proof. This supersedes the earlier 401 worker-completion limitation. Group addressing still has the recorded live enqueue evidence; successful group-mailbox consumption is not independently claimed. All checks at the unchanged PR head are green. Earlier screenshots and test notes below describe their original runs.

Files Added Deleted Net
Test 3 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​156 $\color{#cf222e}{\Huge{\mathbf{−}}}$​2 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​154
Prod 6 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​48 $\color{#cf222e}{\Huge{\mathbf{−}}}$​42 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​6

ELI5

Orca could recognize an Antigravity terminal but still could not address it as @antigravity. The message router had an outdated list of agent names. It now uses the same catalog as the rest of Orca, and tells you when a group name is misspelled.

What Changed

Derives agent-name groups from ALL_TUI_AGENTS, keeps the legacy @mimo alias, and reports unknown groups before checking the sender's Run binding. Updates CLI and messaging documentation without a second agent-name list. Delivery still uses host-resolved identity and the existing Run/workspace audience restrictions.

Adopts #20549 (c72f556e95edcd03e05af9d12abc46bd2a3ee343) with contributor credit. Regenerates bundled guides from the current branch and omits its broad documentation-enumeration test. Stacked on #21654.

Why

Adding only Antigravity to another allowlist would leave the next supported agent with the same defect. Deriving the names from the canonical catalog prevents that drift. Titles remain insufficient evidence for routing, so a Codex pane discussing Antigravity does not receive Antigravity's messages.

Linked Issue

Addresses the group-messaging portion of #11721. Related #15125; this does not fix the separate dispatch --inject readiness/allowlist or arbitrary vendor-command requests.

Visual Proof

Actual CLI error receipts before and after rebuilding the isolated macOS app, rendered together in an Orca terminal. The report replaces the sender handle with <sender> and omits request IDs. Both probes intentionally addressed the typo @antigravty and delivered no message. The lower section summarizes separate tests; this is not a successful agent task or worker completion demonstration.

Before and after CLI diagnostics

Further live check: actual dispatch --inject and worker-start --agent antigravity accepted task input. The supervised Dispatch remained active with zero failures 63 seconds later. A subsequent group send enqueued one message to each of the two test Dispatch mailboxes. The first lookup shortly after direct injection found no recipients; this transient remains unexplained. Generation still fails HTTP401, so consumption and worker completion are not verified. Both test Dispatches were stopped and test terminals closed.

Live orchestration receipt report

Testing

  • I manually tested these changes locally
  • Automated tests added/updated, or explained why not below

72 group/RPC tests pass. The Antigravity RPC routing regression fails against the parent code with No recipients resolved for group address: @antigravity. A separate resolver test consumed an actual host snapshot from the installed agy validation panes: all five Antigravity identities selected, none selected as Gemini. This verifies identity matching, not live mailbox consumption.

Live CLI typo check changed from an unrelated Run-binding error to Unknown group address. Full pnpm tc, changed-code quality, bundled-guide verification, and dev main/preload/renderer/embedded-web build pass. Commit lint/format hooks pass. Proof terminal closed afterward; authentication and hooks unchanged.

AI Disclosure

Review

Checked Run membership, workspace audience, title-only refusal, missing identities on older hosts, sender exclusion, and the preserved legacy alias. Real Windows/SSH and successful Antigravity mailbox consumption/worker completion are still unverified. Draft pending CI.

Agent skill upstream boundary

  • Not applicable, or this change follows docs/reference/agent-skill-sharing-upstream-boundary.md and copies or mechanically translates no upstream skill-installer source, tests, fixtures, registry entries, path tables, comments, or documentation.

Notes

No new RPC fields, stream opcodes, process probes, or platform branches. Clients already send arbitrary string addresses; an older server still rejects newly supported groups. Host identity remains required, so an older host that omits identity supplies no agent-name recipients. Remote federation routing is unchanged. Folder-workspace pane identities were used for the local live snapshot.

Checklist

  • This PR is small and focused
  • I explained what changed and why (ELI5, the user-facing before/after, the mechanism, and why over the alternatives)
  • Before/after screenshots or videos attached for UI changes, or N/A with reason
  • Self-reviewed for correctness, security, and performance
  • Cross-platform, SSH/remote, and path/shortcut impact considered (or N/A)
  • pnpm lint, pnpm typecheck, pnpm test, and pnpm build pass (or CI will cover; local preferred)

Adopt group routing and unknown-address diagnostics from PR #20549; retain current generated guide content and omit the documentation enumeration ratchet.

Co-authored-by: OrcaWin <orcawin@users.noreply.github.com>
@nwparker

Copy link
Copy Markdown
Contributor Author

Fresh live verification on the current migration stack (head 4ef37c14709, draft #21655), macOS, installed agy 1.2.7, isolated non-git folder:

  • The host's terminal.isRunningAgent recognized a newly launched agy pane.
  • Actual dispatch --inject returned injected: true with input_accepted; the task marker reached the CLI.
  • Actual worker-start --agent antigravity returned ready, stage input_accepted. Its Dispatch was still dispatched with zero failures 63 seconds later. It did not fail with agent_prompt_stalled after eight seconds.
  • A subsequent send --to @antigravity enqueued two messages, one in each test Dispatch mailbox. The first group send shortly after direct injection had returned no recipients; the later send included both the direct and supervised dispatches. That transient first lookup is not yet explained.

ELI5: current Orca can deliver the task and keep its assignment alive without pretending it observed the agent start working. This machine's agy receives the task but generation returns HTTP401 ACCESS_TOKEN_TYPE_UNSUPPORTED. The receipt correctly says turn observation is unsupported; it is not proof of successful execution, mailbox consumption, or accepted worker_done.

This was normal local startup, not a reproduced 15–60 second boot or a Windows/SSH test. Both test Dispatches were explicitly stopped and their test terminals closed afterward. Authentication and hooks were unchanged. No new production change was needed for the injection/receipt checks; #21655 changes group addressing separately.

Visual proof below is a rendered report derived from the actual CLI receipts, rather than a screenshot of the lifecycle preamble (which contains private capability material).

Live orchestration receipts

@nwparker

Copy link
Copy Markdown
Contributor Author

Independent verification update:

  • Installed agy 1.2.7 returned the exact sentinel AGY_GROUP_ROUTING_LIVE_OK.
  • Group/RPC routing suites: 72 passed.
  • pnpm tc:node and pnpm tc:cli passed.
  • Changed-code quality passed with 0 new findings.
  • CI run 35438025876 passed typecheck, static analysis, all 8 test shards, native smoke checks, verify, and both packages; docs build also passed.

Scoped verdict: Approve after stack order for canonical-catalog group addressing. Live successful Antigravity mailbox consumption and Windows/SSH federation remain unverified, as documented by the PR.

@nwparker

Copy link
Copy Markdown
Contributor Author

Independent verification (2026-09-20):

  • Group/RPC/orchestration/skill-provider suites: 126/126 passed.
  • pnpm tc:node and pnpm tc:cli passed.
  • pnpm run check:code-quality:changed origin/main passed with 0 new findings across 109 changed files.
  • Installed agy 1.2.7 authenticated exact sentinel returned AGY_GROUP_OK.
  • Full CI 35438025876, native smoke 35438025862, docs 35438025773, and verify 35438025710 are green.

Verdict: approve after stack order for canonical agy group addressing. Tests cover enqueue/RPC and provider-group contracts; successful mailbox consumption and Windows/SSH federation remain unverified. No merge performed.

@nwparker

Copy link
Copy Markdown
Contributor Author

Verification update (test-only follow-up): exact PR head e7cb711 adds a regression for delayed host identity. A group send before identity discovery creates no mailbox rows; retry after the same pane is identified as antigravity delivers to its live Dispatch mailbox. Focused suites pass: 73 tests; node/CLI typechecks pass on the prior head. Full CI is running on this head.

@nwparker

Copy link
Copy Markdown
Contributor Author

Follow-up: corrected the test to use checked inferred RPC typing (no assertion); oxlint and the focused 38-test suite pass locally. Pushed head f4103d0. Fresh CI is required because the previous head had a static-analysis failure.

@nwparker
nwparker marked this pull request as ready for review September 21, 2026 05:59

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found.

Reviewed changes

  • Agent groups derived from the catalog — groups.ts drops the hand-maintained AGENT_NAME_GROUPS literal and builds GROUP_AGENT_IDS from ALL_TUI_AGENTS, so @antigravity (and every future agent) is addressable the day it lands; the legacy @mimo alias is preserved via LEGACY_GROUP_NAME_ALIASES.
  • Unknown groups reported as typos — new isRecognisedGroupAddress plus an early invalid_argument throw in send-group.ts distinguish a misspelled @name from a known group with no current members, before the sender's Run-binding error can obscure it.
  • Coverage — groups.test.ts ratchets every canonical agent id to an addressable pane, pins @antigravity routing, the @mimo alias, and title-only refusal; send-group.test.ts covers the unbound-sender typo, live Antigravity delivery, retry after the host learns the identity, and typo-vs-empty separation.
  • Docs and guidance — CLI spec notes, orchestration.mdx, and the messaging-and-gates reference now describe @all, @idle, @worktree:<id>, and @<agent>; the bundled guides are regenerated and the guidance test's expected group list is updated.

Verified against ALL_TUI_AGENTS: TUI_AGENT_DISPLAY_NAMES and TUI_AGENT_CONFIG are both exhaustive Record<TuiAgent, ...>, so the addressable set matches what --agent accepts, and isRecognisedGroupAddress / resolveGroupAddress share the same map and prefix constant, so the two never disagree. Ran the focused suites (groups.test.ts, send-group.test.ts) — 73 passed.

Pullfrog  | View workflow run | Using DeepSeek Flash (free via Pullfrog for OSS) | 𝕏

@nwparker

Copy link
Copy Markdown
Contributor Author

Final local validation on head 403314a: pnpm tc:node passed; focused send-group suite passed 38/38; oxlint and formatting hooks passed. The delayed identity regression now checks the RPC receipt via toMatchObject (no unchecked unknown access). Fresh CI is pending on this final head.

@nwparker
nwparker merged commit 171aec7 into nwparker/agy-native-quota Sep 21, 2026
39 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