Repository navigation
chore(objectui): move the console pin to 1fb1ced36243 (objectui main tip, Half 1 of #23104) - #23110
Conversation
…sole changeset) objectui@1fb1ced36243c325acc801bdde26bd096a15f5f5, 11 commits past 7578323a544e, written by scripts/bump-objectui.sh --no-commit. The ADR-0087 disposition answers both declared-breaking entries; the second (objectui#12242) is marked by hand because the digest's block-opener rule misses a heading that opens with a warning sign. Claude-Session: https://claude.ai/code/session_016JB93R2KcQP4GgKaUnseVF Co-authored-by: Claude <noreply@anthropic.com>
Forty records cite only objectui files byte-identical across 7578323a5..1fb1ced36 and gain the hop sentence; the calendar row names the en/zh/de packs, which changed below line 1100 only, with calendar.configRequired held at :953 / :726 / :706. The six migration entries' corpus counts are re-taken with git grep -o -F at the new pin. Claude-Session: https://claude.ai/code/session_016JB93R2KcQP4GgKaUnseVF Co-authored-by: Claude <noreply@anthropic.com>
…1fb1ced36243 (WIP) gen-sdui-manifest-node.mjs over the built tree: 107 components, one input description changed (record:activity showCompleted, objectui#12228). The lockstep re-records at the pin; objectui's packages/sdui-parser is byte-identical across the hop. Claude-Session: https://claude.ai/code/session_016JB93R2KcQP4GgKaUnseVF Co-authored-by: Claude <noreply@anthropic.com>
…'s pin stamp Claude-Session: https://claude.ai/code/session_016JB93R2KcQP4GgKaUnseVF Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016JB93R2KcQP4GgKaUnseVF Co-authored-by: Claude <noreply@anthropic.com>
📓 Docs Drift CheckThis PR changes 2 package(s): 2 hand-written doc(s) NAME something this change touched and may need an implementation-accuracy re-verification:
⛔ 6 release-owned page(s) also name something this change touched. These are read-only:
What this run could not see
Coarse fallback — 140 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): Which tree this was computed onThis run read A worktree cut from an older # while this PR is open — GitHub drops the merge commit once it closes
git fetch origin 294dc81526da410e05bd4e9ecfea4f4804b726ea && git checkout 294dc81526da410e05bd4e9ecfea4f4804b726ea
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin 4a87d0908ccba61193270b495efb7c557cc59f56 043b81d1330fe4c66f4f1c0526bf999a2e1247eb && git checkout -B drift-repro 4a87d0908ccba61193270b495efb7c557cc59f56 && git merge --no-ff 043b81d1330fe4c66f4f1c0526bf999a2e1247eb
node scripts/docs-audit/affected-docs.mjs --json 4a87d0908ccba61193270b495efb7c557cc59f56
|
Contract reviewServed-tier: PR #23110, Half 1 of #23104 (the console pin hop ① Derived judgments
② Semver level
③ Boundary flags
Implemented-by: VERDICT: PASS Generated by Claude Code |
Part of #23104
Clause-②: no
The console pin hop
7578323a544e→1fb1ced36243(objectuimain,1fb1ced36243c325acc801bdde26bd096a15f5f5, exactly that commit, re-read as objectui'smaintip bygit ls-remotewhen the work started). This PR is Half 1 of #23104 only, the pin hop. The card stays open for Half 2, the full browser pass of every runnablesurface:browserandsurface:mixedchecklist item, which the PM seat runs against this PR's head; merging this PR must not close the card.The maintainer's order, verbatim:
Tier: no governed surface (
GOVERNED_SURFACESinscripts/pm/check-governed-merges.mjs). 21 files, +267/−56, the same shape as #23061.The hop: 11 objectui commits, 116 paths, all on objectui
main10aba37d1(objectui#12242: field metadata membersFieldSchemarefuses retire asnever),0cd322d78(objectui#12228),1ce8db8d9(objectui#12222, CI),ee5c49171(objectui#12238),e5c8ea7fe(objectui#12243),51c661e38(objectui#12248),e8fc452c3(objectui#12254),30c2e4e1d(objectui#12244),5dcb101(objectui#12249, test),7af0ab378(objectui#12268) and1fb1ced36(objectui#12208 / objectui#12256, CI).git merge-base --is-ancestor 7578323a544e 1fb1ced36243exits 0 andgit rev-list --countreads 11 in the sibling checkout, which is shallow; the range walked completely without a deepen (the bump script's own--check-walkableprobe said so, and the checkout is still shallow after the run).The pin round, as #23061's
Console Pin Gate steps, run locally (each exited 0):
turbo run build --filter=@objectstack/client...(34 tasks).scripts/build-console.shat the pin: bundle canary present, exactly one zod version literal, "Console bundle carries THIS tree's @objectstack/spec, and only it", and "Shipped the tracked sdui.manifest.json (recorded at objectui@1fb1ced36243, this pin)". The build was run twice; the second run, after the manifest regeneration below, is the one on disk.check:console-sha: "Console dist matches the objectui pin (objectui@1fb1ced36243)".check:console-injection --require-stamp: "the dist carries this tree's copy, and not the published one".The hop does not break the Console Pin Gate build against current
main.Artefacts that travel with the pin:
scripts/bump-objectui.sh 1fb1ced36243… --no-commitgenerated.changeset/console-1fb1ced36243.md:@objectstack/consoleminor (the level the script derived). It has 10 releasing entries, 1 release-nothing and 2 commits with no changeset (listed by subject).Clause-②: nowas added by hand, as in chore(objectui): move the console pin to 7578323a544e (objectui#12200) (#15204 C9) #23061.e8fc452c3) annotates with aBREAKING (…)paragraph, which the digest recognised. objectui#12242's@object-ui/typeschangeset (10aba37d1) annotates with a heading that opens with a warning sign before the word,## ⚠️ BREAKING, priced as minor …, and the digest's block-opener rule does not allow that prefix:hasBreakingAnnotationanswersfalseon the shipped body andtruewith only the warning sign removed. That entry is marked BREAKING by hand in this changeset, and the count line reads 2. The digest itself is not changed here (see Acceptance notes).adr-0087: TODOplaceholder. It is answerednot-required (no-migration-prescription), the disposition every earlier pin hop with annotated breaking entries used. Each entry is answered against this tree:componentenvelope only for ametric-cardnode.@objectstack/specalready refusescomponentand inlinedataon a widget (QUARANTINED_WIDGET_KEYS) and declares nocustomwidget; the six dashboard files underexamples/author nocomponentkey.nevertombstones and changes theauto_number/objecttype values. No package or example here depends on@object-ui/types(two code comments name it), no example field authors any of those members, and none declarestype: 'auto_number'ortype: 'object'.check-adr-0087-registration --base origin/mainreads the disposition;check:objectui-changesetpasses.node scripts/gen-sdui-manifest-node.mjs: 107 components, and unlike chore(objectui): move the console pin to 7578323a544e (objectui#12200) (#15204 C9) #23061sdui.manifest.jsonis not byte-identical across this hop. One value moved:record:activity'sshowCompletedinput description gains the sentence "A logged interaction, a task item that points at its source record through source_object / source_id (a logged call, meeting or email), also shows either way." (objectui#12228). Nothing in this repo pins that text.scripts/sdui-manifest.record.jsonis re-recorded at the pin (sha256f545b851c4bb…);check-sdui-manifestpasses.pnpm gen:sdui-lockstepre-recordspackages/sdui-parser/objectui-lockstep.jsonat1fb1ced36243. objectui'spackages/sdui-parseris byte-identical across this hop (git diff --quietexits 0);check:sdui-locksteppasses (214 grammar lines, 25 codes, the predicate). No parser port is owed.index.tsxnames were resolved by context: every one names aplugin-kanban,plugin-dashboard,plugin-map,plugin-gantt,plugin-timeline,plugin-treeorplugin-gridshell, none of which changed (the one changedindex.tsx,plugin-detail's, is cited by no asserting record).en/zh/depacks (objectui#12248 and objectui#12268) gained keys below line 1100 only (en+9,zh+6,de+6), socalendar.configRequiredheld aten.ts:953,zh.ts:726andde.ts:706. The functional-completenesscalendarrow says so.paramsrecord and theFormField.spandescribe) cites only byte-identical files, and each gains a hop sentence. Theobject-gridkeyboardNavigationrecord's count (15 hit lines against 3 for the control) holds because no line of the hop's diff nameskeyboardNavigation.git grep -o -F, which reproduces every7578323a544efigure (all 14 controls). The corpus is 8642 files, and a superset of 99 names (the 13 lifecycle, 31 metrics and 37 tracing exports, plus 18 key names) reads 0, except the unrelatedSpan519 andSpanSchema57, unchanged. Controls moved, e.g.objectstack18552 → 18601,@objectstack/spec7649 → 7679,timeout1686 → 1700,tenant1404 → 1415.check:objectui-pin-citations --verify-anchors: 55 asserting citations match1fb1ced36, and 13 quoted anchors verify against objectui at1fb1ced36.content/docs/references/ui/view.mdxwas regenerated bygen:docs(the describe's pin stamp, two rows);check:generatedreports all 14 artefacts up to date..changeset/objectui-pin-citations-1fb1ced36243.md:@objectstack/specpatch,Clause-②: no.Smoke boot, against this branch's built console
pnpm dev -- --fresh -p 39417from this worktree (check-dev-prereqsgreen, 67 packages):GET /api/v1/healthanswered 200 (status: ok, version 17.7.0) about 10 s after launch;GET /_console/answered 200 (18552 bytes) and its entry script./assets/index-D6vu2w50.js200; the served build stampGET /_console/.objectui-shareads1fb1ced36243c325acc801bdde26bd096a15f5f5, equal to the new pin; and the served/_console/sdui.manifest.jsonhashes tof545b851c4bb…, the recorded sha256. The server was stopped by the two PIDs this run recorded, and the port was free afterwards. No browser pass was run here: that is Half 2.Verification (local, at
043b81d13, after mergingorigin/mainat36b2889cd)@objectstack/specbuild, thenpnpm --filter @objectstack/spec test: 659 files, 19978 passed, 1 todo;pnpm --filter @objectstack/spec typecheckexit 0.node scripts/pm/dispatch-gates.mjs --commandsderived 125 commands on this diff; each was run and recorded with its exit code, and--ranreports "125 derived, 125 run, 0 NOT-MEASURED, 0 UNRUN". One self-test,check-plugin-teardown-shape --self-test, first exited 3 (prerequisite not met: its fixture is pinned to commit621a48760788, outside this shallow checkout). That commit was fetched (git fetch --depth=1) and the self-test re-run green (48 cases); the record carries the re-run.Acceptance notes
scripts/objectui-changeset-digest.mjsmisses an author's breaking annotation whose heading opens with a warning sign.BREAKING_BLOCK_OPENERallows a heading mark, a bullet and emphasis before the word, but no other prefix, so## ⚠️ BREAKING, …(objectui#12242's@object-ui/typeschangeset at objectui1fb1ced36243) is not counted and its console-changeset entry is not marked. The ADR-0087 disposition prompt still fired here only because a second entry in the same range was recognised; a range whose only breaking entry used this heading would get no disposition prompt and would publish without a BREAKING marker. Reported to the PM seat for filing; not fixed in this PR.Generated by Claude Code