Repository navigation
chore(console): move the objectui pin 12dc7b47c340 → 616df6598b42, past the filterableFields reader's removal (objectui#13169) - #24829
Conversation
objectui main at 616df6598b429d2b3687301a2041198928e68971, which carries cbac9d7dde (objectui#13169, the filterableFields reader's removal), so the Console Pin Gate builds the console against main again. Written by scripts/bump-objectui.sh --no-commit; the changeset's ADR-0087 disposition and its Clause-② line are the operator's answer the generator asks for. Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude <noreply@anthropic.com>
…bjectui 616df6598b42 The pin move's second half: node scripts/gen-sdui-manifest-node.mjs over the tree pnpm objectui:build left at .cache/objectui-616df6598b42 (107 components; list-view publishes requiredPermissions and addRecord), and OBJECTUI_ROOT=.cache/objectui-616df6598b42 pnpm gen:sdui-lockstep (both blobs unchanged, so no parser port is owed). Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude <noreply@anthropic.com>
📓 Docs Drift Check
What this run could not see
Coarse fallback — 3 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
Seat reviewACCEPT · The maintainer confirmed the landing in this seat's chat (「24829 同意」), after the seat recommended it: holding it keeps
This seat readies the PR and queues it with auto-merge. Generated by Claude Code |
Fixes #24749
Clause-②: no
This PR moves the console pin from
12dc7b47c340to616df6598b42: objectuimainat616df6598b429d2b3687301a2041198928e68971. That commit carriescbac9d7dde(objectstack-ai/objectui#13169, the removal of objectui's lastfilterableFieldsreader, objectui#13118). It is the newest objectuimaincommit at or aftercbac9d7ddethat was green at the move. With it, the Console Pin Gate builds the console atmainagain, after #24721 retiredListViewSchema.filterableFields(AGENTS.md, Post-Task Checklist step 4).This PR is not a release act. The Version Packages PR is not touched, and no release workflow is dispatched. No objectui source changed, and no
.github/workflows/**orscripts/build-console.shchange is in it. The F1 re-test at the new pin is not in this PR; that is the epic seat's call (#15194).Tier: not governed.
node scripts/pm/check-governed-merges.mjs --branch claude/issue-24749-console-pin-cbac9d7at5b8a7dbee5: "0 of 5 path(s) hit the register (7 surfaces govern objectstack) ... NOT governed", exit 0. Size: 5 files, +91 / -8.The red, reproduced on the base and gone at the new pin
Base. This branch was cut from
origin/main9d13b5fc83, with.objectui-sha=12dc7b47c340. The console build there, run the way the job runs it (below), fails: lock VERDICTcommand-exit 1; the client closure build exits 0, thenbash scripts/build-console.shexits 1 after 222 s. objectui's dependency build stops atFailed: @object-ui/plugin-list#build(24 of 30 tasks done). Its declaration build reports exactly two type errors, the two the diagnosis names:src/ListView.tsx(4656,58): error TS2339: Property 'length' does not exist on type '{ '[REMOVED] Key retired: runos validatefor its migration.': never; }'.src/ListView.tsx(4657,27): error TS2769: No overload matches this call.grep -c 'error TS'over the log: 2. That is the same package and step as CI's annotation on run 39384364728 (Console Pin Gate): "command (.cache/objectui-12dc7b47c340/packages/plugin-list) pnpm run build exited (1)".New pin. At this PR's head, the same build exits 0. objectui's dependency build runs 34 of 34 tasks, 0 cached.
@object-ui/plugin-listbuilds its declarations ("Declaration files built in 11295ms") and finishes ("built in 11.70s"). The console's owntsc && vite buildpasses ("8961 modules transformed").grep -c 'error TS'over the log: 0.Choosing the pin
Green, read at the move. REST
repos/objectstack-ai/objectui/commits/SHA/check-runs, every page, read by this session at 2026-10-20T07:41:25Z. The bump ran at about 07:48Z, with objectuiorigin/mainat186b78d8f347(fetched just before the bump).maincommit186b78d8f347(tip)Test (coverage),Test (coverage shard 6/8)), 6 in progress, so it is now red as well616df6598b42616df6598b42was never a push tip. The queue landed it with186b78d818 s later, so all its runs aremerge_groupruns ongh-readonly-queue/main/pr-13177-157694c7b…:CI(Build & E2E, Type Check, Test 16 shards, dist pins, Build Docs),Lint,Repo Gates,Governed Surface Guard,Changeset Presence. All 5 workflow runs concludedsuccess. Five app check suites (vercel, fly-io, claude, cloudflare-workers-and-pages, objectstack-fleet) are queued with 0 check runs.For the record, the older commits in the window at the same read:
157694c7b1861 cancelled (Repo Gates) and 6 in progress;4c36eab58b1a1 in progress;91b658a75d642 failure (Test (coverage),Test (coverage shard 6/8));5dbc6a5792873 cancelled (Lint,Repo Gates,Bundle Analysis);cbac9d7ddedb99 runs: 96 success, 3 skipped. objectuimainmoved on to961b69f97(f48a4d554,961b69f97) after the move. This PR does not re-choose.The bump.
OBJECTUI_ROOT=SCRATCH_CLONE bash scripts/bump-objectui.sh --no-commit 616df6598b429d2b3687301a2041198928e68971, exit 0. It printed "12dc7b47c340..616df6598b42 walks completely" and "objectui pin: 12dc7b47c340 → 616df6598b42 (on origin/main)". SCRATCH_CLONE is a full (non-shallow) clone of objectui from GitHub in the session scratchpad. ⛔ No shared../objectuicheckout was written. Every objectui read for the bump, the manifest and the lockstep record came from that scratch clone or from the build trees made from it. The shared checkout is shallow, so it could not walk the range.Ancestry, in that clone (
--is-shallow-repositoryfalse), each against616df6598b42:cbac9d7ddeis an ancestor: exit 0;0b36ffa8cc5c(objectui#13132, the eleven stale live specs): exit 0;fe11eb12e578(objectui#13042, thereferenceViatype half in$select): exit 0;12dc7b47c340: exit 0;616df6598b42an ancestor of12dc7b47c340): exit 1.Range: 32 non-merge commits.
objectui's own objectstack pin did not move in this range:
.objectstack-sha=f4755a68a797at both ends.What the range brings in. These are the 32 objectui PRs
client.analytics.query/meta/explainandautomation.triggerhand callers the RAW dispatcher envelope while every sibling unwraps it — one SDK, two calling conventions #13079 through fix(plugin-security): report the two swallowedtryUpdaterefusals outside the catalog seed #13177. Among them are the ones triage named:cbac9d7dd, objectui#13118);d05f33b2e, the CSV-declared saved mapping, objectui#13156);427e59c9e, the unnamed RLS policy, objectui#13113);a57d80afe, an ungrouped list asks fornameField, objectui#13116);96036bdd9, the backfill checkbox wait, objectui#13120).The console build path, end to end
Each step is run as
ci.yml'sconsole-pinjob runs it, read off the job and not edited. The heavy steps ran underscripts/pm/os-verify-lock.sh, and each exit code was captured before any pipe. This is a shared box, so wall-clock figures are shared-box readings. Deviations from the CI job:--concurrency=2for the client closure and for objectui's dependency build (OBJECTUI_DEPS_BUILD_CMD), for the container's memory budget;NODE_OPTIONS=--max-old-space-size=4096;OBJECTUI_ROOTnames the full scratch clone, where CI shallow-clones;CACHE_HITis empty.Final run, at this PR's head
5b8a7dbee5. That is the branch merged withorigin/main6b222464ce, which brought spec changes into the packed packages. The build tree.cache/objectui-616df6598b42andpackages/console/distwere deleted first.pnpm install --frozen-lockfilepnpm exec turbo run build --filter=@objectstack/client... --concurrency=2(36/36), thenbash scripts/build-console.sh(485 s). Lock VERDICTcommand-exit 0, held 790 sCACHE_HITempty: "Console dist present (65580 KB, via scripts/build-console.sh) from objectui@616df6598b42"pnpm check:console-sha: "Console dist matches the objectui pin (objectui@616df6598b42)."pnpm check:console-injection --require-stamp: self-test 100 assertions, then "@objectstack/spec: the dist carries this tree's copy, and not the published one."node scripts/gen-sdui-manifest-node.mjs: 107 components, sha256d1fde278ffd6…. The committed pair is byte-identical (git status --porcelain: 0 lines)OBJECTUI_ROOT=.cache/objectui-616df6598b42 node scripts/check-sdui-manifest.mjs: present, intact, recorded at the live pin616df6598b42,@object-ui 17.7.0pnpm check:sdui-lockstep: byte-identical to objectui@616df6598b42 over 214 grammar lines, 25 diagnostic codes, thenot-a-containerpredicatebuild-console.sh's.objectstack-shabranch ran, in this order (build log):tsc && vite build: "8961 modules transformed.";assets/*.jsread);All seven
@objectstack/*packages objectui installs are this tree's, read off the build tree after the install at5b8a7dbee5:node_modules/.cache/objectstack/.stamp.json:source: external,rootthis worktree,sha=5b8a7dbee5c8…,dirty: false, all seven at18.0.0-next.5.node_modules/.pnpm: 7@objectstackentries, all of the@objectstack+NAME@file+.objectstack-pin+NAME…form.dist/againstpackages/NAME/dist/:diff -rqexit 0 for all seven (spec, core, types, client, formula, sdui-parser, lint). Control: the installed spec'sdistagainstpackages/core/distexits 1.pnpm-lock.yamlis byte-identical to the one committed at616df6598b42(cmpexit 0). It has 0 registry-resolved@objectstack/*keys and 14file:keys. Control for the pattern: objectui's lockfile at0707b4ae3712counts 14 registry-resolved keys.The in-build injection assertion is NOT vacuous at this pin. At
616df6598b42it found a witness on each side:So no independent measurement is owed. A cross-check anyway,
grep -rlFover the bundle'sassets/*.js, with counts of files in this tree'spackages/spec/distand in thef4755a68a797reference spec'sdistin brackets:Earlier runs:
1ad970cafe(the bump commit, before the manifest regeneration and the merge):build-console.shexit 0 after 465 s, lock VERDICT 0, the same branch order, "dist ready (65580 KB)", "16 of 17 injected-only descriptions are in the bundle". It warned "Shipped the tracked sdui.manifest.json, but its record names objectui@12dc7b47c340", as expected before the regeneration. That run's build tree produced the committed manifest pair and lockstep record.origin/mainmoved toc56115bf96(fix(plugin-audit,plugin-auth): a refused sign-in and an account lockout each write an audit row #24797, ci: an opt-in label lane runs the 18.x upgrade harness on a line PR's merge preview (step 0 wiring) #24554, fix(dogfood): the audit-capability fixture's grant writes carry their holder's organization #24805). None of those three touches the seven packed packages,.objectui-sha, the SDUI files or the console build scripts (git diff --name-onlyfilter: 0 paths). So the console readings above hold for the inputs at currentmain.The second half: manifest and lockstep record
node scripts/gen-sdui-manifest-node.mjs, exit 0: 107 components, sha256d1fde278ffd6…. It re-recordedscripts/sdui-manifest.record.jsonat the pin (built-tree,.cache/objectui-616df6598b42/apps/console,@object-ui/core17.7.0). Re-run at5b8a7dbee5: exit 0, byte-identical.sdui.manifest.jsonkeeps 107 components, none added or removed. One component changes its inputs:list-viewgainsrequiredPermissions(objectuib0176214a, feat(plugin-list): page list-view honours requiredPermissions objectui#13087) andaddRecord(objectuid11174ad1, feat(app-shell,plugin-list): a page list-view node's addRecord opens the object list's create; publish list-view.addRecord objectui#13098). No input is removed. The old manifest namesfilterableFieldsnowhere (0 hits), so the retirement moves nothing here.packages/sdui-parser/objectui-lockstep.json:node scripts/check-sdui-lockstep.mjsexit 1 ([pin-moved]);OBJECTUI_ROOT=.cache/objectui-616df6598b42 pnpm gen:sdui-lockstepexit 0;pnpm check:sdui-lockstepexit 0.objectui's
packages/sdui-parser/srcis unchanged over the range (git diff --stat: empty). Both blobs are unchanged (0131f27cf86d,76c18fb95d1f), so no parser port is owed.The console changeset
.changeset/console-616df6598b42.mdwas written byscripts/bump-objectui.sh --no-commit, under the generator's own name. Its list is the generator's, untouched.@objectstack/consoleminor: the HIGHEST level objectui declared over the range. Counts: 30 releasing changesets across 32 non-merge commits, 2 annotated breaking, 1 release-nothing, and 1 commit without a changeset (0b36ffa8c, listed by subject in the changeset).not-required (no-migration-prescription)against this tree, withClause-②: nobeside it, as in PR chore(console): move the objectui pin 4016370af3c9 → 12dc7b47c340, regime C for sharing rules (objectui#13050) #24660. That is the one hand-written part of the five files:cbac9d7dd(objectui#13118) removes thefilterableFieldsreader, and@object-ui/typesgains a?: nevertombstone onNamedListView. The spec half is this tree's own and already landed: conversionview-list-filterable-fields-removedinpackages/spec/src/conversions/registry.ts(feat(spec)!: retire the list view's filterableFields — declared as the userFilters.fields shorthand, read as a Filter-panel whitelist; no per-view whitelist replaces it #24721).df7156808(objectui#13075) typesNavigationItemSchema.visibleby reference to this tree'sEvaluatedExpressionInputSchema, which this tree's spec already uses for a navigation entry'svisible(packages/spec/src/ui/app.zod.ts).@object-ui/*package:git grepfor imports finds 0, and forpackage.jsondependencies 0.node scripts/check-adr-0087-registration.mjs --base origin/main, exit 0: "1 declared-breaking changeset(s), each carrying an ADR-0087 disposition".Gates
Every gate below ran at this PR's head
5b8a7dbee5, after a workspace build there. That build wasturbo run build --filter=!@objectstack/docs --concurrency=2: 76/76, lock VERDICTcommand-exit 0.packages/runtime/.objectstackwas removed before the gates ran. Each exit code was captured before any pipe.node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands, with no paths, derived 73 commands. It took 5 paths against merge base6b222464c, three-dot. All 73 exited 0.--ranreconciliation overCOMMAND :: exit Nlines: "Run reconciliation — 73 derived, 73 run, 0 NOT-MEASURED, 0 UNRUN", then "73 derived famil(ies) accounted for — 73 run, 0 NOT-MEASURED (a DERIVED zero — all 73 recorded an exit code and none of them is 3)". Exit 0.check-adr-0087-registration --base origin/main(the exemption notice names this changeset);check-empty-changeset --base origin/main;check-changeset-no-major --base origin/main;check-sdui-manifest.mjsand its--self-test;pnpm check:sdui-lockstep,pnpm check:console-shaandpnpm check:console-injection;pnpm check:objectui-changeset,pnpm check:page-declaration-shapeandpnpm check:nul-bytes;pnpm check:pm-changeset-deadline-census.pnpm check:objectui-bump, exit 0 ("20 assertions across 5 cases").test/typecheckis owed.test:repois CI's (Test Core).CI
ci.yml's two speeds apply: theconsole-pinjob'sif:excludespull_requestandmerge_group. So the pre-merge full battery is NOT MEASURED, and the local run above is the pre-merge reading.main's first full-battery run after the merge. This PR changes.objectui-sha, so the console-dist cache key misses, and that run builds the console fresh at616df6598b42. The dispatching seat reads it. If it is red, it is amainred this card owns.Acceptance notes
Observations, not filed:
console-616df6598b42.md), where PR chore(console): move the objectui pin 4016370af3c9 → 12dc7b47c340, regime C for sharing rules (objectui#13050) #24660 renamed its changeset to the card's prefix. No gate reads the name.0b36ffa8c(objectui#13132) is in this pin. Thedomain:uipointer6284006658on qa(checklist): 18.0 release sweep anchor at 5b14b7f3 — re-point 5 red-row clauses + the wave's checklist-accuracy findings, fixture gaps and not-run handover (18 records) #24579 says the checklist'sautomated.stalemarkers can drop once the pin passes it.docs/qa/**is not touched here.main's tip at the move,186b78d8f347, went red after the move (Test (coverage),Test (coverage shard 6/8)), and so did91b658a75d64earlier, with the same two runs. That is objectui's to read; nothing here depends on it.Generated by Claude Code