Uh oh!
There was an error while loading. Please reload this page.
feat(console-ai): explicit "Open in Builder →" ask→build handoff (ADR-0057 P4) - #2439
Merged
Merged
Conversation
…-0057 P4)
When the ask agent declines an authoring request it calls the cloud
suggest_builder tool; the console renders that structured decline as an explicit
"Open in Builder →" action that opens the build surface seeded with the handoff
prompt (ADR-0063 decline-and-redirect — explicit, never a silent re-route).
- plugin-chatbot: detectBuilderHandoff lifts { status:build_handoff, prompt,
packageId? } onto the tool invocation; ChatbotEnhanced renders the card and
calls a new onOpenBuilder prop (disabled when unwired).
- app-shell: the full-page AiChatPage (ask) and the FAB wire onOpenBuilder to
navigate to /ai/build?package=…&handoffPrompt=…; the build surface seeds that
prompt as its first message (auto-sent once the conversation is minted), and
the URL-mirror strips ?handoffPrompt so a reload never re-sends it.
Conversation-context transfer is a later upgrade (cloud#817); v1 carries the
build prompt + optional package. Unit-tested (detect + card render + click +
disabled-without-host).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PJKsT9dvjxgVSPYid8EtTQThe latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
os-zhuang
marked this pull request as ready for review
July 13, 2026 09:35
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Jul 13, 2026
Open
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
The objectui half of ADR-0057 P4 (ask→build explicit handoff). Pairs with the cloud PR (
service-ai-studioadds thesuggest_buildersignal theaskagent calls).Per ADR-0063 the
askagent declines app-authoring requests and redirects to the Builder — never silently re-routes. This renders that redirect as an explicit, user-clicked action.Changes
@object-ui/plugin-chatbotdetectBuilderHandofflifts the{ status:'build_handoff', prompt, packageId? }tool result onto the tool invocation.ChatbotEnhancedrenders an "Open in Builder →" card (mirrors thepropose_blueprintcard) and calls a newonOpenBuilderprop — disabled when no host wires it (so it's inert without a routing host).@object-ui/app-shellAiChatPage(ask) and the console FAB wireonOpenBuilder→ navigate to/ai/build?package=…&handoffPrompt=….useDeferredFirstSend), and the URL-mirror strips?handoffPromptso a reload never re-sends it.Scope
suggest_buildersignal, no card renders — pure add.Invariant
ADR-0063: explicit, user-initiated switch (the click), never a silent re-route into authoring.
Verification
plugin-chatbot:detectBuilderHandoffunit tests (envelope / JSON-string / Vercel{type:text,value}wrapper / omit-blank-package / non-handoff / mapping attaches it) — mapMessages 50 green;ChatbotEnhancedrender tests (card shows, click firesonOpenBuilder, disabled without host) — 81 green.app-shell: console-ai + layout suites 59 green.turbo type-check(plugin-chatbot + app-shell) clean; ESLint on changed files 0 errors.Refs: ADR
docs/adr/0057-console-ai-chat-one-conversation-docked.md· cloud PR (service-ai-studiosuggest_builder) · cloud#817.Generated by Claude Code