Uh oh!
There was an error while loading. Please reload this page.
feat(app-shell): standing unpublished-changes bar on the AI build surface - #5696
Merged
Conversation
…face (#5694) The only publish entry point used to be the inline 「发布 (N)」 button on whichever tool card staged the draft — buried wherever the transcript had scrolled. In the 2026-08-22 staging E2E (cloud#1584) a dashboard sat state='draft' through three repair rounds with a working publish button off-screen the whole time. PendingDraftsBar floats above the composer while the bound package has pending drafts (client.listDrafts({packageId})), re-reads the count on turn-idle edges, publishes through the same governed POST /packages/:id/publish-drafts path as the inline button and the Home banner (probe findings surfaced via publishHealthFromResponse, then a shared-metadata refresh so the launcher/nav pick up what just went live), and disappears at zero. Same float idiom as ExcelImportBar; build-surface only; renders nothing when unbound. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Contributor
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
This was referenced Aug 22, 2026
akarma-synetal pushed a commit
to akarma-synetal/objectui
that referenced
this pull request
Aug 23, 2026
…objectstack-ai#5696 follow-up) (objectstack-ai#5697) The bar shipped with root-level ai.pendingDrafts.* keys that existed in no locale pack — the en call-site key gate and the i18n ratchet test both went red on main. Keys move to console.ai.pendingDrafts.* (the surface's real namespace) with en + zh entries. Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com> Co-authored-by: Claude Opus 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 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
PendingDraftsBar(objectui#5694): while the build conversation's bound package (ADR-0057 A1.aboundPackageId) has pending drafts, a bar floats above the composer — 「N change(s) are not published yet」 + Publish — surviving scrolling, unlike the inline card button that was the only entry point before. Publishes through the same governedPOST /packages/:id/publish-draftsroute as the inline button and the Home banner; ADR-0038 probe findings surface via the sharedpublishHealthFromResponse(warning toast, never a blind "Published!"); a shared-metadata refresh follows so the launcher/nav pick up what just went live. Count re-reads on turn-idle edges (tool results that stage/publish land inside turns). Renders nothing at zero count or when unbound; build surface only.Why
cloud#1584 D4: in the staging E2E a dashboard sat
state='draft'through three repair rounds while the working 「发布 (1)」 button sat several screens up the transcript. The remediation for a real user is scroll-and-hunt; this bar makes the pending state ambient.Same float idiom as
ExcelImportBarin the same file — no ChatbotEnhanced API change. Sibling surfaces unchanged:UnpublishedAppBarkeys on the ADR-0045 app-level_unpublishedgate (a different axis — the #1584 app was live while a sibling artifact was draft), the Home banner is environment-wide.Tests
2 pins in
PendingDraftsBar.test.tsx: hidden at zero/unbound; count→publish→POST→hide→metadata refresh (the cloud#1584 dashboard shape).console/aisuite: 118 passed.app-shelltsc build green.Closes#5694. From the journey-UX review on cloud#1521 (maintainer-accepted priority B4).
🤖 Generated with Claude Code