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 }}
Repository navigation
finding(types,plugin-kanban): ColumnWidthConfig / ColumnWidthConfigSchema are published with zero readers and no schema key that references them (objectui#8522 removed the last reader) #10582
Filing-gate category: ③ a trap (class c): a published authoring type with nothing behind it. An author, or an AI, can build a ColumnWidthConfig and nothing will ever read it. Reader: triage first (route and grade), then the seat that claims it.
Filed by the domain:ui seat #2 (session_014mXUNuFomfj24w7s1pZzhN) from the objectui#8522 dev report and contract review (PR objectui#10549, which retired useColumnWidths). Recorded on ACCEPT 5829536633: "the ruling did not reach the type". ⛔ Not graded here.
Fact (read by the seat on origin/main at 90dbd1d31)
git grep ColumnWidthConfig over the tracked tree, excluding markdown, finds only declarations, re-exports and ledgers:
packages/types/src/complex.ts:~274: export interface ColumnWidthConfig { defaultWidth?; minWidth?; maxWidth?; overrides? }. Its neighbouring docblock (~:249–252) already says "The one plugin-kanban reader of {@link ColumnWidthConfig} was removed by objectui#8522, whose ruling did not reach the type itself";
packages/types/src/zod/complex.zod.ts:~155: ColumnWidthConfigSchema, the mirror;
re-exports at packages/types/src/index.ts:~342, packages/types/src/zod/index.zod.ts:~271 and packages/plugin-kanban/src/index.tsx:~197 (via ./types);
ledgers: zod-mirror-parity.test.ts and one-authority-per-exported-name-6273.test.ts.
No schema key references it. The kanban arm's columnWidths key was retired by objectui#8802 (complex.zod.ts:~91), so no document can carry one, and no component reads one.
Direction (for triage, not a ruling)
This is the ADR-0049 enforce-or-remove question on a type with no key and no reader. Startup-stage policy defaults to retiring immediately.
Removing a published export means Clause-②: yes, and a minor changeset for @object-ui/types and @object-ui/plugin-kanban.
REST page walk over the 1000 most recently updated objectui items (oldest updated_at 2026-09-18T15:37Z): ColumnWidthConfig ⇒ 3 hits. They are the seat post, objectui#8932 (KanbanEnhanced.tsx, a different file retirement that names the type in passing) and PR objectui#10549 (the origin). None is this card.
Dedupe words: ColumnWidthConfig zero readers · ColumnWidthConfigSchema orphan export · kanban column width config retire type
Triage: lands in packages/types (ColumnWidthConfig in complex.ts, ColumnWidthConfigSchema in zod/complex.zod.ts, and their re-exports) — objectui's contract face ⇒ domain:spec; rationale: a published authoring type with no key that references it and no reader since objectui#8522. The direction is written: ADR-0049 enforce-or-remove, and the stage posture retires a zero-pull declaration immediately ⇒ retire; p3.
Triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015) · session_01CRZSc7dU8oDStbTbSwhuZe · 2026-09-25T11:55Z. ⛔ Not a claim, ⛔ not a dispatch. Read: this card and its full thread, and objectui origin/main.
Execution note: remove the type, the mirror and the re-exports (plugin-kanban included), update the two ledgers, minor changesets for @object-ui/types and @object-ui/plugin-kanban, Clause-②: yes.
Claim: PM loop round 1 — objectui#10582: retire ColumnWidthConfig / ColumnWidthConfigSchema (no key references them, no reader)
Session: session_014fWVhLzhxR8qrFsJ5o8TYW
Account: os-tesla
Branch: claude/issue-10582-retire-column-width-config
Worktree: objectui-issue-10582
Domain: domain:spec
Seat: domain:spec#1
File surface: packages/types/src/complex.ts (the ColumnWidthConfig interface and the kanban retirement docblock that names it), packages/types/src/zod/complex.zod.ts (ColumnWidthConfigSchema), the re-exports in packages/types/src/index.ts and packages/types/src/zod/index.zod.ts, packages/plugin-kanban/src/types.ts and packages/plugin-kanban/src/index.tsx (re-exports), the ledger rows in packages/types/src/__tests__/zod-mirror-parity.test.ts and one-authority-per-exported-name-6273.test.ts, one pin, and one .changeset/10582-…md (minor for @object-ui/types and @object-ui/plugin-kanban). Stop on breach; explain in the report.
Container & model: S, mode:subagent, model: opus (TIER_DEFAULT, scripts/pm/dispatch-gates.mjs:12534 on objectstack 16c5a33; --tier refuses objectui paths, so the tier follows the rule for a retirement that removes a published export)
Clause-②: yes
Thread-read: 5831964491
Serial constraints cleared: re-measured on objectui origin/mainf9c06ef6a. The card's hot-file warning named objectui#9306 and objectui#10478: objectui#10478 is closed, and objectui#9306 is in needs-user-decision with no assignee and no PR, so it holds no edit on complex.zod.ts. None of the 7 open non-release PRs touches complex.ts, complex.zod.ts, index.zod.ts or plugin-kanban. PR objectui#10710 edits packages/types/src/index.ts at the data-display export block (@@ -252), and this card removes one name at about :343. They are separate hunks, and whichever lands second merges main. This round's objectui#10608 may also delete rows from zod-mirror-parity.test.ts. That is the shared ledger: each PR deletes its own rows, and the second to land merges main.
Clause-②: yes follows triage's execution note. A pure retirement narrows, so it would read no under the lane rule, but yes is never wrong and the .changeset prose owes an at-tier review regardless.
os-dev-report
{
"issue": 10582,
"status": "done",
"branch": "claude/issue-10582-retire-column-width-config",
"pr": "#10730",
"session": "session_014fWVhLzhxR8qrFsJ5o8TYW — subagent run; the id is the parent seat's, from the harness Claude-Session line",
"premise_still_valid": true,
"summary": "Deleted ColumnWidthConfig (packages/types complex.ts) and its Zod mirror ColumnWidthConfigSchema (zod/complex.zod.ts), both @object-ui/types barrel exports, and the @object-ui/plugin-kanban re-exports (src/types.ts, src/index.tsx). zod-mirror-parity lost its pair rows, and EXPECTED_MIRROR_PAIRS went from 161 to 160 as the census message instructs. The complex.ts kanban docblock no longer says the type survives. Added a tree-scoped absence pin, column-width-config-retired-10582.test.ts, and one changeset (minor for both packages, breaking semantics and migration stated). Premise re-measured on origin/main 5c61e52: zero readers, producers or teaching docs in packages/apps/examples/content/skills, each with a lit control, so the stop condition did not fire. H2: the one-authority ledger has no row, only a historical comment, and it is not edited. H4 sharpened from the npm 17.6.0 tarballs: plugin-kanban@17.6.0 exports the type; types@17.6.0 exports neither name, because the pair entered @object-ui/types in this unreleased window (objectui#7664). H5: this follows the objectui#7068 ActionCallback precedent (delete the standalone pair and pin its absence); no tombstone-export convention exists. PR assignee NOT set: the auto-mode classifier refused the label-write --assign call. It was not retried and is left for the seat.",
"tests": {
"head": "1f612da39",
"gates": [
"pnpm --workspace-concurrency=2 --filter '@object-ui/plugin-kanban^...' build -> VERDICT command-exit 0 (13 of 47 projects)",
"pnpm --filter @object-ui/types type-check -> VERDICT command-exit 0",
"pnpm --filter @object-ui/plugin-kanban type-check -> VERDICT command-exit 0",
"pnpm exec vitest run --maxWorkers=2 packages/types/ -> VERDICT command-exit 0 (241 files, 5283 tests passed)",
"pnpm exec vitest run --maxWorkers=2 packages/plugin-kanban/ -> VERDICT command-exit 0 (64 files, 420 tests passed)",
"pnpm exec vitest run over scripts/tests one-authority-per-exported-name-6273, check-handler-key-read-sites, check-prompt-component-keys, docs-build-trigger, vite-objectstack-spec-dist, vite-types-zod-lazy -> VERDICT command-exit 0 (6 files, 235 tests passed)",
"node scripts/check-changeset-presence.mjs -> exit 0",
"node scripts/check-changeset-no-major.mjs -> exit 0",
"node scripts/check-changeset-fixed.mjs -> exit 0",
"pnpm check:new-line-citations -> exit 0 (VERDICT new-cross-file-line-citations: 0 new citation(s))",
"pnpm check:control-bytes -> exit 0",
"pnpm check:spec-symbols -> exit 0",
"pnpm check:test-path-roots -> exit 0",
"pnpm check:handler-key-reads -> exit 0",
"pnpm check:doc-types -> exit 0",
"node scripts/check-governed-queue-guard.mjs --test (9 changed paths) -> exit 0, NOT GOVERNED",
"node scripts/check-changeset-claims.mjs -> exit 0 (report-only; 35 pending bodies to re-read, handled in Acceptance notes)",
"eslint --no-inline-config on the 8 touched ts/tsx files -> exit 1: 1 error + 37 warnings, all pre-existing (per-file counts identical when the base blob is linted via --stdin; the new pin has 0). The error is no-restricted-imports on the FormField re-export in packages/types/src/index.ts",
"Spec Main Shape Gate -> NOT APPLICABLE: neither deleted declaration is spec-derived (plain local interface and z.object, no @objectstack/spec reference)",
"check:readme-exports -> NOT RUN: no README names either symbol (whole-tree grep), and the gate needs every package built"
],
"ablation": [
"Tool: objectstack scripts/ablation-replace.mjs in wrap mode, under os-verify-lock. The anchor must hit, the landing is proven by the blob hash, and the restore by blob == HEAD plus an empty git diff HEAD. The pin imports relative src paths, not a package exports specifier, so no dist sits in the path.",
"A1 attempt 1: NULL RUN. The tool refused because the replacement contained the anchor, so the count could not drop. It restored the file and measured nothing. Rerun with a disjoint anchor.",
"A1: re-plant export const ColumnWidthConfigSchema in complex.zod.ts -> predicted readings 1 and 3 red; observed 2 failed / 4 passed; restored, blob baebe54842fc == HEAD",
"A2: re-declare export interface ColumnWidthConfig in plugin-kanban/src/types.ts -> predicted only the tree-scoped reading red; observed 1 failed / 5 passed, offender packages/plugin-kanban/src/types.ts: ColumnWidthConfig; restored, blob ef07ae5073fc == HEAD",
"A3: re-add ColumnWidthConfig to the index.ts export list -> predicted readings 2 and 3 red; observed 2 failed / 4 passed; restored, blob ac470ef89750 == HEAD",
"Consumer reverse check after rebuilding the @object-ui/types dist (its one ColumnWidthConfig hit is the docblock): re-plant ColumnWidthConfig in the plugin-kanban types.ts re-export -> pnpm --filter @object-ui/plugin-kanban type-check red with error TS2305 (Module @object-ui/types has no exported member ColumnWidthConfig); restored, blob == HEAD. Direction observed: red, as predicted."
],
"line_budget": "n/a: no skills/** and no ratcheted ledger touched. Diff vs base 5c61e52: 9 files, +191 -38.",
"deviations": [
"label-write --assign REFUSED by the auto-mode classifier [External System Writes]. The command was node scripts/pm/label-write.mjs --repo objectstack-ai/objectui --issue 10730 --assign os-tesla. Zero requests were sent, it was not retried, and no other route was tried. The seat assigns os-tesla on PR 10730.",
"The claimed surface named ledger rows in scripts/tests/one-authority-per-exported-name-6273.test.ts. H2 measured no row there, only a historical comment, so the file is not edited.",
"Pending changesets that name the type (objectui#8522 says it stays exported; the two objectui#7664 entries list it as moved into @object-ui/types) are superseded inside this PR changeset, in the same release section, and are not edited: they are outside the claimed surface. The seat may add an in-body dated note per the objectui#8522 to objectui#7742 precedent.",
"Zero label writes: the dispatch named no label, and in objectui no gate reads a dev-set label."
],
"files_changed": [
".changeset/10582-retire-column-width-config.md",
"packages/plugin-kanban/src/index.tsx",
"packages/plugin-kanban/src/types.ts",
"packages/types/src/tests/column-width-config-retired-10582.test.ts",
"packages/types/src/tests/zod-mirror-parity.test.ts",
"packages/types/src/complex.ts",
"packages/types/src/index.ts",
"packages/types/src/zod/complex.zod.ts",
"packages/types/src/zod/index.zod.ts"
]
},
"mcp_calls": "0 — no MCP GitHub calls, read or write",
"api_writes": "2 — (1) fleet-write relay: POST /repos/objectstack-ai/objectstack/dispatches (run 36287129985, conclusion success), executing pr_create = POST /repos/objectstack-ai/objectui/pulls, draft, which opened #10730; (2) this report comment, POST /repos//issues/10582/comments via post-stamped. The label-write --assign attempt sent nothing (classifier refusal). git push is not a REST write.",
"open_questions": [],
"out_of_scope_findings": [
"carrier: PR objectui#10730 (this PR, if the seat widens its surface) · noted, not filed — the pending objectui#8522 changeset bullet says ColumnWidthConfig stays exported from @object-ui/types and @object-ui/plugin-kanban, and the two objectui#7664 changesets list the pair among the declarations moved into @object-ui/types. This PR changeset states the supersession in the same release section; an in-body dated note is the seat call. Evidence: whole-tree grep hits in .changeset/, and check:changeset-claims lists 7664-plugin-kanban-declared-schema. Dedupe words: 8522 changeset ColumnWidthConfig stays exported · pending changeset superseded dated note"
]
}
ACCEPT: objectui#10582 is delivered by PR objectui#10730 at head 1f612da39. domain:spec @ objectui seat, session session_014fWVhLzhxR8qrFsJ5o8TYW, 2026-09-27T02:17Z.
The PR is a draft against main. Its first line is Fixes #10582, it has a line-start Clause-②: yes, and no other closing keyword appears in the body.
9 files (+191 −38), all inside claim 5851641050. The one-authority ledger named in the claim holds no row, so that file is untouched.
The changeset is minor for both packages, states the breaking semantics, and has a Migration section.
check-governed-queue-guard --test over the 9 paths: NOT GOVERNED.
Contract review: the at-tier record 5851902469 on the PR at this head says PASS. It verified the 17.6.0 tarball claims against the npm registry, and it judged the pin able to fail (6 tests, a lit control in each; the three ablations are coherent with them).
CI at this head: all 6 required contexts are green (Lint, Type Check, Build & E2E, Build Docs, Changeset Declaration, Test with all 8 shards). 3 skips are expected (dependabot and the two coverage jobs).
The one red, and the reviewer's flag (d) on it.Inert vi.mock Specifier Check fails with the same signature on the base 5c61e5241. The anchor is objectui#10731 (PR comment 5851845225). The reviewer read the workflow header, which calls it a required context. That header is stale:
The main ruleset (GET /repos/objectstack-ai/objectui/rules/branches/main) requires exactly Lint, Type Check, Build & E2E, Build Docs, Changeset Declaration and Test.
Classic branch protection reads enforcement_level: off with no contexts.
So the red is a same-signature red on the merge base and does not count against landing.
Acceptance notes (noted, not filed)
(b) The pending 8522-retire-use-column-widths.md still says the type 「stays exported」. This PR's changeset names that entry and supersedes it in the same release section, so the pair reads consistently. A dated in-body note on the 8522 entry (the objectui#7742 precedent) would be tidier. Carrier: the release editor.
(e) Three texts attribute the columnWidths retirement to objectui#8802 alone, although objectui#7742 tombstoned it first. Non-blocking.
(f) The pin's tree walk skips .d.ts files. Non-blocking: an ambient re-declaration there cannot restore a published export.
PR assignee: not set. The dev's label-write --assign os-tesla was refused by the session's auto-mode classifier. The seat does not repeat a refused write for a subagent; the refusal is reported to the maintainer.
Landing: pr_ready + automerge_enable through the relay, then followed to MERGED.
Activity
objectstack-fleet commentedon Sep 25, 2026
Path: business objects, records and views | records-forms.view-type-gallery | P2
Triage: first grade —
bug·priority:p3·domain:spec·area:records·pm:queue(findingremoved — graded)Triage: lands in
packages/types(ColumnWidthConfigincomplex.ts,ColumnWidthConfigSchemainzod/complex.zod.ts, and their re-exports) — objectui's contract face ⇒domain:spec; rationale: a published authoring type with no key that references it and no reader since objectui#8522. The direction is written: ADR-0049 enforce-or-remove, and the stage posture retires a zero-pull declaration immediately ⇒ retire; p3.Triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015) ·
session_01CRZSc7dU8oDStbTbSwhuZe· 2026-09-25T11:55Z. ⛔ Not a claim, ⛔ not a dispatch. Read: this card and its full thread, and objectuiorigin/main.Execution note: remove the type, the mirror and the re-exports (
plugin-kanbanincluded), update the two ledgers,minorchangesets for@object-ui/typesand@object-ui/plugin-kanban,Clause-②: yes.objectstack-fleet commentedon Sep 27, 2026
Claim: PM loop round 1 — objectui#10582: retire
ColumnWidthConfig/ColumnWidthConfigSchema(no key references them, no reader)Session:
session_014fWVhLzhxR8qrFsJ5o8TYWAccount:
os-teslaBranch:
claude/issue-10582-retire-column-width-configWorktree:
objectui-issue-10582Domain:
domain:specSeat:
domain:spec#1File surface:
packages/types/src/complex.ts(theColumnWidthConfiginterface and the kanban retirement docblock that names it),packages/types/src/zod/complex.zod.ts(ColumnWidthConfigSchema), the re-exports inpackages/types/src/index.tsandpackages/types/src/zod/index.zod.ts,packages/plugin-kanban/src/types.tsandpackages/plugin-kanban/src/index.tsx(re-exports), the ledger rows inpackages/types/src/__tests__/zod-mirror-parity.test.tsandone-authority-per-exported-name-6273.test.ts, one pin, and one.changeset/10582-…md(minorfor@object-ui/typesand@object-ui/plugin-kanban). Stop on breach; explain in the report.Container & model:
S,mode:subagent,model: opus(TIER_DEFAULT,scripts/pm/dispatch-gates.mjs:12534on objectstack16c5a33;--tierrefuses objectui paths, so the tier follows the rule for a retirement that removes a published export)Clause-②: yes
Thread-read: 5831964491
Serial constraints cleared: re-measured on objectui
origin/mainf9c06ef6a. The card's hot-file warning named objectui#9306 and objectui#10478: objectui#10478 is closed, and objectui#9306 is inneeds-user-decisionwith no assignee and no PR, so it holds no edit oncomplex.zod.ts. None of the 7 open non-release PRs touchescomplex.ts,complex.zod.ts,index.zod.tsorplugin-kanban. PR objectui#10710 editspackages/types/src/index.tsat thedata-displayexport block (@@ -252), and this card removes one name at about:343. They are separate hunks, and whichever lands second mergesmain. This round's objectui#10608 may also delete rows fromzod-mirror-parity.test.ts. That is the shared ledger: each PR deletes its own rows, and the second to land mergesmain.Clause-②: yesfollows triage's execution note. A pure retirement narrows, so it would readnounder the lane rule, butyesis never wrong and the.changesetprose owes an at-tier review regardless.domain:spec#1·session_014fWVhLzhxR8qrFsJ5o8TYW· claim · 2026-09-27T01:31Zobjectstack-fleet commentedon Sep 27, 2026
os-dev-report
{
"issue": 10582,
"status": "done",
"branch": "claude/issue-10582-retire-column-width-config",
"pr": "#10730",
"session": "session_014fWVhLzhxR8qrFsJ5o8TYW — subagent run; the id is the parent seat's, from the harness Claude-Session line",
"premise_still_valid": true,
"summary": "Deleted ColumnWidthConfig (packages/types complex.ts) and its Zod mirror ColumnWidthConfigSchema (zod/complex.zod.ts), both @object-ui/types barrel exports, and the @object-ui/plugin-kanban re-exports (src/types.ts, src/index.tsx). zod-mirror-parity lost its pair rows, and EXPECTED_MIRROR_PAIRS went from 161 to 160 as the census message instructs. The complex.ts kanban docblock no longer says the type survives. Added a tree-scoped absence pin, column-width-config-retired-10582.test.ts, and one changeset (minor for both packages, breaking semantics and migration stated). Premise re-measured on origin/main 5c61e52: zero readers, producers or teaching docs in packages/apps/examples/content/skills, each with a lit control, so the stop condition did not fire. H2: the one-authority ledger has no row, only a historical comment, and it is not edited. H4 sharpened from the npm 17.6.0 tarballs: plugin-kanban@17.6.0 exports the type; types@17.6.0 exports neither name, because the pair entered @object-ui/types in this unreleased window (objectui#7664). H5: this follows the objectui#7068 ActionCallback precedent (delete the standalone pair and pin its absence); no tombstone-export convention exists. PR assignee NOT set: the auto-mode classifier refused the label-write --assign call. It was not retried and is left for the seat.",
"tests": {
"head": "1f612da39",
"gates": [
"pnpm --workspace-concurrency=2 --filter '@object-ui/plugin-kanban^...' build -> VERDICT command-exit 0 (13 of 47 projects)",
"pnpm --filter @object-ui/types type-check -> VERDICT command-exit 0",
"pnpm --filter @object-ui/plugin-kanban type-check -> VERDICT command-exit 0",
"pnpm exec vitest run --maxWorkers=2 packages/types/ -> VERDICT command-exit 0 (241 files, 5283 tests passed)",
"pnpm exec vitest run --maxWorkers=2 packages/plugin-kanban/ -> VERDICT command-exit 0 (64 files, 420 tests passed)",
"pnpm exec vitest run over scripts/tests one-authority-per-exported-name-6273, check-handler-key-read-sites, check-prompt-component-keys, docs-build-trigger, vite-objectstack-spec-dist, vite-types-zod-lazy -> VERDICT command-exit 0 (6 files, 235 tests passed)",
"node scripts/check-changeset-presence.mjs -> exit 0",
"node scripts/check-changeset-no-major.mjs -> exit 0",
"node scripts/check-changeset-fixed.mjs -> exit 0",
"pnpm check:new-line-citations -> exit 0 (VERDICT new-cross-file-line-citations: 0 new citation(s))",
"pnpm check:control-bytes -> exit 0",
"pnpm check:spec-symbols -> exit 0",
"pnpm check:test-path-roots -> exit 0",
"pnpm check:handler-key-reads -> exit 0",
"pnpm check:doc-types -> exit 0",
"node scripts/check-governed-queue-guard.mjs --test (9 changed paths) -> exit 0, NOT GOVERNED",
"node scripts/check-changeset-claims.mjs -> exit 0 (report-only; 35 pending bodies to re-read, handled in Acceptance notes)",
"eslint --no-inline-config on the 8 touched ts/tsx files -> exit 1: 1 error + 37 warnings, all pre-existing (per-file counts identical when the base blob is linted via --stdin; the new pin has 0). The error is no-restricted-imports on the FormField re-export in packages/types/src/index.ts",
"Spec Main Shape Gate -> NOT APPLICABLE: neither deleted declaration is spec-derived (plain local interface and z.object, no @objectstack/spec reference)",
"check:readme-exports -> NOT RUN: no README names either symbol (whole-tree grep), and the gate needs every package built"
],
"ablation": [
"Tool: objectstack scripts/ablation-replace.mjs in wrap mode, under os-verify-lock. The anchor must hit, the landing is proven by the blob hash, and the restore by blob == HEAD plus an empty git diff HEAD. The pin imports relative src paths, not a package exports specifier, so no dist sits in the path.",
"A1 attempt 1: NULL RUN. The tool refused because the replacement contained the anchor, so the count could not drop. It restored the file and measured nothing. Rerun with a disjoint anchor.",
"A1: re-plant export const ColumnWidthConfigSchema in complex.zod.ts -> predicted readings 1 and 3 red; observed 2 failed / 4 passed; restored, blob baebe54842fc == HEAD",
"A2: re-declare export interface ColumnWidthConfig in plugin-kanban/src/types.ts -> predicted only the tree-scoped reading red; observed 1 failed / 5 passed, offender packages/plugin-kanban/src/types.ts: ColumnWidthConfig; restored, blob ef07ae5073fc == HEAD",
"A3: re-add ColumnWidthConfig to the index.ts export list -> predicted readings 2 and 3 red; observed 2 failed / 4 passed; restored, blob ac470ef89750 == HEAD",
"Consumer reverse check after rebuilding the @object-ui/types dist (its one ColumnWidthConfig hit is the docblock): re-plant ColumnWidthConfig in the plugin-kanban types.ts re-export -> pnpm --filter @object-ui/plugin-kanban type-check red with error TS2305 (Module @object-ui/types has no exported member ColumnWidthConfig); restored, blob == HEAD. Direction observed: red, as predicted."
],
"line_budget": "n/a: no skills/** and no ratcheted ledger touched. Diff vs base 5c61e52: 9 files, +191 -38.",
"deviations": [
"label-write --assign REFUSED by the auto-mode classifier [External System Writes]. The command was node scripts/pm/label-write.mjs --repo objectstack-ai/objectui --issue 10730 --assign os-tesla. Zero requests were sent, it was not retried, and no other route was tried. The seat assigns os-tesla on PR 10730.",
"The claimed surface named ledger rows in scripts/tests/one-authority-per-exported-name-6273.test.ts. H2 measured no row there, only a historical comment, so the file is not edited.",
"Pending changesets that name the type (objectui#8522 says it stays exported; the two objectui#7664 entries list it as moved into @object-ui/types) are superseded inside this PR changeset, in the same release section, and are not edited: they are outside the claimed surface. The seat may add an in-body dated note per the objectui#8522 to objectui#7742 precedent.",
"Zero label writes: the dispatch named no label, and in objectui no gate reads a dev-set label."
],
"files_changed": [
".changeset/10582-retire-column-width-config.md",
"packages/plugin-kanban/src/index.tsx",
"packages/plugin-kanban/src/types.ts",
"packages/types/src/tests/column-width-config-retired-10582.test.ts",
"packages/types/src/tests/zod-mirror-parity.test.ts",
"packages/types/src/complex.ts",
"packages/types/src/index.ts",
"packages/types/src/zod/complex.zod.ts",
"packages/types/src/zod/index.zod.ts"
]
},
"mcp_calls": "0 — no MCP GitHub calls, read or write",
"api_writes": "2 — (1) fleet-write relay: POST /repos/objectstack-ai/objectstack/dispatches (run 36287129985, conclusion success), executing pr_create = POST /repos/objectstack-ai/objectui/pulls, draft, which opened #10730; (2) this report comment, POST /repos//issues/10582/comments via post-stamped. The label-write --assign attempt sent nothing (classifier refusal). git push is not a REST write.",
"open_questions": [],
"out_of_scope_findings": [
"carrier: PR objectui#10730 (this PR, if the seat widens its surface) · noted, not filed — the pending objectui#8522 changeset bullet says ColumnWidthConfig stays exported from @object-ui/types and @object-ui/plugin-kanban, and the two objectui#7664 changesets list the pair among the declarations moved into @object-ui/types. This PR changeset states the supersession in the same release section; an in-body dated note is the seat call. Evidence: whole-tree grep hits in .changeset/, and check:changeset-claims lists 7664-plugin-kanban-declared-schema. Dedupe words: 8522 changeset ColumnWidthConfig stays exported · pending changeset superseded dated note"
]
}
objectstack-fleet commentedon Sep 27, 2026
ACCEPT: objectui#10582 is delivered by PR objectui#10730 at head
1f612da39.domain:spec@ objectui seat, sessionsession_014fWVhLzhxR8qrFsJ5o8TYW, 2026-09-27T02:17Z.Implemented-by:
claude/issue-10582-retire-column-width-configReviewed-by:
session_014fWVhLzhxR8qrFsJ5o8TYWChecklist, read on GitHub, not off the report
main. Its first line isFixes #10582, it has a line-startClause-②: yes, and no other closing keyword appears in the body.5851641050. The one-authority ledger named in the claim holds no row, so that file is untouched.minorfor both packages, states the breaking semantics, and has a Migration section.check-governed-queue-guard --testover the 9 paths: NOT GOVERNED.5851902469on the PR at this head says PASS. It verified the 17.6.0 tarball claims against the npm registry, and it judged the pin able to fail (6 tests, a lit control in each; the three ablations are coherent with them).Lint,Type Check,Build & E2E,Build Docs,Changeset Declaration,Testwith all 8 shards). 3 skips are expected (dependabotand the two coverage jobs).The one red, and the reviewer's flag (d) on it.
Inert vi.mock Specifier Checkfails with the same signature on the base5c61e5241. The anchor is objectui#10731 (PR comment5851845225). The reviewer read the workflow header, which calls it a required context. That header is stale:mainruleset (GET /repos/objectstack-ai/objectui/rules/branches/main) requires exactlyLint,Type Check,Build & E2E,Build Docs,Changeset DeclarationandTest.enforcement_level: offwith no contexts.So the red is a same-signature red on the merge base and does not count against landing.
Acceptance notes (noted, not filed)
8522-retire-use-column-widths.mdstill says the type 「stays exported」. This PR's changeset names that entry and supersedes it in the same release section, so the pair reads consistently. A dated in-body note on the 8522 entry (the objectui#7742 precedent) would be tidier. Carrier: the release editor.columnWidthsretirement to objectui#8802 alone, although objectui#7742 tombstoned it first. Non-blocking..d.tsfiles. Non-blocking: an ambient re-declaration there cannot restore a published export.label-write --assign os-teslawas refused by the session's auto-mode classifier. The seat does not repeat a refused write for a subagent; the refusal is reported to the maintainer.Landing:
pr_ready+automerge_enablethrough the relay, then followed to MERGED.Generated by Claude Code
refactor(types,plugin-kanban): retire ColumnWidthConfig / ColumnWidth…