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.
Studio pillar nav: Access sits in the segmented control and the More overflow retires while it holds a single pillar (reverses the objectui#11794 More ruling; decision anchored in the epic) #12452
Epic #12446, open decision A. Measured on objectui main a2225f91: OVERFLOW_PILLARS holds exactly one entry, Access, so the More trigger (data-testid="studio-nav-more") opens a one-item menu. objectui#11794 ruled that the trigger keeps the name More whichever overflow pillar is open, and StudioDesignSurface.moreKeepsName-11794.test.tsx pins that.
Prior ruling this card reverses
objectui#11794, "the trigger keeps its own name, More". The reason recorded in the source comment: renamed to the open pillar it hid the one word that says this is the overflow menu. That reasoning holds for an overflow of several pillars. With one pillar there is nothing to overflow, and the maintainer-reviewed canvas places Access as the fourth segment.
Decision A was answered on 2026-10-15: as designed, Access in the nav and More retired. The ruling comment on the epic quotes the maintainer's words and names the premise to re-check first (OVERFLOW_PILLARS holds exactly one pillar). This card is dispatched once the layout skeleton #12459 lands, since that card rewrote the shell header this one changes.
Target
The pillar segmented control reads Data, Automations, Interfaces, Access; Access carries the shield icon the Access pillar already uses.
OVERFLOW_PILLARS and the More popover are removed together with studio-nav-more and engine.studio.more; the dirty-guard onClick the overflow links carried moves onto the Access link exactly as the primary pillars have it.
The package-less scope (objectui#11553) still shows its single pillar and nothing else.
If a second overflow pillar is ever added, the More menu returns with the objectui#11794 behavior; leave a one-line comment at the pillar list saying so, so the ruling is not lost.
File surface
packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx (pillar list, PILLARS / OVERFLOW_PILLARS, the shell header's nav), packages/app-shell/src/views/metadata-admin/i18n.ts (retire engine.studio.more in every locale), StudioDesignSurface.moreKeepsName-11794.test.tsx (replaced by a test that pins Access as a first-class segment and the dirty guard on it).
Acceptance
Four segments at 1280 px, Access active when /studio/app.objectstack.hotcrm/access (any package id) is open.
Leaving a dirty pillar through Access prompts exactly as through Data (the confirmLeavePillar path), pinned by a test.
No studio-nav-more in the DOM; engine.studio.more absent from every locale file.
StudioDesignSurface.accessGuard.test.tsx and pillarNavGuard stay green.
Constraints
Tailwind utilities and theme tokens only.
Gates: pnpm --filter @object-ui/app-shell test, lint, build, pnpm check:i18n for the retired key.
The objectstack pin bump is not part of this card.
Reference artboard
every artboard's shell header, docs/design/studio-redesign/data-records.html first (Access as the fourth segment, no More) on objectui main (landed in #12458); data-records.png is its 1280 px render. The folder's README carries the shared numbers and what a pull request against this card must show: two screenshots per artboard it touches (light and dark, 1280 px, cropped to the artboard's region), a deviation list with a reason per line, and the card's named tests green or updated. Where this card and the artboard disagree, this card's numbers win and the disagreement is reported here.
Body refreshed 2026-10-15T09:53Z by the epic PM session: a Reference artboard section added now that #12458 is on main. Earlier refresh 2026-10-15T09:13Z: decision A answered; a Blocked-by line on the layout skeleton added.
Decision A is the first clause: Access becomes the fourth segment of the pillar nav and More retires. The full record, with the premise to re-check (OVERFLOW_PILLARS holds exactly one pillar), is on the epic #12446. This card is no longer held on a decision; it stays blocked on #12459 (#12460, enqueued) and is dispatched once that lands. The body's hold sentence is refreshed in the same stroke.
Written 2026-10-15T09:12Z by the epic PM session session_cdb7a717-def7-4e71-9988-f089fbaa18ff.
Claim: PM loop round 1 (epic #12446 subtree)
Session: session_01SJn1GEkrbbBQkhGC26wEDw
Account: os-sales (the seat's linked user as GET /user answers it; the card's assignee)
Branch: claude/issue-12452-access-in-pillar-nav
Worktree: objectui-issue-12452
Domain: domain:ui
Seat: domain:ui#4
File surface: packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx (region: the PILLARS / OVERFLOW_PILLARS declarations and the shell header's pillar nav inside StudioDesignSurface), StudioDesignSurface.moreKeepsName-11794.test.tsx (replaced by the new pin), packages/app-shell/src/views/metadata-admin/i18n.ts (retire engine.studio.more in every locale), the screenshots under docs/design/studio-redesign/after/ named 12452-*.png (the light and dark pairs the reference README asks for, filed as the skeleton PR filed its own), one .changeset/12452-*.md (stop on breach; explain in the report)
Container & model: M, mode:subagent, model: opus
Clause-②: no
Responsibility: n/a — not a defect card
Thread-read: 6188627851
Serial constraints cleared: objectui#12459 merged as PR objectui#12460 (cf430cd), which rewrote the shell header this card edits. In flight on the same file at claim time: objectui#12450 (DataPillar) and objectui#12454 (AutomationsPillar), both this seat, regions disjoint from the shell nav. objectui#12453 (app chip) follows this card in the shell header region. No other open PR touches studio-design/ (3 open PRs read).
Ruling-ref: 6188627851
os-dev-report
{
"issue": 12452,
"status": "done",
"branch": "claude/issue-12452-access-in-pillar-nav",
"pr": "#12470",
"session": "session_01SJn1GEkrbbBQkhGC26wEDw",
"premise_still_valid": true,
"summary": "Premise of ruling A re-checked on cf430cd and it holds: OVERFLOW_PILLARS was exactly [{ key: 'access', label: 'Access', Icon: Shield }], and the header was its only reader. PILLAR_FOR_SURFACE_TYPE, the deep-link channel and the pillar dispatch spell out 'access' themselves and never read the list. Access is now the fourth entry of PILLARS (shield glyph, same segment markup, same narrow-viewport icon rule, same confirmLeavePillar guard). OVERFLOW_PILLARS, the More popover, studio-nav-more and engine.studio.more (en and zh blocks of metadata-admin/i18n.ts) are removed, and a comment at PILLARS keeps the objectui#11794 rule on record in case More ever returns. Each pillar link now has aria-current=page while its pillar is open, matching the artboards and keeping the a11y signal the overflow's Access link had. The package-less scope still shows only its one pillar. PM mechanism assumptions 1, 3, 4 and 5 hold as stated. Assumption 2 holds too: the skeleton's segment markup is what Access now uses. The More test retires and StudioDesignSurface.accessSegment-12452 replaces it. Draft PR #12470 includes 1280x900 light and dark after-screenshots and an app-shell minor changeset. Run resumed after the 10:00Z weekly-limit 429 by re-reading state; nothing was redone.",
"tests": "Final head 13afa58: pnpm exec vitest run on accessSegment-12452, pillarNavGuard, accessGuard, packageLessFlows-11553, zhPillarNames-11801 and createAppOpensInterfaces-11794 (repo root, --maxWorkers=2, under os-verify-lock) → 'Test Files 6 passed (6) / Tests 44 passed (44)', VERDICT command-exit 0. The 6 accessSegment cases are green by name under the verbose reporter. On 36254fe, which has the same code (36254fe..13afa58 adds only .changeset/12452-access-in-pillar-nav.md and two PNGs): all 76 StudioDesignSurface..test.tsx files plus metadata-admin/studio-locale.i18n.test.tsx ran in three batches, 26 files/120 tests + 25/167 + 26/232, all passed, each VERDICT command-exit 0. Ablation on the new pin, once, on 36254fe, with source-resolved imports so no build was needed, both legs through objectstack scripts/ablation-replace.mjs (anchor x1 → x0, blob changed, restored blob == HEAD d00192a62e79, git diff HEAD empty). (a) Access link skips the guard (p.key !== 'access' && inserted before confirmLeavePillar()): the new guard case went red with 'expected "vi.fn()" to be called 2 times, but got 1 times', the other 5 new cases stayed green, and pillarNavGuard stayed 7/7 green, so no older test caught this loss. (b) Access deleted from PILLARS: new file 6/6 red, pillarNavGuard 3/7 red.",
"gates": "Local subset, each exit captured by redirect-then-$? before any pipe. On 13afa58: pnpm check:i18n-keys 0; check:i18n-drift 0 (designer table '0 key(s) added, 1 removed'); check:i18n-dead-keys 0; check:i18n-designer-parity 0; check:new-line-citations 0 ('0 new citation(s)'); check:changeset-claims 0; check:pending-changeset-literals 0; check:test-path-roots 0; node scripts/check-changeset-presence.mjs 0 ('declares 1 changeset(s)'); node scripts/check-changeset-no-major.mjs 0. pnpm check:i18n (the card's name) → 254 'Command "check:i18n" not found', which confirms the PM's reading. On 36254fe, all under os-verify-lock: turbo build of the closure --filter='@object-ui/app-shell^...' --concurrency=2 → 28/28 successful, VERDICT 0; pnpm --filter @object-ui/app-shell run type-check (tsc --noEmit && tsc -p tsconfig.test.json) → VERDICT 0, and tsc --listFilesOnly shows the 3 edited or new test files; pnpm --filter @object-ui/app-shell run build → VERDICT 0 ('dist completeness: 1 package(s) complete'). eslint on the 5 touched app-shell files → exit 0 with 0 errors; the 18 warnings were already on cf430cd and none is in a changed hunk. objectui has no dispatch-gates derivation, so the list was hand-derived from the root package.json check: scripts for the i18n, changeset, doc and test-path families. PR #12470 check-runs, read once at 13afa58 right after open (36 total): success = Changeset Bump Policy, Build Docs, Changeset Fixed Group Check, label; skipped = dependabot, Test (coverage), Test (coverage shard matrix); in_progress = Spec Main Shape Gate, Changeset Overwrite Report, Test (shard 1..16/16), Test (dist pins), Lint, Type Check, Build & E2E, Line Citation Gate, Repo Gates, Governed Surface Queue Guard, Bundle Analysis, Live E2E (informational), Changeset Declaration, Changeset Claim Re-read. CI convergence is the PM's; I did not poll.",
"deviations": [
"File surface: two test files outside the claim got test-only edits. StudioDesignSurface.pillarNavGuard.test.tsx: its clickAccessInOverflow helper clicked studio-nav-more, so acceptance 4 (stay green) and acceptance 3 / ruling A (no More) conflict unless the helper changes. It became clickAccessInNav, which clicks the Access segment, and no assertion changed. StudioDesignSurface.packageLessFlows-11553.test.tsx: its 'no studio-nav-more' line would have gone vacuous, so it now asserts no Access link (PM assumption 4). Both edits are named in the PR body. When pushed, no open PR touched either file and sibling branches 12450/12454 were still at cf430cd. The claim's file-surface line needs the PM to amend it; I do not write claims.",
"aria-current=page added to every pillar link, not only Access. The card text does not ask for it, but the artboards' header does, and the overflow's Access link had it.",
"Some evidence was measured on 36254fe, not the final head (full StudioDesignSurface batches, closure build, type-check, build, lint). The only commits after it are the changeset and the two PNGs. The named tests and all check:* gates were re-run on 13afa58.",
"Lint ran as pnpm exec eslint on the touched files from packages/app-shell (the package script is eslint . over the whole package).",
"Commit trailers are the model-free pair from objectui AGENTS.md (Claude-Session + Co-authored-by: Claude). The harness reminder's model-named Co-Authored-By was not used, because the agent contract makes the harness reminder yield.",
"Screenshot backend: hotcrm worktree at 63db83e running objectstack dev --fresh on :4152, console on :5252. The app chip shows HotCRM as Read-only (objectui#12453's region, not this card's). Both the server processes and the hotcrm worktree were stopped and removed after use."
],
"files_changed": [
".changeset/12452-access-in-pillar-nav.md",
"docs/design/studio-redesign/after/12452-header-dark.png",
"docs/design/studio-redesign/after/12452-header-light.png",
"packages/app-shell/src/views/metadata-admin/i18n.ts",
"packages/app-shell/src/views/studio-design/StudioDesignSurface.accessSegment-12452.test.tsx",
"packages/app-shell/src/views/studio-design/StudioDesignSurface.moreKeepsName-11794.test.tsx",
"packages/app-shell/src/views/studio-design/StudioDesignSurface.packageLessFlows-11553.test.tsx",
"packages/app-shell/src/views/studio-design/StudioDesignSurface.pillarNavGuard.test.tsx",
"packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx"
],
"line_budget": "n/a: no skills/** surface",
"mcp_calls": "0",
"api_writes": "2 relay strokes (each one POST /repos/objectstack-ai/objectstack/dispatches via scripts/pm/with-fleet.sh --via dispatch, executed as objectstack-fleet[bot]): (1) pr_create → POST /repos/objectstack-ai/objectui/pulls (draft) + POST /repos//issues/12470/assignees [os-sales], read-back 8260 bytes sent = stored; (2) comment → POST /repos//issues/12452/comments (this report). Zero label writes. git push x4 (not REST).",
"open_questions": [],
"out_of_scope_findings": [
"carrier: none · noted, not filed · the comment just above the Studio shell header (it opens with 'overflow-x-auto — none of Package/pillars/Publish shrink') still describes the scrolling strip objectui#12459 retired. Comment drift outside this card's region; recorded in the PR's Acceptance notes."
]
}
State change: the card closed as completed through Fixes #12452; pm:dispatched is removed in this act, while pm:epic, domain:ui and area:studio stay. No other open child of objectui#12446 changed state.
Activity
objectstack-fleet commentedon Oct 15, 2026
Decision A answered · 2026-10-15
Maintainer, in the epic PM session on 2026-10-15, verbatim:
Decision A is the first clause: Access becomes the fourth segment of the pillar nav and More retires. The full record, with the premise to re-check (
OVERFLOW_PILLARSholds exactly one pillar), is on the epic #12446. This card is no longer held on a decision; it stays blocked on #12459 (#12460, enqueued) and is dispatched once that lands. The body's hold sentence is refreshed in the same stroke.Written 2026-10-15T09:12Z by the epic PM session
session_cdb7a717-def7-4e71-9988-f089fbaa18ff.objectstack-fleet commentedon Oct 15, 2026
Claim: PM loop round 1 (epic #12446 subtree)
Session:
session_01SJn1GEkrbbBQkhGC26wEDwAccount:
os-sales(the seat's linked user asGET /useranswers it; the card's assignee)Branch:
claude/issue-12452-access-in-pillar-navWorktree:
objectui-issue-12452Domain:
domain:uiSeat:
domain:ui#4File surface:
packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx(region: thePILLARS/OVERFLOW_PILLARSdeclarations and the shell header's pillar nav insideStudioDesignSurface),StudioDesignSurface.moreKeepsName-11794.test.tsx(replaced by the new pin),packages/app-shell/src/views/metadata-admin/i18n.ts(retireengine.studio.morein every locale), the screenshots underdocs/design/studio-redesign/after/named12452-*.png(the light and dark pairs the reference README asks for, filed as the skeleton PR filed its own), one.changeset/12452-*.md(stop on breach; explain in the report)Container & model:
M,mode:subagent,model: opusClause-②: no
Responsibility:
n/a — not a defect cardThread-read: 6188627851
Serial constraints cleared: objectui#12459 merged as PR objectui#12460 (
cf430cd), which rewrote the shell header this card edits. In flight on the same file at claim time: objectui#12450 (DataPillar) and objectui#12454 (AutomationsPillar), both this seat, regions disjoint from the shell nav. objectui#12453 (app chip) follows this card in the shell header region. No other open PR touchesstudio-design/(3 open PRs read).Ruling-ref: 6188627851
objectstack-fleet commentedon Oct 15, 2026
os-dev-report
{
"issue": 12452,
"status": "done",
"branch": "claude/issue-12452-access-in-pillar-nav",
"pr": "#12470",
"session": "session_01SJn1GEkrbbBQkhGC26wEDw",
"premise_still_valid": true,
"summary": "Premise of ruling A re-checked on cf430cd and it holds: OVERFLOW_PILLARS was exactly [{ key: 'access', label: 'Access', Icon: Shield }], and the header was its only reader. PILLAR_FOR_SURFACE_TYPE, the deep-link channel and the pillar dispatch spell out 'access' themselves and never read the list. Access is now the fourth entry of PILLARS (shield glyph, same segment markup, same narrow-viewport icon rule, same confirmLeavePillar guard). OVERFLOW_PILLARS, the More popover, studio-nav-more and engine.studio.more (en and zh blocks of metadata-admin/i18n.ts) are removed, and a comment at PILLARS keeps the objectui#11794 rule on record in case More ever returns. Each pillar link now has aria-current=page while its pillar is open, matching the artboards and keeping the a11y signal the overflow's Access link had. The package-less scope still shows only its one pillar. PM mechanism assumptions 1, 3, 4 and 5 hold as stated. Assumption 2 holds too: the skeleton's segment markup is what Access now uses. The More test retires and StudioDesignSurface.accessSegment-12452 replaces it. Draft PR #12470 includes 1280x900 light and dark after-screenshots and an app-shell minor changeset. Run resumed after the 10:00Z weekly-limit 429 by re-reading state; nothing was redone.",
"tests": "Final head 13afa58: pnpm exec vitest run on accessSegment-12452, pillarNavGuard, accessGuard, packageLessFlows-11553, zhPillarNames-11801 and createAppOpensInterfaces-11794 (repo root, --maxWorkers=2, under os-verify-lock) → 'Test Files 6 passed (6) / Tests 44 passed (44)', VERDICT command-exit 0. The 6 accessSegment cases are green by name under the verbose reporter. On 36254fe, which has the same code (36254fe..13afa58 adds only .changeset/12452-access-in-pillar-nav.md and two PNGs): all 76 StudioDesignSurface..test.tsx files plus metadata-admin/studio-locale.i18n.test.tsx ran in three batches, 26 files/120 tests + 25/167 + 26/232, all passed, each VERDICT command-exit 0. Ablation on the new pin, once, on 36254fe, with source-resolved imports so no build was needed, both legs through objectstack scripts/ablation-replace.mjs (anchor x1 → x0, blob changed, restored blob == HEAD d00192a62e79, git diff HEAD empty). (a) Access link skips the guard (p.key !== 'access' && inserted before confirmLeavePillar()): the new guard case went red with 'expected "vi.fn()" to be called 2 times, but got 1 times', the other 5 new cases stayed green, and pillarNavGuard stayed 7/7 green, so no older test caught this loss. (b) Access deleted from PILLARS: new file 6/6 red, pillarNavGuard 3/7 red.",
"gates": "Local subset, each exit captured by redirect-then-$? before any pipe. On 13afa58: pnpm check:i18n-keys 0; check:i18n-drift 0 (designer table '0 key(s) added, 1 removed'); check:i18n-dead-keys 0; check:i18n-designer-parity 0; check:new-line-citations 0 ('0 new citation(s)'); check:changeset-claims 0; check:pending-changeset-literals 0; check:test-path-roots 0; node scripts/check-changeset-presence.mjs 0 ('declares 1 changeset(s)'); node scripts/check-changeset-no-major.mjs 0. pnpm check:i18n (the card's name) → 254 'Command "check:i18n" not found', which confirms the PM's reading. On 36254fe, all under os-verify-lock: turbo build of the closure --filter='@object-ui/app-shell^...' --concurrency=2 → 28/28 successful, VERDICT 0; pnpm --filter @object-ui/app-shell run type-check (tsc --noEmit && tsc -p tsconfig.test.json) → VERDICT 0, and tsc --listFilesOnly shows the 3 edited or new test files; pnpm --filter @object-ui/app-shell run build → VERDICT 0 ('dist completeness: 1 package(s) complete'). eslint on the 5 touched app-shell files → exit 0 with 0 errors; the 18 warnings were already on cf430cd and none is in a changed hunk. objectui has no dispatch-gates derivation, so the list was hand-derived from the root package.json check: scripts for the i18n, changeset, doc and test-path families. PR #12470 check-runs, read once at 13afa58 right after open (36 total): success = Changeset Bump Policy, Build Docs, Changeset Fixed Group Check, label; skipped = dependabot, Test (coverage), Test (coverage shard matrix); in_progress = Spec Main Shape Gate, Changeset Overwrite Report, Test (shard 1..16/16), Test (dist pins), Lint, Type Check, Build & E2E, Line Citation Gate, Repo Gates, Governed Surface Queue Guard, Bundle Analysis, Live E2E (informational), Changeset Declaration, Changeset Claim Re-read. CI convergence is the PM's; I did not poll.",
"deviations": [
"File surface: two test files outside the claim got test-only edits. StudioDesignSurface.pillarNavGuard.test.tsx: its clickAccessInOverflow helper clicked studio-nav-more, so acceptance 4 (stay green) and acceptance 3 / ruling A (no More) conflict unless the helper changes. It became clickAccessInNav, which clicks the Access segment, and no assertion changed. StudioDesignSurface.packageLessFlows-11553.test.tsx: its 'no studio-nav-more' line would have gone vacuous, so it now asserts no Access link (PM assumption 4). Both edits are named in the PR body. When pushed, no open PR touched either file and sibling branches 12450/12454 were still at cf430cd. The claim's file-surface line needs the PM to amend it; I do not write claims.",
"aria-current=page added to every pillar link, not only Access. The card text does not ask for it, but the artboards' header does, and the overflow's Access link had it.",
"Some evidence was measured on 36254fe, not the final head (full StudioDesignSurface batches, closure build, type-check, build, lint). The only commits after it are the changeset and the two PNGs. The named tests and all check:* gates were re-run on 13afa58.",
"Lint ran as pnpm exec eslint on the touched files from packages/app-shell (the package script is eslint . over the whole package).",
"Commit trailers are the model-free pair from objectui AGENTS.md (Claude-Session + Co-authored-by: Claude). The harness reminder's model-named Co-Authored-By was not used, because the agent contract makes the harness reminder yield.",
"Screenshot backend: hotcrm worktree at 63db83e running objectstack dev --fresh on :4152, console on :5252. The app chip shows HotCRM as Read-only (objectui#12453's region, not this card's). Both the server processes and the hotcrm worktree were stopped and removed after use."
],
"files_changed": [
".changeset/12452-access-in-pillar-nav.md",
"docs/design/studio-redesign/after/12452-header-dark.png",
"docs/design/studio-redesign/after/12452-header-light.png",
"packages/app-shell/src/views/metadata-admin/i18n.ts",
"packages/app-shell/src/views/studio-design/StudioDesignSurface.accessSegment-12452.test.tsx",
"packages/app-shell/src/views/studio-design/StudioDesignSurface.moreKeepsName-11794.test.tsx",
"packages/app-shell/src/views/studio-design/StudioDesignSurface.packageLessFlows-11553.test.tsx",
"packages/app-shell/src/views/studio-design/StudioDesignSurface.pillarNavGuard.test.tsx",
"packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx"
],
"line_budget": "n/a: no skills/** surface",
"mcp_calls": "0",
"api_writes": "2 relay strokes (each one POST /repos/objectstack-ai/objectstack/dispatches via scripts/pm/with-fleet.sh --via dispatch, executed as objectstack-fleet[bot]): (1) pr_create → POST /repos/objectstack-ai/objectui/pulls (draft) + POST /repos//issues/12470/assignees [os-sales], read-back 8260 bytes sent = stored; (2) comment → POST /repos//issues/12452/comments (this report). Zero label writes. git push x4 (not REST).",
"open_questions": [],
"out_of_scope_findings": [
"carrier: none · noted, not filed · the comment just above the Studio shell header (it opens with '
overflow-x-auto— none of Package/pillars/Publish shrink') still describes the scrolling strip objectui#12459 retired. Comment drift outside this card's region; recorded in the PR's Acceptance notes."]
}
Generated by Claude Code
objectstack-fleet commentedon Oct 15, 2026
ACCEPT → PR #12470 comment 6190131598 (head
13afa58, read 2026-10-15T10:39Z). Landing waits for green CI on that head.Generated by Claude Code
objectstack-fleet commentedon Oct 15, 2026
Landed · PR #12470 merged as
d25585conmain· read 2026-10-15T11:03Zorigin/maind25585cOVERFLOW_PILLARSinStudioDesignSurface.tsxconst PILLARS1 hit{ key: 'access', label: 'Access', Icon: Shield }inPILLARS'engine.studio.more'inmetadata-admin/i18n.ts'engine.studio.saveDraft'2 hitsstudio-nav-morein app-shell source (non-test)StudioDesignSurface.accessSegment-12452.test.tsx/moreKeepsName-11794State change: the card closed as completed through
Fixes #12452;pm:dispatchedis removed in this act, whilepm:epic,domain:uiandarea:studiostay. No other open child of objectui#12446 changed state.Generated by Claude Code
feat(app-shell): Access is the fourth Studio pillar segment; the More…