You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
AI build surface: standing 「未发布改动」 affordance — the only publish entry point is buried in chat history #5694
When a package has pending drafts, the ONLY affordance to publish them is the inline 「发布 (N)」 button on the tool card that staged them — buried however many screens up the chat transcript happens to have grown. In the 2026-08-22 staging E2E (cloud#1584) the user's dashboard sat in state='draft' for 10+ minutes across three repair rounds, with a working publish button sitting off-screen the whole time; the remediation was an operator scrolling back through the transcript to find it.
Ask
A standing unpublished-drafts affordance on the AI build surface: while the active package has state='draft' metadata rows, show a persistent badge/bar (e.g. next to the composer: 「有 N 项改动未发布 · 发布」) that (a) survives scrolling, (b) publishes via the same POST /packages/:id/publish-drafts the inline button uses, (c) disappears when the count reaches zero. The app shell (outside chat) ideally shows the same signal when the user is previewing an app whose package has pending drafts — that is the moment they experience 「未找到仪表板」.
Draft-count source: the packages/drafts API the inline button's envelope already draws on; poll or refetch on tool-result arrival.
From the journey-UX review on cloud#1521 (maintainer-accepted priority B4, 2026-08-22 「接受你的建议,继续」). Related: cloud#1584 D4; the confirm-card terminal-state card (filed alongside).
Live-validation status for the bar (staging, console @ cloud#1592): the component mounts and its logic is unit-pinned, but end-to-end display is blocked by cloud#1593 — GET /meta/_drafts (the bar's data source, same as the Home banner's) returns empty for drafts that demonstrably exist in sys_metadata and that publish-drafts happily collects. The bar is only as good as the ledger; once #1593 / objectstack#10219 unify the ledger with the publisher's authority, re-verify visually.
Activity
os-zhuang commentedon Aug 22, 2026
Live-validation status for the bar (staging, console @ cloud#1592): the component mounts and its logic is unit-pinned, but end-to-end display is blocked by cloud#1593 —
GET /meta/_drafts(the bar's data source, same as the Home banner's) returns empty for drafts that demonstrably exist insys_metadataand thatpublish-draftshappily collects. The bar is only as good as the ledger; once #1593 / objectstack#10219 unify the ledger with the publisher's authority, re-verify visually.feat(app-shell): standing unpublished-changes bar on the AI build sur…