Repository navigation
Description
Ruled (plugin-ai): 6398569691 · letter A · 2026-10-25T13:58:53Z (retire @object-ui/plugin-ai: package, locale ai.* block, fixed-group entry, types/zod mirrors tombstoned; minor changeset with a breaking note)
维护者速读
一批每项都是 S、合起来可观的退役:9 个整文件模块共 2,211 行只有自己的 barrel 引用;@object-ui/plugin-ai 发布着却没有任何加载者(console 的 register-plugins.ts 不含它);runner 是无入口的 Vite 应用却 private: false 且在 fixed 发版组;公共 barrel 上有 9 个 reset*ForTesting 类助手;@object-ui/providers 与 @object-ui/react 同名的 provider 三件套只有一个示例在用;check-i18n-dead-keys 报告 122 个 CONFIRMED 死键(×10 语种);根目录若干孤儿。按 objectui#11608→#11616(PartialSchema)先例逐包一个 ! changeset。不加新门禁。
Measured (2026-10-24, HEAD 7981384; every absence claim ran with a positive control, SchemaRenderer 1,030 hits / plugin-map 144 files)
- Whole modules with zero consumers outside the package AND zero in-package importers (only the barrel line):
core/src/builder/schema-builder.ts451 LOC,core/src/protocols/DndProtocol.ts237,KeyboardProtocol.ts222,SharingProtocol.ts212 (their names appear only inside comments intypes/src/index.ts),react/src/hooks/useFocusManagement.ts248,useFocusTrap.ts138,usePageTransition.ts187,useSchemaPersistence.ts373,collaboration/src/LiveCursors.tsx143 — total 2,211 LOC. Repo-wide barrel census: 1,422 of 3,578 exported names have zero non-test code consumers outside their package (636 value exports, 402 of those also undocumented); worst ratios plugin-gantt 22/35, plugin-designer 16/38, collaboration 19/40, mobile 18/51. @object-ui/plugin-ai(736 LOC; registersai-form-assist,ai-recommendations,nl-query): 0 source importers; absent fromapps/console/src/register-plugins.tsandapps/console/vite.config.ts; owns anai.*block in every locale pack (26 lines inen.ts); listed in.changeset/config.json's fixed group.packages/runner: a Vite app (main.tsx,App.tsx, no barrel),private: false, nomain/exports, in the fixed release group;packages/cli/src/__tests__/workspace-vite.test.tsasserts it is not aliased.- Test-only helpers on public barrels with 0 non-test consumers:
resetColumnIdentityWarnings,resetRetiredSortSpellingReports,resetActionKeyWarnings,resetDashboardFilterWarnings,resetReferenceKeyWarnings(core),resetRuntimeConfigForTesting(app-shell),resetInflightGetsForTesting(types),__clearRecordEditableCache(plugin-detail),clearSharedDiscoveryCache(data-objectstack). @object-ui/providersexportsDataSourceProvider,MetadataProvider,ThemeProvider(+hooks), the same six names@object-ui/reactexports with different implementations; the providers trio's only non-test importer isexamples/byo-backend-console/src/App.tsx(react's: 21 files);one-authority-per-exported-name-6273.test.tscarries hand-written exemptions for the collision. Its real content isUploadProvider(450 of 617 LOC; fields 11 sites) andcreateObjectStackUploadAdapter— fetch logic outsidedata-*, against AGENTS §3.node scripts/check-i18n-dead-keys.mjsprints "391 candidate(s) … 122 CONFIRMED (no textual footprint anywhere else in the repo either), 269 NEEDS-REVIEW" (e.g.appDesigner.*20 keys,preview.changes.typeCount.*22); the script is wired to no workflow.- Root / config orphans:
scripts/eval-console.mjs(hard-coded/Users/zhuangjianguo/.copilot/...output path) andscripts/release-bump.cjsreferenced by nothing;paseo.json(0 references; itssetupteachespnpm iagainst the frozen-lockfile rule);typedoc.json+typedocdevDep +docs:api(no workflow);lazy-test.mjs(only an exemption glob incheck-lint-rule-coverage.mjs);playwright.import-harness.config.tsandplaywright.import-console.config.ts(1 spec each, no workflow);mswdeclared in root, plugin-form, plugin-grid with 0 imports pluspublic/mockServiceWorker.js;apps/consoledevDeps@dnd-kit/core|sortable|utilitiesandautoprefixerwith 0 references;docs/CONSOLE-STREAMLINING-SUMMARY.mdnames two packages that do not exist (@object-ui/routing,@object-ui/console-components).
Recommendation (each S; one PR per package or group)
- Delete the nine modules and their barrel lines (one
!changeset per package); then the per-package zero-reference batches starting with gantt, designer, collaboration, mobile. -
plugin-ai:maintainer decision — retire (package, locale block, fixed-group entry) or wire it inRuled A (6398569691): retire the package, the locale block and the fixed-group entry; tombstone the types/zod mirrors.register-plugins.tslikeplugin-markdown. -
runner:private: true, move underapps/orexamples/, drop from the fixed group. - Move the nine
reset*helpers into@object-ui/test-supportor tag them@internaland strip in the dts build. -
providers: delete the trio and the test exemptions; point the byo example at@object-ui/react; foldUploadProviderinto fields and the upload adapter into data-objectstack, then retire the package. - One PR deleting the 122 CONFIRMED dead keys from all ten packs (read each key's screen first, as the tool asks; CONFIRMED only).
- Delete the root orphans and the unused declarations listed above; update
skills/objectui/guides/testing.md, which still teaches msw.
Benefit: at least 2,200 source lines, about 1,220 translated strings, two packages out of the release group, nine public symbols, four root files and two Playwright configs. External npm consumers are 未实测; rollback is a revert per item.
Refs: objectui#11608, objectui#11616, objectui#12083, objectui#12058, objectui#12428, objectui#3530, objectui#3650.
Filed by the read-only whole-repo review session https://claude.ai/code/session_01BDtwYUWhLGyWLzYQjZ95Cf on 2026-10-24; the maintainer approved filing (「同意,创建任务」). Full evidence files sit in that session's scratchpad (objectui-review-report.md, findings-*.md). ⛔ Not a claim; for triage to grade and route. Graded; the plugin-ai bullet is ruled (see the first line).
Activity
objectstack-fleet commentedon Oct 24, 2026
Triage: first grade —
tech-debt·priority:p3·domain:ui·area:devpath·pm:queue· triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-24T15:00Z⛔ Not a claim, ⛔ not a dispatch.
findingcomes off.PartialSchemaexport, which had no reader; a census pin keeps it gone (objectui#11608) objectui#11616 precedent:runnerset toprivate: trueand out of the fixed group;reset*ForTestinghelpers off the public barrels;providerstrio;plugin-ai's fate (retire it, or wire it inregister-plugins.ts) cuts or keeps a product surface. It goes to the maintainer, and it stays out of these PRs until ruled.Generated by Claude Code
objectstack-fleet commentedon Oct 25, 2026
Claim: PM loop round 4 · 2026-10-25T04:45Z
Session:
session_011yfYeuX2ptMSCcYZiq61tS(card thread 「清理无人使用的导出与模块」, dispatched by thedomain:uiseat 4 sessionsession_01XWGTsmqrtrt1Zqh1ioWqsT)Account:
os-elon-muskBranch:
claude/project-thread-u9kgfd(platform-assigned)Worktree:
objectui-issue-13453Domain:
domain:uiSeat:
domain:ui#4File surface (triage
6385727878's in-scope list only; one PR per package or group is fine, all on this branch in sequence):core/src/builder/schema-builder.ts,core/src/protocols/{Dnd,Keyboard,Sharing}Protocol.ts,react/src/hooks/{useFocusManagement,useFocusTrap,usePageTransition,useSchemaPersistence}.ts,collaboration/src/LiveCursors.tsx(plus the comment mentions intypes/src/index.ts);packages/runner/package.json→private: true, and its entry out of.changeset/config.json's fixed group;reset*ForTesting-style helpers off the public barrels (core ×5, app-shell, types, plugin-detail), moved to@object-ui/test-supportor tagged@internal, whichever the repo's existing pattern is;@object-ui/providerstrio (DataSourceProvider,MetadataProvider,ThemeProvider+ hooks), the hand-written exemptions inone-authority-per-exported-name-6273.test.ts, andexamples/byo-backend-console/src/App.tsxrepointed at@object-ui/react;(Stop on breach; explain in the report.)
⛔ Not in this claim:
@object-ui/plugin-ai: retire or wire it is the maintainer's call;UploadProvider/ upload-adapter folding and retiring the providers package;clearSharedDiscoveryCacheindata-objectstack: seat 1's objectui#13442 holdspackages/data-objectstack/src/**, so it waits for that card;Container & model:
M, card thread,model: default tier (no path-derived mandate),effort: highClause-②: no (nothing added a consumer or author can target)
Metadata-protocol: none (code exports, not metadata). Removing a published export is still breaking for an npm consumer: per objectui's version policy, each changeset is
minorwith the removal named, nevermajor. Measure external consumers where you can (npm dependents); otherwise record them NOT MEASURED.Responsibility:
published barrels carry dead modules, test-only helpers and a duplicate provider trio; runner is published with no entry | delete or internalise them | every consumer reading the public API, and the release groupThread-read: 6385727878
Premise: holds as filed on HEAD
7981384. Re-measure every zero-consumer claim onmainbefore deleting, with a positive control, as the filing did.Serial constraints cleared: seat 1's objectui#13442 (
data-objectstack/src/**,core/src/actions/**, list/view/grid), security(components): the ui 'html' renderer injects schema.html unsanitised — the spec declares no html component; retire the type objectui#13449 (components/src/renderers/basic/**,types/src/data-display*) and security(core): WidgetRegistry loads a widget from source.url through new Function('url', 'return import(url)') — the runtime dynamic import AGENTS.md #6 forbids; retire the module source objectui#13450 (core/src/registry/WidgetRegistry.ts,types/src/widget.ts, cli, create-plugin) are not touched by the surface above; checktypes/src/index.tsagainst security(core): WidgetRegistry loads a widget from source.url through new Function('url', 'return import(url)') — the runtime dynamic import AGENTS.md #6 forbids; retire the module source objectui#13450 before editing it. Seat 4's console: four routed developer/system pages import no i18n at all (ApiConsolePage, PublicFormsPage, IntegrationsPage, AiPendingActionsPage) and DatasourceResourcePage has 17 English literals — 233 hard-coded strings #25916 pass 2 owns the locale packs for now.Writes: all PR, comment and label writes go only through objectstack's relay (
scripts/pm/fleet-write); never write with GitHub MCP.objectstack-fleet commentedon Oct 25, 2026
Claim amendment ·
domain:ui#4· 2026-10-25T04:58Z · amends claim6393574403resetActionKeyWarningsstays out. It lives incore/src/actions/actionKeys.tsand reaches the core barrel throughcore/src/actions/index.ts(export *), and seat 1's objectui#13442 holdscore/src/actions/**. It waits for that card, asclearSharedDiscoveryCachedoes. The other four core helpers sit incore/src/utilsand come offcore/src/index.ts.skills/objectui/guides/project-setup.mdteachesDataSourceProvider/MetadataProvider/ThemeProviderfrom@object-ui/providers, and calls@object-ui/runnera "universal runtime";skills/objectui/guides/architecture.mddoes the same.skills/**is governed, so this PR is Tier H (it waits for GOVERNED_APPROVERS). It opens from this card's branch, restarted onmain, after the code PR merges. The code PR stays Tier S and names both files under a follow-up line. An objectui merge publishes nothing until a human runs the release, so the gap between the two merges ships nothing stale.Generated by Claude Code
objectstack-fleet commentedon Oct 25, 2026
Claim amendment 2 ·
domain:ui#4· 2026-10-25T05:27Z · amends claim6393574403and amendment6393680911The two PRs are re-cut along the governed line. The dev measured that deleting the providers trio turns
scripts/__tests__/check-skills-paths.test.tsred. The cause is.claude/skills/objectui-contributor/guides/console-development.md, which namespackages/providers/src/MetadataProvider.tsx. So whichever PR deletes the trio must also edit a governed.claude/**file.PR 1, Tier S, lands under the maintainer's standing word: the nine modules,
runnersetprivate: trueand taken out of the fixed group, and the reset helpers off the public barrels. It contains no providers change and no.claude/**orskills/**edit.PR 2, Tier H, waits for GOVERNED_APPROVERS:
.claude/skills/objectui-contributor/guides/console-development.mdsentence;skills/objectui/guides/project-setup.mdandarchitecture.md, which still teach the trio and therunner"universal runtime".It opens from this card's branch, restarted on
main, after PR 1 merges.This keeps everything that needs no governed approval from waiting on one that does. Clause-② and Metadata-protocol are unchanged (no / none).
Generated by Claude Code
docs(quick-reference): count runner among the private packages (#13453)
249 remaining items
objectstack-fleet commentedon Nov 6, 2026
domain:ui#3 · os-tesla · session_01L9qibyZMb3aNnWtD2ukQXx
os-dev-report
{ "issue": 25921, "status": "done", "branch": "claude/project-thread-ln1pyf", "pr": "https://github.com/objectstack-ai/objectstack/pull/31056", "head": "697756bb", "session": "session_01L9qibyZMb3aNnWtD2ukQXx", "premise_still_valid": true, "summary": "Batch 11 (claim 6696974190, amendment 3 6697494793 option A): ActionExecutor and the Batch Operations pair (BatchOperationConfig, BatchOperationSummary) deleted from ui/packages/types/src/ui-action.ts and the index.ts type list, with a retirement note in each; the Transaction Support block stays (core TransactionManager reads it). One ! patch changeset 25921-types-action-executor-batch-ops.md with BREAKING, FROM/TO and runtime-export-retired x3. The first pick (seven Spec* aliases of @objectstack/spec/ui, amendment 6697084388) was made as fa034725 and reverted as ae6a942a because check-adr-0087-registration predicate 2 cannot locate declarations re-exported from a workspace subpath; the seven stay on the card.", "tests": "head 697756bb: types build (dts, clean dist + tsbuildinfo) + type-check + vitest packages/types/ VERDICT command-exit 0, Test Files 387 passed, Tests 10460 passed; dist: 0 files name the 3, control TransactionConfig in 2; reverse probe on built d.ts: 3 TS2305/TS2724, 0 on the control line. No ablation: type deletion, no tested behaviour.", "gates": "dispatch-gates --commands on 697756bb (base 81deb548): 30 derived, all run stdin closed, all exit 0 (ui vitest scripts/ 170 passed 2 skipped after building client and formula); --ran: 30 run, 0 NOT-MEASURED, 0 UNRUN; check-adr-0087-registration verified all 3 operands at ui-action.ts. Extra: check-platform-checklist --changed-from origin/main exit 0; ui check:new-line-citations 0 new. CI on 697756bb: Lint & Repo Gates, TypeScript Type Check, Lint UI, Type Check UI, Test UI (16/16 shards), Build & E2E UI success; Test Core / Build Core skipped by path filter. Records /mnt/project-files/ui-seat-3/r2026-11-06/25921-b11/", "line_budget": "80 changed lines (+28 / -52) over 3 files, under the 3000 threshold", "files_changed": [ ".changeset/25921-types-action-executor-batch-ops.md", "ui/packages/types/src/index.ts", "ui/packages/types/src/ui-action.ts" ], "dogfood_battery": "697756bb · os-verify-lock VERDICT command-exit 0 · Test Files 430 passed, 3 skipped (433) · Tests 3572 passed, 41 skipped (3613) · no failure", "deviations": [ "FRAME asks for Fixes #card; the PR says Part of #25921 because the card keeps open items, as every earlier batch did", "branch carries the reverted first pick (fa034725 + revert ae6a942a) under it: the seat ruled no force-push; the diff against main is this batch only", "shared checkout detached so the designated branch could live in worktree objectstack-issue-25921-b11", "the gate alternative was probed in a throwaway detached worktree (removed) before the seat ruled" ], "mcp_calls": "6 reads (issue_read get, issue_read get_comments x3, list_pull_requests, pull_request_read get + get_check_runs); 0 writes", "api_writes": "2 relay writes: pr_create (fleet-write run 42307908384, PR #31056, draft, body read back identical) and this os-dev-report comment via post-stamped.mjs", "open_questions": [], "security_findings": "none", "out_of_scope_findings": ["carrier: seat · noted, not filed (seat's call): check-adr-0087-registration predicate 2 cannot verify a runtime-export-retired operand that is a re-export alias of a workspace subpath such as @objectstack/spec/ui; the seven dead Spec* aliases wait on that ruling"] }objectstack-fleet commentedon Nov 7, 2026
domain:ui#3 · os-tesla · session_01L9qibxW6qraU2Z3mwupUGp
Landed 2026-11-06T23:59Z: PR #31056 merged through the merge queue as
b5fd350bdc(seat ACCEPT 6698645915, same-headCONTRACT_REVIEW_TIERPASS 6698623885 on697756bb). Batch 11 is onmain:ActionExecutor,BatchOperationConfigandBatchOperationSummaryare gone fromui/packages/types/src/ui-action.ts, and the Transaction block stays.Still on this card:
Spec*type aliases inindex.ts(SpecDashboardHeader,SpecDashboardHeaderAction,SpecFormView,SpecListColumn,SpecPageComponent,SpecPageRegion,SpecPageVariable). They have zero readers but wait on a predicate-2 ruling:check-adr-0087-registration.mjscannot locate a subpath re-export alias at the merge base (amendment 3, 6697494793)./mnt/project-files/ui-seat-3/r2026-11-06/25921-b11-census.md).The PR said
Part of #25921, so the card stays open. In this round it goes back topm:queue, the assignee is cleared andpm:dispatchedis removed.objectstack-fleet commentedon Nov 7, 2026
domain:ui#3 · os-tesla · session_01L9qibxW6qraU2Z3mwupUGp
Claim: PM loop round 11 · 2026-11-07T07:00Z · one retirement batch (batch 12)
Session:
session_01L9qibxW6qraU2Z3mwupUGpAccount:
os-tesla(the card's assignee)Branch:
claude/project-thread-kymmvj(card thread sessionsession_01L9qibvW4JtHmnJuaoYMkAY)Worktree:
objectstack-issue-25921-b12Domain:
domain:uiSeat:
domain:ui#3(batch 11 landed as PR #31056b5fd350bdc, Landed note 6699105316; split withdomain:ui#2on mailbox #30817)File surface: ONE batch inside
ui/packages/types/src/**, plus itsindex.tsnamed list, its in-package tests and prose, and one changeset. The card thread picks it with a census onorigin/main(tool25921-b8/census.cjs+rule3.cjs). The batch 11 census (/mnt/project-files/ui-seat-3/r2026-11-06/25921-b11-census.md) lists what is left, and it names the proxy misses. The thread proposes one coherent group (one module or one comment-headed block, ≤ ~20 names), and the seat names it in an amendment before any code moves. Only locally declared names: the sevenSpec*aliases re-exported from@objectstack/spec/uistay out, because they fail ADR-0087 predicate 2 (amendment 6697494793). Same rules as batches 8–11:!patch changeset with BREAKING and the ADR-0087runtime-export-retiredmarker (FROM spans 1:1 with the marker).Fenced off:
types/src/ai.tstombstones (docs/adr: a sunset rule for @deprecated tombstones — 574 tags (504 in packages/types, 640 'never' members) with no rule for when a tombstone leaves the authoring face #25912 sunset rule);./locales/zh→./locales/zh-Hans) can only be held as no-migration-prescription #30598);packages/**.If the census turns up a breach of these rules, stop and explain it in the report.
Container & model:
M,mode:thread,model: default (opus),effort: highClause-②: no (narrowing). One
CONTRACT_REVIEW_TIERreview is owed before the queue, plus the full dogfood battery on the final head.Metadata-protocol: none
Responsibility: zero-consumer names on the public
@object-ui/typesbarrel | none | every author reading the barrel and every release carrying the unused surface; measured repo-wide on the cardThread-read: 6699105316
Premise: holds for the batch the census picks on
origin/mainb631573350. The dev re-runs the census there before the first edit.Serial constraints cleared: open PRs were read at claim time (REST, the file list of each of the 22 open PRs). None touches
ui/packages/types/.Resume-from:
main@b631573350e0d3851195caeb472584790fb4cd56objectstack-fleet commentedon Nov 7, 2026
domain:ui#3 · os-tesla · session_01L9qibxW6qraU2Z3mwupUGp
席位核对 · Amendment · 2026-11-07T07:04Z · claim 6703671714 batch named
Batch 12 is three local declarations in
ui/packages/types/src/data-protocol.ts:SubqueryNode(Phase 3.3.3);FilterBuilderConfigandFilterFieldConfig.The census is
/mnt/project-files/ui-seat-3/r2026-11-06/25921-b12-census.md(origin/mainb6315733, hotcrm6961ab1).Seat check.
git grep -lwfor each name onorigin/main(CHANGELOGs excluded) hits only these files:data-protocol.tsandindex.tsfor all three;phase35-validation-types-retired-10719.test.tsforFilterFieldConfig;.changeset/25921-types-driver-datasource-block.mdforFilterBuilderConfig.hotcrm has 0 hits for all three. The module is root-only.
Positive controls kept in the same module:
OffsetNodeandAggregateNode(read by corequery-ast.ts);DateRangeFilter(read by coredashboard-filters.ts);AdvancedFilterOperator.Rulings:
phase35-validation-types-retired-10719.test.ts:161, the firing controlFilterFieldConfigbecomesDateRangeFilter. It is the same matcher on the same module, and the message is reworded to match. TheObjectValidationRulecontrol stays.FilterBuilderConfigfrom the "stays exported unchanged" sentence of.changeset/25921-types-driver-datasource-block.md, and change nothing else in that file. Both changesets compile into one release, so its notes must not say a retired name stays. This claim does not fence pending25921-*changesets, and the edit is limited to that one name.FilterBuilderDateRangePresetJSDoc (around l.574) so it points atDateRangeFilter.presetinstead of "the FilterBuilderConfig surface below".Changeset. One
!patch,.changeset/25921-types-subquery-filter-builder.md, with:runtime-export-retired×3, FROM spans 1:1;Clause-②: no (narrowing)andMetadata-protocol: none.Left on the card:
Spec*aliases (predicate 2);field-types.tsorphanVisibilityCondition;Everything else in claim 6703671714 stands.
objectstack-fleet commentedon Nov 7, 2026
domain:ui#3 · os-tesla · session_01L9qibvW4JtHmnJuaoYMkAY
os-dev-report
{ "issue": 25921, "status": "done", "branch": "claude/project-thread-kymmvj", "pr": "https://github.com/objectstack-ai/objectstack/pull/31101", "head": "736cafb4", "session": "session_01L9qibvW4JtHmnJuaoYMkAY", "premise_still_valid": true, "summary": "Batch 12 (claim 6703671714, amendment 6703700084): SubqueryNode and the Phase 3.4.5 filter builder pair (FilterBuilderConfig, FilterFieldConfig) deleted from ui/packages/types/src/data-protocol.ts and the index.ts type list, with a retirement comment at each spot. Ruling 1 A: the 10719 retirement pin's second firing control moves to DateRangeFilter. Ruling 2 A: FilterBuilderConfig dropped from the stays-exported sentence of the pending batch 8 changeset 25921-types-driver-datasource-block.md, declared on the PR as a DELIBERATE CORRECTION. Ruling 3: FilterBuilderDateRangePreset JSDoc names DateRangeFilter.preset as its reader. One ! patch changeset 25921-types-subquery-filter-builder.md with BREAKING, FROM/TO and runtime-export-retired x3.", "tests": "head 736cafb4: types build (dts, clean dist + tsbuildinfo) + type-check + vitest packages/types/ VERDICT command-exit 0, Test Files 388 passed, Tests 10470 passed; dist: 0 files name the 3, control DateRangeFilter in 4; reverse probe on built d.ts: 3 TS2305/TS2724, 0 on the control line. No ablation: type deletion, no tested behaviour.", "gates": "dispatch-gates --commands on 736cafb4 (base b6315733): 36 derived, all run stdin closed; 35 exit 0, check-empty-changeset --base origin/main exit 1 (DELIBERATE CORRECTION class, red by design, seat record confirms); --ran: 36 run, 0 NOT-MEASURED, 0 UNRUN; check-adr-0087-registration verified all 3 operands at data-protocol.ts; ui vitest scripts/ 170 passed 2 skipped. Extra: check-platform-checklist --changed-from origin/main exit 0; ui check:new-line-citations 0 new. CI on the PR: in_progress at report time. Records /mnt/project-files/ui-seat-3/r2026-11-06/25921-b12/", "line_budget": "99 changed lines (+31 / -68) over 5 files, under the 3000 threshold", "files_changed": [ ".changeset/25921-types-driver-datasource-block.md", ".changeset/25921-types-subquery-filter-builder.md", "ui/packages/types/src/__tests__/phase35-validation-types-retired-10719.test.ts", "ui/packages/types/src/data-protocol.ts", "ui/packages/types/src/index.ts" ], "dogfood_battery": "736cafb4 · os-verify-lock VERDICT command-exit 0 · Test Files 434 passed, 3 skipped (437) · Tests 3596 passed, 41 skipped (3637) · no failure", "deviations": [ "FRAME asks for Fixes #card; the PR says Part of #25921 because the card keeps open items, as every earlier batch did", "shared checkout detached so the designated branch could live in worktree objectstack-issue-25921-b12", "edit to a pending changeset (batch 8) by seat ruling 2 A; check-empty-changeset stays red on it by design" ], "mcp_calls": "5 reads (issue_read get, issue_read get_comments x3, ToolSearch load); 0 writes", "api_writes": "2 relay writes: pr_create (fleet-write run 42354514210, PR #31101, draft, body read back identical) and this os-dev-report comment via post-stamped.mjs", "open_questions": [], "security_findings": "none", "out_of_scope_findings": [ "carrier: seat · noted, not filed: remaining types candidates for later batches are listed in the PR acceptance notes and /mnt/project-files/ui-seat-3/r2026-11-06/25921-b12-census.md" ] }objectstack-fleet commentedon Nov 7, 2026
domain:ui#3 · os-tesla · session_01L9qibxW6qraU2Z3mwupUGp
Landed 2026-11-07T08:59Z: PR #31101 merged through the merge queue as
f810c34690(seat ACCEPT on736cafb4, same-headCONTRACT_REVIEW_TIERPASS 6704431558). Batch 12 is onmain:SubqueryNode,FilterBuilderConfigandFilterFieldConfigare gone fromui/packages/types/src/data-protocol.ts. The batch 8 changeset sentence no longer namesFilterBuilderConfig; that is the DELIBERATE CORRECTION confirmed in the review record.Still on this card:
Spec*type aliases inindex.ts(SpecDashboardHeader,SpecDashboardHeaderAction,SpecFormView,SpecListColumn,SpecPageComponent,SpecPageRegion,SpecPageVariable). They wait on a predicate-2 ruling for subpath re-export aliases (amendment 6697494793).field-types.tsorphanVisibilityCondition, and the rest of the b12 census (/mnt/project-files/ui-seat-3/r2026-11-06/25921-b12-census.md).The PR said
Part of #25921, so the card stays open. In this round it goes back topm:queue, the assignee is cleared andpm:dispatchedis removed. This seat signs off after this note.