Uh oh!
There was an error while loading. Please reload this page.
fix(chatbot): Built-badge for built plans + visible liveness timer & offline state - #1917
Merged
Merged
Conversation
issue #432: after a build completed, the earlier "Proposed plan" card kept its active "Build it" button; clicking it re-sent the approval and rebuilt the whole app. A plan is now "built" once an `apply_blueprint` invocation appears after it in the conversation (keyed on toolName, so it survives a reload that strips the rich draftReview output). When built, the actions collapse to a static "Built" badge — no re-trigger. A later, not-yet-built plan (e.g. after "make it simpler") keeps its live button. Adds planBuiltLabel (default "Built"), wired + localized (zh "已搭建") in AiChatPage and ConsoleFloatingChatbot. ChatbotEnhanced tests: 44 pass (2 new). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
issue #432 follow-up. The loading feedback was too faint to see, had no visible countdown before the first server byte, and never surfaced a real network drop. Now: - LivenessIndicator shows the live m:ss elapsed timer in EVERY tier (waiting/ receiving/stalled), not only once bytes arrive — the turn never looks frozen. - New 'offline' tier driven by navigator.onLine + online/offline events: a network drop shows a red WifiOff "Connection lost — reconnecting…" instantly, instead of waiting for the stream-quiet timeout. - A running tool ("Propose blueprint · Running") and the build progress panel now show the same live timer + offline cue (ToolRunningTimer), so long blueprint/build calls have a visible countdown. Adds connectionStalledLabel/connectionOfflineLabel (localized zh in ConsoleFloatingChatbot + AiChatPage). ChatbotEnhanced tests: 47 pass (4 new: always-on timer, offline tier, running-summary timer, updated stall format). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
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.
AI build chat-UX fixes from founder dogfood (objectstack-ai/cloud#441 companion).
Changes
apply_blueprintinvocation appears after it (keyed ontoolName, so it survives a reload that strips the richdraftReview). When built, the actions collapse to an inert "Built" badge; a later, not-yet-built plan keeps its live button. AddsplanBuiltLabel(localized zh "已搭建").LivenessIndicatorshows the livem:sstimer in EVERY tier (not onlyreceiving); a newofflinetier driven bynavigator.onLine+ online/offline events shows a red WifiOff "Connection lost — reconnecting…" instantly; aToolRunningTimerputs the same timer + offline cue on running tool chips ("Propose blueprint · Running") and the build progress panel. AddsconnectionStalledLabel/connectionOfflineLabel.Verification
🕐 m:sstimer in the build panel; browser "Offline" + "Response failed · Retry" on a dropped turn.Note: reaches production via the objectui → framework
.objectui-shapin → cloud bump flow.🤖 Generated with Claude Code