fix(acp): accept SDK elicitation requests - #11294
Conversation
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: unavailable · PR result: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (4)
Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughAdds ChangesElicitation support
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Bug fix Sequence Diagram(s)sequenceDiagram
participant CreateElicitationRpc
participant decodeElicitationRequest
participant coreHandlers.elicitation
CreateElicitationRpc->>decodeElicitationRequest: Decode request payload
decodeElicitationRequest-->>CreateElicitationRpc: Return decoded request
CreateElicitationRpc->>coreHandlers.elicitation: Handle elicitation
coreHandlers.elicitation-->>CreateElicitationRpc: Return action and optional _meta
Suggested reviewers: Merge Risk: ⚪ Minimal · up to No actionable merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
44f78f2 to
0838f78
Compare
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a localized ACP compatibility fix that routes SDK elicitation aliases through the existing handler while preserving legacy behavior. Its runtime impact is narrow and directly covered by focused tests. You can add or adjust custom eligibility rules. Learn more. |
Depends on #11298, which fixes a typecheck regression on main from #11029. The diff against that base contains only ACP changes.
ACP agents using
elicitation/createreceive "Method not found" even when T3 has a registered question handler. The shared client now accepts that SDK method and returns its flatactionandcontentresponse. It also routeselicitation/completeto the existing completion handler.The legacy
session/elicitationmethods retain their nested response format. Compatibility lives beside the RPC definitions because the generated schema is pinned to v0.11.3. Providers still supply their own question handler; missing handlers and malformed requests return protocol errors.Refs #9048. #10893 carries an Oh My Pi-specific workaround; this handles the shared transport separately from adding that provider. The adapter-facing generated types remain compatible, and this change covers session-scoped form and URL requests.
Validation: 44 focused client, agent, protocol and server-runtime tests pass, including flat accept/decline/cancel results, metadata, both notification names, malformed requests and legacy exchanges. A separate exchange with the official
@agentclientprotocol/sdk1.4.0 passes: itsAgentSideConnection.createElicitationreceives the accepted answer, andcompleteElicitationreaches T3's completion handler. Package and server typechecks and scoped lint pass. No live Oh My Pi process or native client UI was exercised.Model: GPT-6. Harness: Codex in T3 Code.