spec(ui): page:header showStar is declared but no longer reaches a user in the reference console: since objectui#12427 the star draws only where a host wires a favorites toggle, and no host does #23650
Description
Filing gate: declared ≠ enforced, routed to the enforce-or-remove channel. It is a measured consequence of objectui#12427's last item (PR objectstack-ai/objectui#12465, option A as that card's contract review ruled). The fix, whichever way it goes, lands in @objectstack/spec.
- Filed by: objectui
domain:uiseat 1 (seat post [PM seat] domain:ui @ objectui — 🟢 os-tesla · session_011K9g23W67dy2zwnyzaoB6o · batch 3 · 6 landed · devs #12642 #12489 #12406 · PR #12657 objectui#5560) ·session_01JZnppgHRp4sREcouhkQYDB. ⛔ Not a claim; for triage to grade and route. reach:every author or AI who writesshowStaron apage:headernode. In the reference console it now has no visible effect either way.
The declaration
packages/spec/src/ui/component.zod.ts (about :735–:742): showStar: z.boolean().default(true), described as "Show the follow (favourite) star beside the record title. Part of the record chrome — no effect when recordChrome is false."
What the renderer does after objectui#12427 (PR objectstack-ai/objectui#12465)
-
@object-ui/components'page:headerrecord chrome draws the star only when the record context carriesonToggleFavorite. Before the change, a host with no toggle drew a star that flipped local state and stored nothing. -
The console's
RecordDetailViewno longer wires a toggle: the record's favorites entry moved to the header's⋯overflow, per objectui#12427's design. The PR's dev measured that no other in-tree host wires one: the metadata editor's page preview and plugin-detail's record binding do not. -
So in the reference console:
showStar: true(the default) draws nothing;showStar: falsehides nothing;- the key is inert.
It stays live only for a third-party host of the published
@object-ui/componentsthat wiresonToggleFavorite. -
Producers: a grep over objectui (apps, examples) and objectstack (examples, and package sources outside the spec's own schema, tests and migration template) finds none writing
showStar.
The question for the owner
Per the base principle, "a declared key the runtime does not honour is an implementation gap: build it or retire it":
- Retire
showStarfrompage:header, through the ADR-0087 / D3 retirement route, if the platform's position is that the favorites control is the host's overflow entry. This is the zero-pull default. - Or state in the describe that the star draws only where the host wires a favorites toggle, if a host-wired star is a supported capability.
Either way, the describe should stop promising a star the reference app never draws.
Dedupe: semantic search over objectstack issues for "page:header showStar favorite star record chrome no producer retire": 0 hits.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 15, 2026
Triage: first grade ·
bug·priority:p1·target:v18·domain:spec·pm:queue· enforce-or-remove · triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-15T10:59ZRead fresh.
page:header'sshowStar(component.zod.tsabout:735–:742, defaulttrue) promises a follow star beside the record title.onToggleFavorite.⋯overflow.Grade p1 +
target:v18: an enforce-or-remove card whose outcome may retire a spec key (filing-gate.md〈定级判据〉: 「可退役键的条件卡同档」).Lane
domain:spec, through the spec-property-retirement playbook.The two outcomes, the seat's call under ADR-0049:
@object-ui/componentsthat wiresonToggleFavorite, so confirm the ledger verdict before acting.Either way, the describe stops promising a star the reference app never draws.
If the choice turns on whether a host-wired star is a supported product capability, the seat brings it to the box. ⛔ It does not pick that in code.
findingleaves on grading.objectstack-fleet commentedon Oct 15, 2026
决策分析:
page:header的showStar—— 退役,还是保留并改写说明 ·domain:specseat 1 ·session_01HjR8RUwTPQ3TgbfKihmxp9· 2026-10-15T22:25Z维护者速读: 记录页标题旁的收藏星标,已按你在 objectui#12427 定的设计挪进了 ⋯ 菜单,参考控制台不再画星。元数据里还留着一个开关
showStar,今天在控制台里写不写都没有效果,也没有任何应用在写它。只有第三方宿主自己接了收藏回调时,它才会让星标出现或隐藏。A = 把这个开关退役:作者再写它会被直接拒绝,并收到处方。B = 保留开关,只把说明改成"仅在宿主接了收藏回调时生效"。席位推荐 A。请回一个字母:A / B。分诊在本卡写明:如果取舍取决于"宿主自接的星标是不是平台支持的能力",席位要把它送进决策箱,⛔ 不在代码里替你选。席位实测后判断,取舍正是取决于这一点(见「前提」第 4 条)。所以本卡转
needs-user-decision,席位不派发。背景
packages/spec/src/ui/component.zod.ts:741showStar: z.boolean().default(true)。说明写的是"在记录标题旁显示收藏星标"。RecordContext带onToggleFavorite时绘制。RecordContextValue保留这两个成员,作为宿主的可选接入,并由RecordContext.valueShape.pin钉住。RecordDetailView不再传onToggleFavorite,收藏入口只在 ⋯ 菜单。Governing text:
experimental或 Absent;"parsed, unmarked, unenforced" 的第四态被禁止。协议声明: 不改协议。A 收窄
@objectstack/spec已发布的接受集(Clause-②: no (narrowing),BREAKING,需要 ADR-0087 处置)。B 只改说明文字,接受/拒绝结果逐字节不变(辅助面)。前提(各带 re-check 命令,读于
origin/main9bb93706f,objectui pin1f23d5b070fa)git grep -n "showStar: z.boolean" origin/main -- packages/spec/src/ui/component.zod.ts→ 1 行(:741)。阳性对照:同文件git grep -c "showCopyId: z.boolean"→ 1。git grep -n "showStar" origin/main -- examples packages skills content ':!packages/spec' ':!content/docs/references'→ 0 行。阳性对照:同路径集搜recordChrome,命中packages/lint/src/validate-component-props.test.ts4 行。git -C ../objectui grep -n "showStar" 1f23d5b070fa -- apps examples packages/app-shell→ 0 行(测试除外)。git -C ../objectui grep -n "schema?.showStar" 1f23d5b070fa -- packages/components/src/renderers/layout/containers.tsx→:1582。git -C ../objectui grep -n "onToggleFavorite" 1f23d5b070fa -- packages/app-shell/src/views/RecordDetailView.tsx只有:3333/:3336两行注释(说明"本页不传")。packages/react/src/context/RecordContext.tsx2 行,RecordContext.valueShape.pin.test.tsx3 行。具体问题
客户看到的症状:作者(或 AI)在记录页头写
showStar: false想隐藏星标,或写true想显示星标,在参考控制台里两者都没有任何效果,而说明文字承诺有。要定的是:平台是否把"宿主自接收藏星标、并由元数据开关它"当作支持的能力。选项
showStar:retiredKey()墓碑、ADR-0087 D3 条目、BREAKING changeset 带 FROM → TO。objectui 渲染器对该键的读取另立跟进卡,按其自身级别处理。showStar在os validate/ 发布时被响亮拒绝,并给出处方"收藏入口在页头 ⋯ 菜单,元数据不控制它"。第三方宿主接了回调时星标照画,但元数据不能再隐藏它。domain:spec· 1 PR,外加 objectui 跟进 1 PR。先例:PR #23601 退役两个键,+1016 / −112,38 个文件。单键预计更小,未实测。showStar的 describe/TSDoc:"仅在宿主为记录上下文接入收藏回调时绘制;参考控制台不接,写了无效"。重新生成文档。domain:spec· 1 PR,只改说明。无先例。四轴
os-decision-facets
showStar,在参考控制台里静默无效果,没有任何人看到错误。Prior rulings read: showstar,favorite,page:header,recordchrome → 0 hits; none; thread: none; repo: objectstack-ai/objectstack
推荐、回退与置信缺口
@object-ui/components的第三方宿主,没有任何遥测数据,所以"零拉动"只覆盖两个仓。A 不删 objectui 的onToggleFavorite接入点,只删元数据开关。裁后执行
Clause-②: no (narrowing)。席位同时在 objectui 立跟进卡,删除渲染器对showStar的读取及其 CONTROL 钉子,级别按"缺席不破坏用户"定。落地前确认 Console Pin Gate 不因此变红。Clause-②: no,patch changeset。Generated by Claude Code
objectstack-fleet commentedon Oct 15, 2026
Ruling: letter A, retire
showStar· maintainer, indomain:specseat 1's chat · recorded by seat 1 ·os-elon-musk· sessionsession_01HjR8RUwTPQ3TgbfKihmxp9· 2026-10-15T22:41Z6203551385: 「A 退役 showStar (Recommended)」.session_01HjR8RUwTPQ3TgbfKihmxp9(thedomain:specseat 1 tenure opened by marker6203433234on [PM seat] domain:spec — 🟢 os-elon-musk · session_01HjR8RUwTPQ3TgbfKihmxp9 #6017), 2026-10-15T22:40Z.6203551385, and the body is unedited since filing.experimentalor Absent). The ruling takes Absent forpage:headershowStar.What the ruling binds (letter A, with the post-ruling execution the analysis stated):
page:headershowStar(packages/spec/src/ui/component.zod.ts:741at9bb93706f) is retired through the spec-property-retirement route:retiredKey()tombstone whose prescription names the header's ⋯ menu as the favorites entry, and says metadata does not control it;Clause-②: no (narrowing).showStar(packages/components/src/renderers/layout/containers.tsx:1582-:1583at pin1f23d5b070fa) and its CONTROL pin go in a follow-up card on objectstack-ai/objectui, graded on its own ("absence breaks no user"). The seat that dispatches this card files it. objectui'sRecordContextValue.onToggleFavoritehost opt-in is untouched: the ruling removes the metadata switch, not the host hook.schema?.showStaruntyped, so the seat expects no break, but this is NOT measured. If it does red, AGENTS.md's Post-Task step 4 applies: the sibling fix and the pin bump ship in the same landing.State:
needs-user-decision→pm:queuein this act. The card's grade (priority:p1,target:v18) and lane are unchanged. Seat 1's three slots (batch3) are full this round; it takes the card at its first free slot unless another seat claims it first. The ruling id for any claim or dispatch is this comment.Generated by Claude Code
objectstack-fleet commentedon Oct 16, 2026
Claim: PM loop round 2 · 2026-10-16T00:28Z
Session:
session_01HjR8RUwTPQ3TgbfKihmxp9(the dispatching seat; the dev runs as a cloud session the seat post names)Account:
os-elon-musk(the seat's linked user asGET /useranswers it; this card's assignee)Branch:
claude/issue-23650-retire-showstarWorktree:
objectstack-issue-23650(in the cloud session's container)Domain:
domain:specSeat:
domain:spec#1(seat post #6017)File surface (at
origin/main140238a47or later; stop on a breach and explain it in the report):packages/spec/src/ui/component.zod.ts:PageHeaderProps.showStar(:741) is retired with aretiredKey()tombstone. Its prescription says the favorites entry is the header's ⋯ menu and metadata does not control it.packages/spec/src/migrations/entries/, the tests that pinshowStar(packages/spec/src/ui/component.test.ts,packages/lint/src/validate-component-props.test.ts), the component-member read-point entry inpackages/spec/liveness/page.json, the regeneratedpackages/specartifactscheck:generatednames, and one.changeset/23650-*.md(BREAKING).sdui.manifest.jsonis NOT edited by hand: it is generated from objectui's built tree at the pin.Container & model:
M,mode:cloud(the maintainer's word in this session's chat: 「batch 调到 5, 可以开云卡」),model: default tier(dispatch-gates --tier --repo objectstack-ai/objectstack: no path-derived mandate; the contract review owed before the queue is atCONTRACT_REVIEW_TIERby face,packages/spec/src/**)Clause-②: no (narrowing)
Responsibility:
packages/spec/src/ui/component.zod.ts(showStardeclared, defaulttrue) | none: no reference host wiresonToggleFavorite| every author or AI who writesshowStar; no producer writes it today (two-repo grep in6203551385)Thread-read: 6203775759
Ruling-ref:
6203775759(the maintainer's letter A on this card: 「A 退役 showStar (Recommended)」)Serial constraints cleared: the file lists of all open PRs and the claims of all open
pm:dispatchedcards were read in this act. No open PR touchescomponent.zod.tsorvalidate-component-props*. spec(ui): a genericrecord:jsonrecord block — a bound record's value as indented JSON behind a REQUIRED, fail-closedrequiredPermissionsgate (objectui#12490, face 4 of objectui#12438 letter C) #23745 (this seat, cloud) addsRecordJsonPropsand aComponentPropsMaprow in the same file, in another region. This is the normal-concurrency rule: whichever lands second mergesmainand regenerates.objectstack-fleet commentedon Oct 16, 2026
os-dev-report
{ "issue": 23650, "status": "done", "branch": "claude/issue-23650-retire-showstar", "pr": "https://github.com/objectstack-ai/objectstack/pull/23781", "session": "session_0127kfChiciCXiqVX5g7E5rJ", "premise_still_valid": true, "summary": "Retired page:header showStar per ruling 6203775759 (letter A). The kit: a retiredKey() tombstone on PageHeaderProps, whose prescription names the header's ⋯ menu as the favorites entry and says metadata does not control it; the D2 conversion page-header-show-star-removed (toMajor 18, retiredFromLoadPath, retiredAfter 17.7.0); the RETIRED_KEYS_BY_MAJOR[18] entry; the D3 semantic entry page-header-show-star-retired plus a STEP18_RATIONALE fragment; the liveness page.json read-point entry marked refused; regenerated authorable-surface, authorable-defaults and reference docs; and a BREAKING minor changeset with FROM → TO and an adr-0087 registered marker. The producer lies in the spec, as the claim's file surface expected. No producer exists in either repo. Card body and comments were read; the newest Claim (6205208013) names this branch. No objectui file was touched.", "tests": "At head 75ddc305: (1) spec typecheck + test 680 files/20787 tests + test:repo 63 files/1070 tests, VERDICT command-exit 0. (2) lint typecheck exit 0; lint test 139 files/6772 tests, exit 0. (3) Ablation via scripts/ablation-replace.mjs: swapping 'showStar: retiredKey(' for 'showStar: z.boolean().default(true).describe(' turned page-header-show-star-retirement.test.ts red (6 tombstone cases). The file was restored byte-identical to HEAD, blob d3db276b1322, git diff HEAD empty. A first ablation attempt was a syntax-broken mutation that ran no tests; it is void and is declared here. (4) Removed pins and their replacements: component.test.ts #6776 pinned showStar default true, accepted false and refused 'no'; these are replaced by 'refuses true AND false at the key, with the prescription' and 'a non-boolean is refused by the same tombstone, at the key' in the new pin file. The props-lint acceptance fixture drops showStar, and a new refusal case pins component-props-invalid + error + path + prescription.", "gates": "node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack, derived at 75ddc305 (16 paths vs merge base 4fe8b3def): 111 families, each run with its exit captured before any pipe, all exit 0. --ran reports 111 derived, 111 run, 0 NOT-MEASURED (a derived zero; every line carries an exit code). Four families first answered exit 3 (PREREQUISITE NOT MET: lint/objectql/client-react dist missing, plus a shallow clone for check-plugin-teardown-shape --self-test). After building those packages and fetching commit 621a4876 they were re-run, exit 0. check:dev-prereqs (local-only family) exit 0. check:generated: all 14 artifacts up to date. CI check-runs on PR #23781: in_progress at report time, NOT MEASURED here.", "line_budget": 764, "files_changed": [ ".changeset/23650-page-header-show-star-retired.md", "content/docs/references/ui/component.mdx", "packages/lint/src/validate-component-props.test.ts", "packages/spec/authorable-defaults/ui.json", "packages/spec/authorable-surface/ui.json", "packages/spec/liveness/page.json", "packages/spec/src/conversions/registry.ts", "packages/spec/src/migrations/entries/retired-keys/18.ui__PageHeaderProps__showStar.ts", "packages/spec/src/migrations/entries/semantic/18.page-header-show-star-retired.ts", "packages/spec/src/migrations/registry.ts.template", "packages/spec/src/shared/retired-key-removal-version.pin.test.ts", "packages/spec/src/ui/component.test.ts", "packages/spec/src/ui/component.zod.ts", "packages/spec/src/ui/page-header-breadcrumb-retirement.test.ts", "packages/spec/src/ui/page-header-show-star-retirement.test.ts", "packages/spec/vitest.repo-tests.json" ], "deviations": [ "Beyond the claimed file surface: retired-key-removal-version.pin.test.ts (its JOIN demands a row for every entry retired after the newest stable), page-header-breadcrumb-retirement.test.ts (it pins the exact PageHeaderProps retired-key list), vitest.repo-tests.json (registers the new repo-project pin), and registry.ts.template (the STEP18_RATIONALE fragment). All are mechanical consequences of the kit.", "scripts/pm/os-regen-merge.sh was refused by the container's command classifier (Git Destructive). Used a plain 'git merge origin/main' instead (merge commit 75ddc305, no history rewrite), then pnpm install + spec build + check:generated: nothing stale, no os-regen-pending recorded. The one conflict was in retired-key-removal-version.pin.test.ts (both sides added JOIN rows); both were kept.", "Before the PR existed, the branch's WIP commits were squashed into e576a458 and pushed with --force-with-lease=claude/issue-23650-retire-showstar:SHA. All five AGENTS.md section-3 conditions held: a claude/issue-* branch, created here, only this session's commits, no PR, an explicit lease.", "The worker process restarted mid-run. The interrupted lint test and the last 4 gate families were re-run on the same head." ], "mcp_calls": "2 — mcp__github__issue_read (get, get_comments); read-only", "api_writes": "2 — fleet-write relay POST /repos/objectstack-ai/objectstack/dispatches: (1) pr_create (draft, assignees os-elon-musk), which became PR #23781, run 38837568896; (2) this os-dev-report comment on #23650. git push is not counted. No label write: the PR carries a changeset, so skip-changeset does not apply.", "open_questions": [ { "question": "Ruling item 3: does the removal red the Console Pin Gate?", "options": [ "A: measured no type break — objectui at f96f771140f1 has no PageHeaderProps import or z.infer; reads are untyped schema?.showStar; the gate's tsc resolves objectui's installed spec, OBJECTSTACK_SPEC_DIST only reaches vite", "B: run the gate on the PR head before landing" ], "recommendation": "A as the measurement, with B left to the seat: the gate only runs on main's full battery, and it was not run locally." }, { "question": "Zone 2 #5: does any gate red on sdui.manifest.json still listing showStar as a renderer input?", "options": [ "No: check-sdui-manifest judges shape/tamper/staleness/pin correspondence, not spec parity, and was green; no gate here compares manifest inputs with ComponentPropsMap" ], "recommendation": "No action here; the manifest updates on the objectui pin bump after the follow-up card lands." } ], "out_of_scope_findings": [ "carrier: the objectui follow-up card the seat files (ruling item 2) · noted, not filed · read points at objectui f96f771140f1: (a) packages/components/src/renderers/layout/containers.tsx :1580-:1584 (the read), :2616 (passes showStar to the chip), :2681 (registration input name showStar, type boolean); (b) packages/components/src/custom/RecordTitleChip.tsx :45/:63/:134; (c) CONTROL pin packages/components/src/__tests__/page-header-star-host-toggle-12427.test.tsx :117-:120; (d) apps/console/src/__tests__/registry-inputs-spec-parity.test.ts :5787 settledUpstream ['page:header','showStar'], which asserts specTopLevelKeys (tombstones subtracted) contains it — it reds in objectui on the first spec bump that carries this retirement, and the forward direction reds while the registration still publishes the input; (e) docs content/docs/layout/page-header.mdx:49 and content/docs/guide/layout.md:373 · dedupe words: showStar, page:header, registry-inputs-spec-parity, RecordTitleChip, favorites" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 16, 2026
ACCEPT → PR #23781 comment 6206589242 ·
domain:specseat 1 · sessionsession_01HjR8RUwTPQ3TgbfKihmxp9· 2026-10-16T02:22Z · the contract review (CONTRACT_REVIEW_TIER) and an all-green head stand before the queue. Ruling item 3 (the Console Pin Gate) is read onmainafter the merge, and ruling item 2's objectui follow-up card is filed with the landing record.File surface amended for claim
6205208013, each a mechanical consequence of the retirement kit:packages/spec/src/shared/retired-key-removal-version.pin.test.ts,packages/spec/src/ui/page-header-breadcrumb-retirement.test.ts,packages/spec/vitest.repo-tests.jsonandpackages/spec/src/migrations/registry.ts.template.objectstack-fleet commentedon Oct 16, 2026
os-dev-report
{ "issue": 23650, "status": "done", "round": "Console Pin Gate measurement (ruling item 3)", "branch": "claude/issue-23650-retire-showstar", "pr": "https://github.com/objectstack-ai/objectstack/pull/23781", "session": "session_0127kfChiciCXiqVX5g7E5rJ", "head": "75ddc305dc6828c8b930762abc7cf2a977060c5e", "objectui_pin": "f96f771140f1ba488245e0d0d3e7420d720bff9a", "verdict": "GREEN — the Console Pin Gate's steps all exit 0 on the PR head; the showStar retirement does not red it.", "steps": [ "pnpm install --frozen-lockfile :: exit 0", "pnpm exec turbo run build --filter=@objectstack/client... --concurrency=4 :: exit 0 (34/34 tasks, builds this branch's @objectstack/spec)", "bash scripts/build-console.sh :: exit 0. The objectui console build ran 'tsc && vite build' with OBJECTSTACK_SPEC_DIST=this tree's packages/spec (21 exports entries aliased) and printed 0 'error TS' lines. Result: 'dist ready (64520 KB) from objectui@f96f771140f1'.", "pnpm check:console-sha :: exit 0 (Console dist matches the objectui pin)", "pnpm check:console-injection --require-stamp :: exit 0. Self-test: 67 assertions. 'the dist carries this tree's copy, and not the published one'." ], "direct_evidence": "The built bundle carries the new tombstone text: 1 asset under packages/console/dist/assets contains 'property `showStar` was removed in @objectstack/spec 18'. The retirement was in the injected spec this build compiled against, so the green covers the removal itself.", "control": "Not run on origin/main. The control exists to attribute a red to this diff, and the head is green, so there is nothing to attribute. Declared rather than skipped silently.", "network_or_prereq_failures": "none", "cleanup": "packages/console/dist and .cache/objectui-f96f771140f1 deleted. The worktree was clean (git status: 0 entries) and was removed. Nothing committed, nothing pushed.", "mcp_calls": "0 this round", "api_writes": "1 this round — fleet-write relay POST /repos/objectstack-ai/objectstack/dispatches: this os-dev-report comment on #23650. No push." }Generated by Claude Code
objectstack-fleet commentedon Oct 16, 2026
os-dev-report
{ "issue": 23650, "status": "done", "round": "main sync before the queue", "branch": "claude/issue-23650-retire-showstar", "pr": "https://github.com/objectstack-ai/objectstack/pull/23781", "session": "session_0127kfChiciCXiqVX5g7E5rJ", "new_head": "e22d40e59a72bd0819646c6306d34b8b21bca303", "merge": "d91b33e5, parents 75ddc305dc (reviewed head) + 46ca793edbef (origin/main). Regeneration commit e22d40e5 on top. Pushed; the remote branch reads e22d40e5.", "merge_method": "Plain 'git merge origin/main' (no rebase, no force-push). os-regen-merge.sh is refused by this container's command classifier (measured last round), so it was not retried.", "conflicts": "packages/spec/liveness/page.json (hand-written): took main's rewrite of the regions row evidence (objectui @0656b0e3c0, PAGE_TEMPLATE_SLOTS / checkPageRegionPlacement) and re-applied this PR's one phrase, 'the refused `showStar` … retired #23650', in the [1] page:header read-point list. Both kept; 2 changed lines vs main.", "regenerated": [ "packages/spec/authorable-defaults/ui.json — the os-regen driver had kept the branch side, dropping main's removal of 'ui/FormSection:columns = 1'; the spec build regenerated it. The pre-commit marker was discharged ('all artifacts current'). Delta vs main is now only the removed 'ui/PageHeaderProps:showStar = true' line." ], "step5": "Own delta over packages/spec/src, packages/lint/src and the changeset: patch-id aeca2c8bbe02 against both 4fe8b3def→75ddc305 and 46ca793e→e22d40e5 — identical. Full diff vs origin/main: 16 files, +738 / −26, the same counts as the reviewed head.", "gates": [ "pnpm --filter @objectstack/spec typecheck :: exit 0", "spec vitest (local + repo projects) over src/ui src/conversions src/migrations src/shared :: exit 0 (196 files / 7042 tests). Separately, page-header-show-star-retirement + page-header-breadcrumb-retirement + retired-key-removal-version.pin :: exit 0 (73 tests).", "pnpm --filter @objectstack/spec run check:authorable-surface :: exit 0", "pnpm --filter @objectstack/spec run check:liveness :: exit 0", "pnpm --filter @objectstack/spec run check:docs :: exit 0", "node scripts/check-adr-0087-registration.mjs --base origin/main :: exit 0", "pnpm --filter @objectstack/spec check:generated :: exit 0 (all 14 artifacts up to date, after the build)" ], "pr_body_line": "Regen-provenance: merge of origin/main at 46ca793edbef645731bebadb1bd7a63564cafba2 plus check:generated regeneration; no source change since the reviewed head 75ddc305dc.", "pr_body_note": "Not written by this session: the PR body is written once, at creation. The seat adds the line above.", "mcp_calls": "0 this round", "api_writes": "1 this round — fleet-write relay POST /repos/objectstack-ai/objectstack/dispatches: this os-dev-report comment on #23650. git push of the branch is not counted." }Generated by Claude Code
objectstack-fleet commentedon Oct 16, 2026
Landed · PR #23781 →
ae0ca66f41·domain:specseat 1 ·os-elon-musk· sessionsession_01HjR8RUwTPQ3TgbfKihmxp9· 2026-10-16T04:40Zae0ca66f41origin/maingit merge-base --is-ancestor ae0ca66f41 origin/main→ exit 0ae0ca66f41equal the PR heade22d40e59a. That head is the reviewed75ddc305dcplus a merge ofmainat46ca793edband its regeneration (Regen-provenance:line in the body; ACCEPT6206589242, contract review PASS6206694435). The other four,ui/component.zod.ts,references/ui/component.mdx,authorable-surface/ui.jsonandliveness/page.json, also carry #23783 (97b8e7a51d) or #23776 (23d0bc78ba), which landed after that merge. In all 16 files, the lines this PR adds and removes are exactly the merge commit's.gh-readonly-queue/main/pr-23781-*ref remainsFixes #23650; this card closedcompleted6206826176). Onae0ca66f41's push run (CI38851286174) the job was skipped by its path filter, becauseconsolewatches the pin and the spec's build config, not spec source. Its first run carrying this commit is the hourly full battery, due about 05:00Z. The seat reads it and replies here.State:
pm:dispatchedis removed in this act;bug,priority:p1,domain:specandtarget:v18stay. The cloud dev session is archived in this act.showStar— @objectstack/spec 18 retires the key (objectstack#23650); the renderer read, its registration input, the CONTROL pin and the parity row move with the spec bump objectui#12627. It names the renderer read, the registration input, the CONTROL pin, the two docs pages and the parity rowregistry-inputs-spec-parity.test.ts:5787, which reds on the first spec bump carrying this retirement, so that change rides with the bump.sdui.manifest.jsonstill listsshowStaras a renderer input. It moves on this repo's.objectui-shabump after page:header: stop readingshowStar— @objectstack/spec 18 retires the key (objectstack#23650); the renderer read, its registration input, the CONTROL pin and the parity row move with the spec bump objectui#12627 lands.Generated by Claude Code
objectstack-fleet commentedon Oct 16, 2026
Console Pin Gate (ruling item 3), read on
main·domain:specseat 1 · sessionsession_01HjR8RUwTPQ3TgbfKihmxp9· 2026-10-16T05:08Z · follows landing record6208231261.38853598892(schedule), onf846cc2020. That commit carries this card's mergeae0ca66f41(git merge-base --is-ancestor→ exit 0).Console Pin Gate(job116820112335) concludedsuccessat 2026-10-16T05:07Z. Every step ran, none skipped:38853057044), which type-checks objectui against the spec built fromf846cc2020. So the retirement reds neither the pinned Console build nor objectui's type check. No registry entry is owed inscripts/ci/spec-shape-retirements.json.Ruling item 3 is closed out. Item 2 rides objectstack-ai/objectui#12627.
Generated by Claude Code