Repository navigation
feat(app-shell): the draft status chip sits in one place in every Studio item header (objectui#12524) - #12589
Merged
objectstack-fleet[bot] merged 3 commits intoOct 16, 2026
Conversation
…ui#12524) StudioItemHeader takes the item's status as data (`status`) and draws the amber chip itself, after the identity (title, api-name and kind chips) and before the meta. The Data, Automations and Interfaces pillars pass their "Unpublished draft" status through it, and Access its writable "saved as draft" note; the Interfaces chip leaves the actions slot, which now holds actions only. The identity sits in one `contents` wrapper, so the chip is the same child of the same row in every pillar. Claude-Session: https://claude.ai/code/session_01GzRy6FiHuy1vpBecH2KRYM Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GzRy6FiHuy1vpBecH2KRYM Co-authored-by: Claude <noreply@anthropic.com>
…(objectui#12524) The `contents` wrapper now holds only the identity chips (api name and kind chips), always rendered, so the title stays the row's child as the objectui#11665 pin reads it, and the status chip keeps one index in every pillar. Claude-Session: https://claude.ai/code/session_01GzRy6FiHuy1vpBecH2KRYM Co-authored-by: Claude <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
|
Contributor
Author
席位核对 — ACCEPT · objectui#12524 · head
|
Contributor
Author
Landing · head
|
objectstack-fleet
Bot
deleted the
claude/issue-12524-header-status-chip
branch
October 16, 2026 01:18
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.
Fixes #12524
Clause-②: no
What changed
StudioItemHeadertakes the item's status as data (a newstatusprop: label and an optional tooltip) and draws one shared amber chip,StudioStatusChip, right after the identity (the title, then the api-name or kind chips) and before the meta. The identity chips sit in an always-renderedcontentswrapper (data-slot="identity-chips"). It draws no box, so the layout is unchanged, and the chip is the same child of the same title row in Data, Automations, Interfaces and Access. The title stays a direct child of the row, which the objectui#11665 pin reads.statuswith theengine.studio.unpublishedDrafttext; Access passes its writable "This package's objects · saved as draft" note (engine.studio.access.banner, tooltipengine.studio.access.bannerTitle). No pillar writes the chip markup any more. No i18n keys added or retired; every existing data-testid stays.Decisions and deviations
statusprop rather thanchips. The header owns both the chip's position and its look, and the prop refuses markup or a link, so a pillar cannot misplace or restyle it.shrink-0 whitespace-nowrap. At 1280 px in the Automations header, main's chip wrapped to two lines (37 px) while the title still truncated; it now stays on one line (21 px). The title truncation exists either way, from that pane's width.Screenshots (1280 px, a writable package with a draft object, flow, page and app; console at d9376cc against HotCRM 63db83e)
The screenshots live on the never-merged branch
claude/issue-12524-evidence; this branch carries no PNG.Test evidence (head d9376cc)
StudioItemHeader.statusPlace-12524.test.tsx, 4 passed. It renders the four real pillars with a draft and asserts the chip is a child of the title row at one shared index, after the title and the identity chips, outside the actions. It also asserts the Interfaces actions keep their order with no chip among them. CONTROL: no draft, no chip (Data, Automations, Interfaces); a read-only package, no Access status, and the read-only link in the actions slot.git checkout HEAD,git diff HEADis empty.pnpm --filter @object-ui/app-shell test), run in 8 shards because of the session's 10-minute command cap: 1420 files passed and 1 skipped; 13538 tests passed and 9 skipped. The existingStudioDesignSurface.flowCanvasChip-11665pin is green, unmodified.type-check(source and test configs),build, eslint on the touched files (0 errors),check:i18n-keys,check:i18n-drift,check-changeset-presenceandcheck:new-line-citations: all exit 0.Acceptance notes
Session:
https://claude.ai/code/session_01GzRy6FiHuy1vpBecH2KRYMGenerated by Claude Code