Repository navigation
feat(opencode): declare toolCallSpans on /v1/capabilities so agent-runtime can bound a silent model call - #267
Conversation
…ntime can bound a silent model call #266 made opencode report each tool call at its start; its finished part already carried the outcome. agent-runtime (#1885) runs modelSilenceMs only on a route that declares toolCallSpans: true, and no backend declared it, so the bound was off on every route. The opencode backend now declares it and /v1/capabilities serves it.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
tangletools
left a comment
There was a problem hiding this comment.
✅ Auto-approved PR — caf32c33
Blanket team auto-approval is intentional. This is not a code review.
No automated review runs on this PR. This approval rests on the rule above alone.
tangletools · auto-approval · reason: blanket_auto_approve · 2026-10-20T01:13:04Z
|
Live proof after merge (01:40Z). discovery-lab moved disco-bridge@8899/8900/8901 to 77c020d at 01:35:44Z. Authenticated |
Problem. agent-runtime runs
modelSilenceMs(cut a silent model call, never a running tool) only on a bridge route whoseGET /v1/capabilities?model=answer saystoolCallSpans: true(tangle-network/agent-runtime#1885). No backend declared it, so the bound was refused on every route. Baseline, served disco bridge :8899 at cdf9292, 2026-10-20 01:08Z:/v1/capabilities?model=opencode/...has notoolCallSpans.Change. #266 made opencode report each tool call at its start, and its finished part already carries the outcome.
Backend.toolCallSpansis a new optional field;OpencodeBackendsets it, and the capabilities answer includestoolCallSpans: truefor a backend that sets it. Other backends are unchanged: claude reports a call at start but never its result, and codex reports calls only when they finish.Condition. The start signal comes from the plugin in the turn's private config directory, which every turn with an AgentProfile has. agent-runtime's bridge executor always sends
agent_profile.Proof.
tests/retained-sessions.test.ts: the route servestoolCallSpans: truefor a backend that declares it, and not for the generic backends. Live proof after the disco bridges roll:/v1/capabilitieson :8899 answerstoolCallSpans: truefor an opencode model, and agent-runtime's route preflight admitsmodelSilenceMs.Cost / rollback. Adds one field to the JSON answer. Older runtimes ignore unknown keys. Fix forward.
Run ID: run_0692ee937793d1d6d1ea72517f5a9ee7