Skip to content

agy-proxy: bridge tool calls so antigravity-agy can seat in tool-using route pools #2603

Open

Description

@dezren39

Found 2026-10-30 by Codex review (P1) on the opencode route-audit PR, and verified against the source:

bin/agy-proxy.mjs is text-only. It builds its prompt solely from body.messages (formatPrompt / extractLatestUserPrompt, ~line 864) and never reads body.tools; its chat responses contain only text content with finish_reason: 'stop' (~line 1057) and never structured tool_calls. bin/antigravity-ls-proxy.mjs bridges tool calls; agy does not.

Consequence: seating antigravity-agy as a leaf in a tool-using route pool (gemini-flash-plan, sonnet-plan, opus-plan) silently terminates agent turns — the model answers in plain text, the turn ends as a 'success', and no failover to a tool-capable door happens. Until this is fixed, agy leaves belong only in text/burn roles (its existing argon seats), never as failover for tool-using pools.

Acceptance: the proxy forwards tool definitions to the agy backend and returns structured tool_calls (streaming and non-streaming) in the OpenAI shape, with tests alongside the existing bin/agy-proxy.test.mjs suite. After it lands, the route pools named above can gain agy leaves for a genuine second Antigravity door (the ls proxy outage of 2026-10-24/25 is the motivating incident: 38 ConnectionRefused failures in gemini-flash-plan with nothing to fail over to).

Activity

  1. added
    kind/featureNew feature or capability request
    priority/normalOrdinary priority (the default)
    effort/mMedium: expected under 1 day of work
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 30, 2026
  2. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    Intake review

    Related: bin/antigravity-ls-proxy.mjs (the sibling proxy that already bridges tool calls — the reference implementation); #2624 (commandcode-proxy unit GC defect, same proxy family, different issue)

    Notes: Found 2026-10-30 by Codex review (P1) on the opencode route-audit PR and verified against source: bin/agy-proxy.mjs is text-only — it builds its prompt from body.messages (~line 864), never reads body.tools, and returns only text content with finish_reason 'stop' (~line 1057). The body already states its acceptance inline (forward tool definitions, return structured tool_calls streaming and non-streaming in OpenAI shape, tests alongside bin/agy-proxy.test.mjs), so this pass is labels-only. Until fixed, agy leaves belong only in text/burn roles, never as failover for tool-using pools.

    Risks: Seating agy in a tool-using pool today silently terminates agent turns as 'success' with no failover — a correctness failure that looks like a completed turn in every dashboard.

    Suggested approach: Port the tool-call bridging shape from bin/antigravity-ls-proxy.mjs: forward body.tools to the agy backend, translate its responses into OpenAI tool_calls for both streaming and non-streaming paths, and extend bin/agy-proxy.test.mjs to cover a full tool round-trip.

    🤖 Agent note · filed

    • Agent: fleet monitor (repo-fleet-monitor)
    • Session / ID: repo-fleet-monitor run 2026-10-30T08:12Z (2026-10-30 03:12 CDT)
    • Found via: monitor reconciliation
    • Task: Duty 2 intake enrichment — labels normalized and meta/enriched applied; acceptance criteria appended to the body only where no acceptance section existed (original body preserved verbatim above it). Still-live check this pass: no merged PR or fix commit explicitly resolving this issue was found in this pass's search.
    • Expectation: see the effort label; done = the acceptance criteria are met.
    • Links: this issue
  3. added
    queue/queuedHas a queued task in the Supabase agent queue
    source/creatorFiled by the new-issue-creator job
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 3, 2026
  4. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    agent-note:v1
    state: triaged (coverage pass)
    Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
    Found via: coverage pass 2026-11-03

  5. 16 remaining items

  6. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

  7. added
    queue/claimedQueue worker lifecycle state
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/claimedQueue worker lifecycle state
    queue/needs-reviewQueue task finished and is awaiting review
    on Nov 8, 2026
  8. dezren39 commented on Nov 8, 2026

    @dezren39
    MemberAuthor

    Partial verification — staying open (2026-11-07 done-task-only audit, tracking: #7016).

    Queue task(s) [7958, 8634] were marked done, and some work did land:

    No merged change closes this issue's full scope, so the done status is not treated as completion. Remainder re-queued as triage task 11650.

  9. dezren39 commented on Nov 8, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

  10. added
    queue/queuedHas a queued task in the Supabase agent queue
    and removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    work/assignedQueue worker lifecycle state
    on Nov 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

effort/mMedium: expected under 1 day of workkind/featureNew feature or capability requestmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)queue/queuedHas a queued task in the Supabase agent queuesource/creatorFiled by the new-issue-creator jobtask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions