Repository navigation
Sunny: run the builder chat on @base44/platform/react's useChat - #87
Merged
Merged
Conversation
AppBuilderSidebar follows the app live over a socket session instead of polling getConversation. The proxy gains openLiveSession, app-scoped and ownership-gated like every other app action, and drops getConversation, which nothing calls now. getApp is fetched again on each change of the chat's status, for the commit and deploy fields the chat doesn't carry. The widgets take the hook's bound question (answer, submit, approve, decline) instead of a raw tool call, through one QuestionWidget switch; useSubmitToolInput gives way to useAnswer. A secrets Skip is now a decline. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
✅ Deploy Preview for sunny44-builder ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for base44-platform-starter ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
…rows - An unconfigured bridge showed a spinner forever outside the embedded view, left from the OAuth connect flow. Both views now say app building isn't configured, with Check again. - The chat scrolled to the bottom on every live update, so a running turn pulled a reader back down. It now follows only while the user is at the bottom; scrolling up stops it, reaching the bottom or sending resumes it. - Steps expand again, showing what useChat keeps of a tool call: the tool and the files it touched. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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 free
to 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.
Sunny's builder chat now runs on
useChatfrom@base44/platform/react(0.5.0), the same hook Tiny Sunny moved to in #79.What changes
AppBuilderSidebar.jsxfollows the app live over a socket session. The 2.5s/8s polling ofgetConversation, the held-text "pending send" logic and the refresh-in-flight guard are gone. The hook's items, steps, status and pending prompts replace them.getApp. It's fetched again whenever the chat's status changes, so the Publish/ready card and the preview refresh keep working.openLiveSessionaction (POST /api/v1/socket-sessionswith{ app_ids: [appId] }). It's app-scoped and ownership-gated like every other app action. The body is a session token scoped to that one app, never the access token.getConversationis removed from the allow-list, since nothing calls it now.base44:smokechecks thatopenLiveSessionon another builder's app is a 404 before anything goes upstream.answer,submit,approve,decline) instead of a raw tool call. They're routed byquestion.kindthrough oneQuestionWidget, anduseSubmitToolInputgives way touseAnswer. A failed answer shows in the chat's error banner, which can now be dismissed.ToolRowline with the hook's label. Answers to a choice question stay under its step.Behaviour changes to check
approve: false). Before, it approved with{ skipped: true }.readyorerror.hidden, which the old poll did.Not in this PR
sendMessageandsubmitToolCallInputstill wait up to 120s in the proxy (BUILDER_TIMEOUT_MS). The hook only needs them to resolve once Base44 accepts the request, so a long turn can still end in a spurious timeout error, as it can today.Tested
npm run typecheck, and ESLint on the changed files.npm run base44:smoke: all checks pass, including the newopenLiveSessiongate..envhas no Base44 token, so the live chat, questions and the ready card haven't been run.🤖 Generated with Claude Code