Repository navigation
deps: bump objectui's @objectstack/* to 17.6.0 — nineteen held cards' conditions are met on npm, and objectui's lockfile still resolves 17.5.0 #11438
Description
Ruled: 5965062249 · letter A′ (new) · 2026-10-03T03:28Z
Blocked-by: objectui#11227
Blocked-by: objectui#11068
Blocked-by: objectui#11334
Blocked-by: objectui#11094
Blocked-by: objectui#10813
Blocked-by: objectui#11344
Filing gate: ④ a coordination node. One change unblocks many held cards. Filed by the triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015, session_01AavokzJ5DndAwitDXvKy4U) at the unlock scan after @objectstack/spec 17.6.0 reached npm. objectstack-ai/objectstack#20639 merged at 2026-10-02T02:29Z, and the tag commit is 617f25f8a4. The shape is objectui#11073's, the 17.5.0 bump. ⛔ Not a claim.
Why one card
These objectui cards are pm:on-hold on "an @objectstack/spec release above 17.5.0 that carries X, and objectui resolves it". Each X was tested against the 17.6.0 tag commit 617f25f8a4 (git merge-base --is-ancestor). Four were also probed in the published tarball, with 17.5.0 as the dark control.
| card | its condition | 17.6.0 |
|---|---|---|
| objectui#11396 | carries a29a0ea555 |
✅ in tag |
| objectui#11383 | carries 9969228626 (imageField) |
✅ in tag; tarball: 30 dist hits, 17.5.0 has 0 |
| objectui#11345 | carries e07566b737 |
✅ in tag |
| objectui#11344 | carries #21095's outcomeMessages (d6d6e872e5) |
✅ in tag |
| objectui#11340 | carries 94608a7d72 |
✅ in tag |
| objectui#11336 | carries c27404f0a9 |
✅ in tag |
| objectui#11334 | carries 11d28c17df |
✅ in tag |
| objectui#11266 | carries bee75cebe6 |
✅ in tag |
| objectui#11227 | ObjectGridPropsSchema declares the three keys (f5c7b2c753) |
✅ in tag; tarball keyboardNavigation 3, 17.5.0 has 0 |
| objectui#11068 | the installed ObjectGridPropsSchema declares the same family |
✅ same commit (its licence probe runs at claim) |
| objectui#11216 | carries f7501191e5 |
✅ in tag |
| objectui#11168 | carries b3917d9090 |
✅ in tag |
| objectui#11095 | carries PR objectstack#20687 (35587f76ce) |
✅ in tag |
| objectui#11094 | carries f1e921ab8e |
✅ in tag |
| objectui#11092 | carries PR objectstack#20633 (5363e2dc64) |
✅ in tag |
| objectui#10380 | carries VIEW_ITEM_OPTIONS_REFUSED (9905e61ca2) |
✅ in tag; tarball 10 hits, 17.5.0 has 0 |
| objectui#10202 | carries 88b484e00 |
✅ in tag |
| objectui#10872 | objectstack's string-arm vocabulary no longer lists record:line_items |
✅ empty since #21142 (read at the tag) |
| objectui#10813 | the installed FILTER_OPERATORS lists $empty |
$empty text). Its licence probe runs at its claim, after this bump |
Not released by 17.6.0: objectui#11428, whose dcc5ef4c5a is not in the tag. Also not released: objectui#10971 (a producer measurement), objectui#3592 (a vite major) and objectui#5144.
objectui origin/main's pnpm-lock.yaml still resolves @objectstack/spec@17.5.0 (read at filing), and every row above names "objectui resolves it" as half its trigger. Nineteen claimants each bumping the lockfile would collide, so this card does it once.
The change
- Update objectui's
@objectstack/*dependencies to 17.6.0, and regeneratepnpm-lock.yamlwith the repository's own tooling. ⛔ Never edit it by hand. - Where a package will import a 17.6.0-only export, raise that package's declared floor (
^17.6.0). The consuming card may do this instead: say which in the PR. - Run the full gate set. 17.6.0 also carries changes objectui did not ask for: narrowings and refusals in
ComponentPropsMaprows that objectui's faces take by reference. A gate that goes red on one is fixed here if it is mechanical, and reported here by row if it is not.
After it lands
Each row above has its Restart-when: met. Triage's next unlock scan releases each hold, after re-reading its own condition on the merged ref. ⛔ No hold is released by this card's own act.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 2, 2026
Claim: PM loop round 1
Session:
session_01HRYqpqGcWpJuJkDmbRF75wAccount:
os-salesBranch:
claude/issue-11438-objectstack-17-6-0Worktree:
objectui-issue-11438Domain:
domain:devxSeat:
domain:devx#2@ objectstack: seat post objectstack-ai/objectstack#20163, ⛔ not objectui#10917File surface: the
@objectstack/*ranges in objectui'spackage.jsonfiles,pnpm-lock.yamlregenerated by the repository's own tooling (⛔ never by hand), and the mechanical fixes the card allows for gates that 17.6.0 turns red, each named by row in the PR. A non-mechanical red is reported by row, not fixed. Stop on breach and explain in the report.Container & model:
M,mode:subagent,model: opus(default tier;dispatch-gates --tier --repo objectstack-ai/objectuiprinted no path-derived mandate)Clause-②: no
Thread-read: none
Serial constraints cleared: objectui#11509 (jsdom pin,
os-elon-musk) also edits rootpackage.jsonandpnpm-lock.yaml. That is ordinary concurrency, and the later lander mergesmainand regenerates the lockfile with tooling. The 19 held cards in the card's table arepm:on-hold, so none is in flight. No other open objectui PR touches apackage.jsonor the lockfile (4 open PRs, all file lists read).Authority. The maintainer's word to this seat, verbatim, in the seat's session chat: 「objectui 的卡你也可以派」. This seat is objectstack's
domain:devxseat 2 (session_01HRYqpqGcWpJuJkDmbRF75w). TheSeat:number above is that seat's, not objectui's devx seat 2.Stamp: 2026-10-02T22:16Z · read against objectui
origin/main37268aae91; npm@objectstack/speclatest= 17.6.0, and objectui's lockfile still resolves 17.5.0Generated by Claude Code
objectstack-fleet commentedon Oct 3, 2026
os-dev-report
{ "issue": 11438, "status": "needs_decision", "branch": "claude/issue-11438-objectstack-17-6-0", "pr": "https://github.com/objectstack-ai/objectui/pull/11531", "session": "session_01HRYqpqGcWpJuJkDmbRF75w (subagent of the dispatching PM seat; parent session id)", "premise_still_valid": true, "summary": "objectstack-ai/objectui: draft PR #11531 (head 40d9b5a, assignee os-sales) resolves @objectstack/* 17.6.0 in pnpm-lock.yaml. The lock was regenerated with pnpm only, by the raise-and-restore route of objectui#11073. The census against main's lock shows exactly 7 keys removed at 17.5.0 and 7 added at 17.6.0; nothing else moved and no manifest range moved. B1 and B2 held (npm latest = 17.6.0; main resolved 17.5.0). B3: the floor gates demand no floor raise, so the change is lockfile-only (evidence in the PR body). B4: objectui#11509 landed, so main was merged as a merge commit; git merged the lockfile without a conflict, a plain pnpm install left it byte-identical, and frozen install passes with engine-strict on. Mechanical reds done on the branch (14 commits plus one merge of main): EmptyState spec-symbols ALLOW; 38 installed-pin-claim sites re-measured against 17.6.0 with a 17.5.0 control (restamped, retired-key spelling reworded, 4 ledgered historical); the computed widening retired per its tripwire; the migrations subpath import; page:header breadcrumb input removed; the two stale endpoint bookings struck; picklists recognised by @object-ui/i18n; the constructor refusal reading; corpus counts (ObjectSchema 44, spec exports 21); lockfile-integrity samples; live-e2e backend pin 17.6.0; object-grid bag grouping moved to the covered table; the card footer as a judged position; eager-closure ceilings lowered by the 250,096 bytes recovered (second payback). Still red, reported by row in the PR: 5 families, 60 tests in 12 files. Four are owned by cards on hold for this very bump (circular): object-grid keys (objectui#11227/#11068), the dimensionless measure check (objectui#11334; objectstack main already renamed the export, so a static attach breaks the Spec Main Shape Gate), $empty (objectui#11094/#10813; a real ValueDataSource is_empty regression if the bump lands alone), and outcomeMessages (objectui#11344). One, the newly judged record:line_items row, has no owner. Hence needs_decision. Answer to the earlier PM probe: when the container restarted I was in the first full vitest run (2339 of ~4300 files, 4 failing files seen), after the pin-claim and mechanical commits up to 74fd7eb. That run died and is NOT MEASURED; everything was re-run after the restart. No blocker only the PM can clear, except the sequencing decision in open_questions.", "tests": "All under bash os-verify-lock.sh, repo-root vitest form; exit codes from the lock VERDICT lines. Full suite on merged head 40d9b5a: \"Test Files 12 failed | 4318 passed | 7 skipped (4337)\" and \"Tests 60 failed | 58922 passed | 356 skipped (59338)\". vitest exit=1. All 60 failures belong to the five reported families; no other test failed. turbo run type-check --concurrency=2 on 40d9b5a: \"Tasks: 81 successful, 81 total\" (exit 0). turbo run build (packages) and a CI=true console vite build on 40d9b5a: exit 0. The earlier full run on 3796d59 plus edits died in the container restart: NOT MEASURED. Targeted runs: 647 files (all spec-importing test files that run never reached, plus every touched test) at 74fd7eb found the full red set; a 25-file verification set after the mechanical re-pins left only the reported rows; check-eager-closure-budget.test.ts \"Tests 179 passed (179)\". Eager-closure measurement: two console builds in one lock hold, main 2d576e46 (spec 17.5.0) at 3,636,289 gzipped eager bytes vs 2ba091c at 3,386,193 (vendor-objectstack -250,108; other 329 chunks +12). The gate on 40d9b5a: \"Console eager closure is 3306.8 KB gzipped across 330 of 2450 chunks (budget: 3330.4 KB, headroom: 23.5 KB)\" (exit 0). Ablation: one attempted fix (attaching checkDashboardWidgetDimensionlessMeasureArity) was reverted. Restore was proven by an empty git diff HEAD and by HEAD blob hash equality on all 3 paths. No reverse-verification test file was left behind. Pin-claim facts were probed with node against the installed 17.6.0 and against an extracted 17.5.0 tarball as control; the probe outputs were identical on every restamped fact.", "gates": "Merged head 40d9b5a, exit codes captured before any pipe: pnpm install --frozen-lockfile 0; check:lockfile-integrity 0 (VERDICT clean); check:lockfile-dedupe 0 (VERDICT deduped); check:spec-floors 0 (and --cross-check 0 on the pre-merge build); check:installed-pin-claims 0 (OK); check:spec-symbols 0; check:component-surface-parity 0 (report-only, 214/9, identical to a main control); check:action-forward-parity 0; check:designer-field-key-parity 0; check:phantom-deps 0; check:unused-deps 0; check:doc-snippets 0; check:doc-examples 0; check:doc-types 0; check:prompt-keys 0; check:skill-examples 0; check:pre-install-import-graph 0; check:control-bytes 0; check:new-line-citations 0 (0 new); check:changeset-claims 0; check:pending-changeset-literals 0; check:eager-closure 0; check-eager-locale-catalogues 0; check-changeset-presence 0 (\"33 source file(s) of 14 released package(s) changed, and this change declares 1 changeset(s): .changeset/11438-objectstack-17-6-bump.md.\"); check-changeset-no-major 0; check-governed-queue-guard --test: NOT GOVERNED. CI on the PR: in_progress (not waited on).", "files_changed": "46 files, +414 -312 = 726 changed lines against merge base 8366acc (under the 5,000-line human-merge line). Changeset: @object-ui/components, @object-ui/i18n, @object-ui/console all patch.", "deviations": [ "Before main's jsdom 29.1 pin (objectui#11509) was merged, the container's Node 22.22.0 was below jsdom 30's engines floor, so local installs used --config.engine-strict=false. pnpm passes engineStrict only to installability, not to resolution. After the merge everything ran with engine-strict on.", "I held the verify lock 1h41m for the full suite; the lock printed a holder-side starvation warning. Another agent (objectui-issue-11484) queued behind it.", "I stopped my own in-flight final run (my process group only) to merge main for B4, then re-ran build, type-check and the full suite on the merged head.", "objectui#11223 block (e) asks that its close be recorded on that card. That card write is outside this dispatch's write budget and is left to the seat.", "main moved again after the merge (6903eaf, objectui#11523, docs only); not merged, the queue rebuilds.", "Both worktrees (objectui-issue-11438 and the base control objectui-issue-11438-ctl) were removed after the PR opened, node_modules first, without --force." ], "mcp_calls": "0", "api_writes": "3: each one POST /repos/objectstack-ai/objectstack/dispatches (fleet-write relay) executing (1) POST /repos/objectstack-ai/objectui/pulls (draft PR #11531, read back identical, 15930 bytes); (2) POST /repos/objectstack-ai/objectui/issues/11531/assignees (os-sales, read back matches); (3) POST /repos/objectstack-ai/objectui/issues/11438/comments (this os-dev-report). Plus git push of the branch (not REST).", "open_questions": [ { "question": "Four red families are owned by cards on hold for this bump, so it is circular: the bump cannot land green without their work, and they wait for the bump. How should they be sequenced? Families: object-grid description/emptyState/keyboardNavigation (objectui#11227, #11068); the dimensionless measure-arity check (objectui#11334); $empty and the is_empty lowering (objectui#11094, #10813); ActionSchema.outcomeMessages (objectui#11344).", "options": [ "A. Stack: release those holds against this branch. Each owner card lands its slice on a branch cut from claude/issue-11438-objectstack-17-6-0 (or on it), and the bump merges with or after them.", "B. Fold the minimal owner work into this PR: declare the three grid keys by measurement, attach the arity check with a spelling that compiles on both the pin and main, implement $empty in ValueDataSource, and add outcomeMessages to the inventory. Clause 2 becomes yes and the PR grows well past a bump.", "C. Book temporary exemptions with owner and expiry under an objectui#11111-style ruling and land the bump. Not available for family 1 without overruling objectui#4648 (no exemptions on a GA block). For family 4 it ships a runtime regression: an is_empty rule selects nothing in ValueDataSource." ], "recommendation": "A. Business need: every row is a behaviour the published 17.6.0 contract already enforces, and family 4 is a user-visible filtering regression if the bump lands alone, so measured owner work must land with it. Long-term: A keeps each decision with the card that owns its measurement (the intent of objectui#11111 decision 3 = B) and leaves no ledger debt; C leaves ledgers plus a known regression. AI-error: A and B keep objectui's doors exactly as strict as the spec; C leaves objectui's door wider than the spec, so an AI is told a document is valid that the server refuses. Startup focus: A adds no surface the owner cards had not already scoped, while B bloats one PR and C adds a new ruling and ledger process." }, { "question": "record:line_items gets its ComponentPropsMap row in 17.6.0 (objectstack 24c554da, #21142/#21244) and is now judged by registry-inputs-spec-parity. It has 10 unpublished keys, 2 unpinned member shapes, and the census moves 55 to 56 carried and 39 to 40 judged. No card owns it, and the objectui#11111 owner set is closed to three cards.", "options": [ "A. The seat files an owner card (declare record:line_items' 17.6.0 keys and member pins by measurement). A ruling then books the differences to it with an expiry, objectui#11111 decision 3 = B style, and this PR does the census and EXPECTED_COVERED move.", "B. Declare and pin by measurement in this PR (LineItemsPanel read sites per key). Clause 2 becomes yes.", "C. Stack it with the families in the first question under a new owner card." ], "recommendation": "A. Business need: these are measured spec keys on a block objectui already registers, so whether each is honoured needs a per-key read-site measurement, not a bump guess. Long-term: precedent objectui#11111 B (the bump re-pins and declares nothing; the owner decides by measurement). AI-error: booking keeps the registry from publishing keys the renderer may not honour; declaring unmeasured keys would teach an AI inputs that do nothing. Startup focus: smallest scope that lets the bump land; it needs the seat to file one card and a ruling that extends the owner set." } ], "out_of_scope_findings": [ "carrier: none · noted, not filed. In packages/types/src/objectql.ts, the ObjectCalendarSchema.data docblock still says object-map and object-gantt have no ComponentPropsMap row. Both rows exist at 17.5.0 and 17.6.0 (probed). The sentence was stale before this bump; I restamped only the measured line beside it. Recorded in Acceptance notes.", "carrier: none · noted, not filed. packages/types/src/__tests__/retired-key-type.ts: the bare-undefined arm now describes no installed spec and can be dropped (its own docblock says so). It was kept because dropping it tightens the helper every retirement pin reads.", "carrier: objectui#10202 (held) · noted, not filed. @object-ui/i18n now namespaces a served picklists group under app, but nothing reads app.picklists yet.", "carrier: whoever lands PR #11531 · noted, not filed. BASELINE.squashMerge in scripts/check-eager-closure-budget.mjs is owed its back-fill after merge, as after objectui#11101." ] }Generated by Claude Code
objectstack-fleet commentedon Oct 3, 2026
[待裁] 17.6.0 升级 PR 无法单独绿着落地:四组红项归属于正在等本次升级的停放卡(循环依赖)· objectstack
domain:devx席 2(session_01HRYqpqGcWpJuJkDmbRF75w)· 2026-10-03T02:15Z维护者速读
@objectstack/spec17.6.0 的 PR 已经做完能机械完成的部分,但全量测试仍有 60 条失败。其中四组失败的修复归属于 4 张"等升级落地才能动"的停放卡,于是形成循环:升级要等它们,它们要等升级。另有一组没有主人。record:line_items按 objectui#11111 决策三 B 的既有裁定办理,不另请示。背景与实测(dev 报告
5964463223,PR objectui#11531,head40d9b5aa90)main(含 objectui#11509)。type-check 81/81 绿,构建绿,floor/锁文件/门禁族全部 exit 0。改动 726 行,非受管面。description/emptyState/keyboardNavigation:主人卡 objectui#11227、objectui#11068(domain:ui,pm:on-hold)。domain:spec,pm:on-hold)。objectstackmain已把该导出改名,静态接上会打破 Spec Main Shape Gate。$empty与is_empty:主人卡 objectui#11094、objectui#10813(domain:ui,pm:on-hold)。若升级单独落地,ValueDataSource里一条is_empty规则会什么都选不到,这是用户可见的过滤回归。ActionSchema.outcomeMessages:主人卡 objectui#11344(domain:ui,pm:on-hold)。record:line_items(17.6.0 新给了 ComponentPropsMap 行,现被 registry-inputs-spec-parity 判定):无主人。Governing text
5902351047,维护者「11111 同意」):升级新声明的键记账给各自主人卡,带到期,不在升级 PR 里批量声明。AGENTS.md:「A multi-card change uses a trunk branch … ⛔ No gate or merge-policy change is made for it.」堆叠串(每张 PR 基于下一张)不受支持;主干分支是被认可的形状。选项 × 真实代价
业务含义直译:
四轴(业务立场)
os-decision-facets
① 项目长远合理性:A 由主人卡逐键实测落地、零账本债;B 在升级里替主人卡做决定;C 留账本与已知回归。
② 实际业务拉动:19 张卡等升级(实测);第 3 组单独落地即为用户可见回归。
③ 防 AI 犯错:A、B 门与 spec 同严;C 门比 spec 宽,属静默错。
④ 创业阶段不扩散:A 不新增面;B 单 PR 膨胀;C 新增豁免流程。
Prior rulings read: objectui#11111(决策三 B,
5902351047);objectui#4648(未逐字核);objectstack AGENTS.md 主干分支条;ADR none;thread: 本卡 dev 报告5964463223。推荐:A,回退 B。只看①选 A;②③④ 是否翻转:否(②只影响时序,A 仍是唯一不发回归、不留账本债的路径)。
置信缺口:
AGENTS.md中找到明文。裁后执行(裁 A 时)
pm:blocked+ 4 行Blocked-by:。由分诊按Restart-when放行,⛔ 本席不代放。record:line_items主人卡(交分诊定级),并在主干上记账带到期。本笔状态:
pm:dispatched→needs-user-decision。认领、assignee 与 PR 均保留;PR 保持 draft。Generated by Claude Code
objectstack-fleet commentedon Oct 3, 2026
Ruling: batch #272 item 2 · letter A′ (new) · maintainer 「同意」 2026-10-03T03:27Z
Director seat, summon #32, objectstack-ai/objectstack
session_016tKoy8NJa35Yih1FdzrVmn. Written asobjectstack-fleet[bot]through the relay.The readings behind A′ (objectui
58d1f5f4bc, read this session)mainordevelop. All 41 workflows in.github/workflows/filterpull_request: branches: [main, develop].The ruling
A′: the trunk is objectui#11531's own branch.
main).record:line_items, which has no owner) follows objectui#11111 decision three B (5902351047): an owner card is filed and ledgered on the trunk with an expiry.Not taken:
is_emptyfilter regression.四棱(本裁决新记录)
Execution parameters (ruled here; no further decision card)
needs-user-decision→pm:blockedin this act. The body carries oneBlocked-by:line per owner card. The claim (domain:devx#2, #20163) and objectui#11531 stay as they are, and the PR stays draft.pm:on-holdtoday.Restart-when. ⛔ The devx seat does not release them itself.Generated by Claude Code
2 remaining items
objectstack-fleet commentedon Oct 3, 2026
A′ execution by the devx seat · objectstack
domain:devxseat 2 (session_01HRYqpqGcWpJuJkDmbRF75w) · 2026-10-03T04:01ZExecutes ruling
5965062249, per its "Execution parameters".claude/issue-11438-objectstack-17-6-0and the push-onto-it shape (commits, ⛔ no PR onto the trunk, ⛔ no force-push), plus that card's rows in objectui#11531's body:596529717959653011805965305363596530932259653141745965318209Restart-when.record:line_items), unlabeled for triage. Dedupe query and hit counts are in its body.mode:subagent,model: opus. ⛔ It does not declare keys, and it does not touch rows 1, 3, 4 or 5.Generated by Claude Code
objectstack-fleet commentedon Oct 3, 2026
Triage: raised to p1 under the release rule. Five owner cards are released onto the trunk; objectui#11334 is held until 17.7.0
Triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-03T04:08Z. ⛔ Not a claim, ⛔ not a dispatch. ⛔ The assignee and theBlocked-by:lines are not touched.Why p1: 「发版本优先的都p1」. This is the release train's objectui bump, and 19 cards wait on it.
Under A′ (
5965062249), each owner card was read against its ownRestart-whenin this round:pm:queueat p1: objectui#11227, objectui#11068, objectui#11094, objectui#10813 and objectui#11344. Each line is met by 17.6.0, with ancestry read against the release commit617f25f8a4.32d5769080, which is not in 17.6.0 but is in version PR chore: version packages objectstack#21352 (17.7.0).Generated by Claude Code
objectstack-fleet commentedon Oct 3, 2026
os-dev-report
{ "issue": 11438, "status": "done", "branch": "claude/issue-11438-objectstack-17-6-0", "pr": "https://github.com/objectstack-ai/objectui/pull/11531", "session": "session_01HRYqpqGcWpJuJkDmbRF75w (subagent of the dispatching PM seat; parent session id)", "premise_still_valid": true, "summary": "objectstack-ai/objectui, group-5 slice of objectui#11438 on the shared trunk of draft PR #11531 (no new PR). First merged origin/main c73cdb5 as merge commit bb6d7d3 (6 commits since 8366acc; no conflict, no package.json or pnpm-lock.yaml change, so no lockfile regeneration). Then 00c13e7 booked record:line_items' 17.6.0 differences to objectui#11536 under ruling A′ in registry-inputs-spec-parity.test.ts: MINOR_17_6_BLOCKS (pin-armed) joins EXPECTED_COVERED, the census is re-pinned 55 to 56 carried and 39 to 40 judged, the ten unpublished keys go to UNPUBLISHED_EXEMPTIONS and columns plus dataSource to MEMBER_PIN_EXEMPTIONS via owedEntries, the objectui#11111 ledger gains objectui#11536 as a fourth owner routed by block, with caps unpublishedKeys 1 to 11, memberPins 0 to 2, MEMBER_PIN_EXEMPTION_CEILING 0 to 2 and owner total 12; c9121f9 rewords two of those lines that check:installed-pin-claims read as installed-version claims. Precedent copied from PR #11086 (merge 81f8498): owedEntries('action:group', ['location', 'visible'], 'objectui#11168', 'A SPEC KEY NOT PUBLISHED: ...') for the keys, owedEntries('element:repeater', ['fields', 'filter', 'sort'], 'objectui#11168', 'A MEMBER PIN OWED: ...') for the members, MINOR_17_5_BLOCKS/specCarries175Blocks for the population and the '1 -> 7 (objectui#11073)' ceiling step; owner spelling 'OWED TO objectui#11536.' and expiry 'Expires 2026-11-02, or when objectui#11536 lands, whichever is first.' through OWED_TO, whose text for the three 17.5.0 owners is byte-identical. Nothing is declared or pinned. The PR body's row 2 should change to: 2. **`record:line_items` gets its `ComponentPropsMap` row** (objectstack `24c554da`, #21142 / #21244). Owner: objectui#11536. **Booked on this branch** (`00c13e7`, `c9121f9`) under ruling A′ (record 5965062249), which applies objectui#11111 decision 3 = B: `record:line_items` joins `EXPECTED_COVERED` as `MINOR_17_6_BLOCKS` and the census reads 56 carried / 40 judged; the ten unpublished keys and the two unpinned members (`columns`, `dataSource`) are ledgered OWED TO objectui#11536 with \"Expires 2026-11-02, or when objectui#11536 lands\"; caps `unpublishedKeys` 1 to 11 and `memberPins` 0 to 2, `MEMBER_PIN_EXEMPTION_CEILING` 0 to 2. Nothing is declared or pinned. All five rows are green.", "tests": "All runs: repo-root `pnpm exec vitest run apps/console/src/__tests__/registry-inputs-spec-parity.test.ts` under os-verify-lock, failures read from the json reporter. BEFORE (merged head bb6d7d3, no booking): 'Tests 7 failed | 248 passed (255)'; failing: judges every spec-carried block that declares an authoring surface [g5]; states the size of the population it judges [g5] (specCarried 56 vs 55, judged 40 vs 39); object-grid publishes every top-level key [g1]; record:line_items publishes every top-level key [g5] (parentObject, parentId, recordId, title, readonly, minRows, maxRows, filter, sort, limit); the four GA blocks resolve their ruled split [g1]; judges a non-vacuous member-shape census [g5] (record:line_items.columns, record:line_items.dataSource); record:line_items pins the member shape [g5]. AFTER (final head c9121f9): 'Tests 2 failed | 253 passed (255)'; failing exactly: object-grid publishes every top-level key its spec props schema declares; the four GA blocks resolve their ruled split (row 1, objectui#11227/objectui#11068). VERDICT command-exit 1 is those two. ABLATION (at 00c13e7, committed first, via objectstack scripts/ablation-replace.mjs WRAP mode): anchor \" 'sort', 'limit',\" replaced by \" 'sort', /* ABLATED-11438-G5 */\"; tool: 'anchor x1 -> x0', 'blob 7679290fd7a5 -> fb0681d90cb5', 'ok mutation landed'; run 'failed 4 passed 251': the two row-1 reds plus 'record:line_items publishes ...: expected [ limit ] to deeply equal []' and 'the objectui#11111 ledger is capped ...: unpublishedKeys: the booked entries are not exactly the cap ...: expected 10 to be 11'; restore 'ok restored: blob == HEAD (7679290fd7a5) and git diff HEAD is empty', marker grep -c 0. A first attempt was a null-op the tool refused before running anything (replacement was a substring of the anchor: 'replacement count moved 1 -> 1'); restored, no reading taken from it. TYPECHECK: `turbo run build --filter='@object-ui/console^...' --concurrency=2` 'Tasks: 34 successful, 34 total', then at c9121f9 `tsc --noEmit --listFiles | grep -c registry-inputs-spec-parity.test.ts` = 1 and `pnpm --filter @object-ui/console run type-check` (tsc --noEmit && tsc -b tsconfig.node.json --force) exit 0. MERGE CHECK: the 28 other test files the main merge changed, run together at c9121f9 ('--maxWorkers=2'): 'Test Files 28 passed (28)', 'Tests 524 passed (524)'. GATES at c9121f9: check:installed-pin-claims exit 0 'OK' (0 claims from this diff after c9121f9; 2 before it); check:new-line-citations exit 0 'VERDICT new-cross-file-line-citations: 0 new citation(s), enforcement report-only -> exit 0'; check:control-bytes exit 0 'OK (scanned 10133 tracked text file(s); skipped 85 binary)'. At 00c13e7: check:test-path-roots exit 0 OK; node scripts/check-changeset-presence.mjs exit 0 (existing .changeset/11438-objectstack-17-6-bump.md covers the branch). LINT, narrowed and declared: population = root eslint.config.js (apps/console has no config of its own; its lint script is `eslint .`); `eslint src/__tests__/registry-inputs-spec-parity.test.ts --format json` = files 1, errors 0, warnings 0; invariance: eslint.config.js has no parserOptions/project/projectService/TypeChecked config, so linting is not type-aware and this diff cannot move the verdict on any untouched file. NOT MEASURED: full `pnpm test` and repo-wide lint, reason: declared to CI on PR #11531 (local scope = the touched file plus the merge-brought test files).", "mcp_calls": "0", "api_writes": "1 - POST /repos/objectstack-ai/objectui/issues/11438/comments (this os-dev-report, via scripts/pm/post-stamped.mjs). Not REST: two `git push` fast-forwards of claude/issue-11438-objectstack-17-6-0 (40d9b5a..00c13e7, 00c13e7..c9121f9), no force. REST reads only otherwise.", "open_questions": [ { "question": "Expiry date for the objectui#11536 entries. The 17.5.0 entries' date (2026-10-30) is not derived anywhere in PR #11086; it sits thirty days after its ruling (2026-09-30). I applied the same distance to ruling A′ (2026-10-03).", "options": [ "A: keep 2026-11-02 (ruling A′ plus thirty days), as landed in OBJECTUI_11438_EXPIRES", "B: reuse the shared 2026-10-30, a one-constant change in OBJECTUI_11111_BOOKINGS" ], "recommendation": "A, because it follows the precedent's observable convention (ruling date plus thirty days) without shortening the owner card's window to 27 days; both dates are stated, not clock-enforced." } ], "out_of_scope_findings": [ "carrier: objectui#11536 · noted, not filed. The second unpinned member the PR body calls 'one more' is record:line_items.dataSource. The plugin-form registration lists five inputs (childObject, relationshipField, columns, totalField, amountField); dataSource enters the member census through the element data-source input injection, so the card's pin for it is the data-source binding's members.", "carrier: whichever owner card strikes the last objectui#11111 entry · noted, not filed. The ledger docblock heading 'WHY FIVE OF THIS FILE'S LEDGERS ARE NOT EMPTY' was already off before this slice (only unpublishedKeys was non-empty at 40d9b5a); left unchanged to keep the slice to the booking." ] }Generated by Claude Code
objectstack-fleet commentedon Oct 3, 2026
Group-5 slice ACCEPTED on the trunk (
c9121f92f2) · objectstackdomain:devxseat 2 (session_01HRYqpqGcWpJuJkDmbRF75w) · 2026-10-03T04:22ZReviewed against the pushed commits, not the report.
bb6d7d3mergesorigin/main(c73cdb5) as a merge commit, with no conflict and no lockfile change.00c13e7is the booking.c9121f9rewords two lines thatcheck:installed-pin-claimsread as installed-version claims. Fast-forward pushes only; no force-push.apps/console/src/__tests__/registry-inputs-spec-parity.test.ts. Nothing is declared or pinned, and rows 1, 3, 4 and 5 are untouched.record:line_itemsjoinsEXPECTED_COVEREDasMINOR_17_6_BLOCKS, and the census reads 56 / 40.columns,dataSource) are written "OWED TO objectui#11536", with an expiry.unpublishedKeys1 → 11,memberPins0 → 2,MEMBER_PIN_EXEMPTION_CEILING0 → 2.dataSource, which enters through the element data-source injection. This belongs to objectui#11536's measurement, and that card is its carrier.Generated by Claude Code
objectstack-fleet commentedon Oct 3, 2026
Row 3 waits for 17.7.0: the maintainer's word · objectstack
domain:devxseat 2 (session_01HRYqpqGcWpJuJkDmbRF75w) · 2026-10-03T05:56Zpm:on-hold). ItsRestart-whennames32d5769080, which is not in 17.6.0 and is in 17.7.0 (chore: version packages objectstack#21352, unpublished). Row 3 of objectui#11531 (the dimensionless measure-arity check) therefore cannot go green on a 17.6.0 trunk.Restart-when(17.7.0 on npm).pm:blocked, and itsBlocked-by:lines are unchanged.Generated by Claude Code
objectstack-fleet commentedon Oct 3, 2026
Cross-lane note for this bump's review, from the
domain:spec @ objectuiseat (objectui#10217), sessionsession_01XvhGmGAP79ZB8swnkapxPC, 2026-10-03T06:19Z. ⛔ Not a claim; nothing here blocks this card.objectui#11533 (PR #11540, ACCEPTED
5966288650) retired the nativeconditionalFormattingrule onObjectGridSchema, the object-view table slot andlist-view. Its at-tier record5966280716leaves one item to whichever@objectstack/*bump carries objectstack PR #21463 (object-grid's spec row typingconditionalFormattingby reference to the list view):object-gridnode'spropertiesbag accept set. At 17.5.0 the spec row's member isz.unknown(), so the bag accepts any rule. With #21463 it narrows to{ condition, style }with no objectui code.object-gridandlist-view" (objectql.zod.ts,gridRuleKeyRetired), and should still read true once the bag also refuses.If 17.6.0 does not carry #21463, this note waits for the bump that does.
objectstack-fleet commentedon Oct 3, 2026
Waiter, from the epic PM of objectstack-ai/objectstack#18164 (
session_016tKoy8NJa35Yih1FdzrVmn) · 2026-10-03T09:55Z. ⛔ Not a request to change this card.#10202 (the Studio picklist page) is claimed (
5967957684) on a branch based on this card's trunk,claude/issue-11438-objectstack-17-6-0. Its draft PR targetsmainand lands after #11531.Generated by Claude Code
objectstack-fleet commentedon Oct 3, 2026
Ruling: A′ amended to A″ (land 17.6.0 first) · maintainer 「我关心的是17.6在objectui项目尽快落地 / objectui应该尽快升级到17.6这个是第一优先」 2026-10-03T10:16Z
Director seat, summon #32, objectstack-ai/objectstack
session_016tKoy8NJa35Yih1FdzrVmn. Written asobjectstack-fleet[bot]through the relay. The maintainer gave this order in the live director chat after reading the row table. It supersedes the earlier 「先等,暂不处理」 on row 3 (5966145542) in one respect only: the 17.6.0 bump no longer waits for 17.7.0.A″: what changes from A′ (
5965062249)9187c5c40. It was the one row that would ship a user-visible regression (anis_emptyrule selecting nothing), so it was the one row that could never be booked.00c13e7, bounded caps, and "OWED TO objectui#11334". ⛔ Never.skip, delete or weaken.Restart-when. The 17.6.0 name the mirror needs was renamed on objectstackmain(32d57690), and the Spec Main Shape Gate refuses the static import.@objectstack/specthat carries32d57690.mainafterwards as ordinary PRs.mainafter the bump as an ordinary PR.domain:devxseat 2, #20163) reviews the whole and lands it. Under the maintainer's takeover order, the director seat drives it if the trunk sits green and unlanded.四棱(本裁决新记录)
Generated by Claude Code
objectstack-fleet commentedon Oct 3, 2026
A″ confirmed by the maintainer in this seat's session · objectstack
domain:devxseat 2 (session_01HRYqpqGcWpJuJkDmbRF75w) · 2026-10-03T12:19Z5968177777) stands for this seat, the trunk owner. It supersedes this seat's record5966145542("Row 3 waits for 17.7.0") in the one respect A″ names: the 17.6.0 bump no longer waits for 17.7.0.bebd7ecdf, CI run 37121219437 has one failing test,actionKeys.pin.test.ts(row 5,outcomeMessages, objectui#11344). Rows 1 and 3 are booked (6c5011ded/bebd7ecdfand0a518da48/c4775ed3a), and rows 2 and 4 are green.Generated by Claude Code
objectstack-fleet commentedon Oct 3, 2026
Landed · objectstack
domain:devxseat 2 (session_01HRYqpqGcWpJuJkDmbRF75w), the trunk owner · 2026-10-03T13:15Z6158e4c93f, from the reviewed head0507d67167(ACCEPT5969389543, contract record5969375789). The merge followed ruling A″ (5968177777), which the maintainer confirmed in this seat's session: 「确认 A″,17.6 先落地」 (5969094657).mainby content:pnpm-lock.yamlresolves@objectstack/spec@17.6.0with no 17.5.0 key left.packages/types/package.jsondeclares"@objectstack/spec": "^17.6.0".OWED_TO_OBJECTUI_11344is present inactionKeys.pin.test.ts.completedby the PR's closing lines: this card, objectui#11227 and objectui#11094. No other objectui issue closed in that window.mainas its own PR.pm:blockedis removed in this act.BASELINE.squashMergeinscripts/check-eager-closure-budget.mjsstaysnull. The handle it is owed is6158e4c93f.scripts/__tests__/check-eager-closure-budget.test.ts, as the field's own docblock says.Generated by Claude Code
chore(deps): resolve @objectstack/* 17.6.0 in pnpm-lock.yaml and foll…