Skip to content

[pm:seat] domain:spec @ objectui — 🟢 os-justin #5734

Description

@os-sam

Seat registration post for the domain:spec @ objectstack-ai/objectui lane — the repo-split half of the spec lane (maintainer 2026-08-23 roster ruling).

Body is authoritative; title and assignee are derived views. Single writer: the sitting seat PM. Comments are audit only and never carry state. Position description is versioned in references/lanes/spec.md (objectstack); this post carries state only. Earlier archives are readable through the edit history (2026-08-24 os-sam; 2026-09-02 yinlianghui; 2026-09-05T08:35Z os-sam shift-end ledger; 2026-09-05T10:3xZ / 11:05Z / 11:36Z / 12:07Z / 12:36Z this seat's earlier revisions).

1 · 🟢 current PM

2 · ledger (execution column refreshed 13:17Z)

Rulings executed this shift

card ruling execution
#7122 (+ #7635 folded) six-item chain (director 5549255921): order 2 → 1 → 3 → 6; item 4 = #7714; item 5 = #7716; item 6-B = #7715; upstream objectstack#15843 driven by the session_0114Y… dev on PR #7685; this seat's dev stood down (5551451120). ⛔ Chain-blocking: Console Performance Budget FAIL on the branch (eager closure 4137.7 KB vs 3191.4 KB); ceiling not raised; cause unmeasured; maintainer asked in chat
#7101 A (5536049455) LANDED — PR #7717 f96a781 MERGED 11:07Z
#6854 B2 (5548581017) LANDED — PR #7720 adb2a86 MERGED 12:04Z; card closed, pm:dispatched stripped (5551709295); follow-ups #7719, #7721
#6972 sanitize remove (triage collapse); components remove (seat discretion, veto window) LANDED — PR #7718 446d93d MERGED ~12:14Z; card closed, stripped (5551759703)
#6938 residue: declare CheckboxSchema.wrapperClass LANDED — PR #7723 b74a859 MERGED 12:26Z; card closed, stripped (5551821448); follow-ups #7722 (types), #7724 (docs)
#6751 card prescription (triage ×2) LANDED — PR #7729 a00db9ef MERGED 12:39Z (ACCEPT 5551824286, Clause-② no); card closed — strip reading at this boundary
#7530 A (5536048209): CEL envelope on visible / hidden / disabled via a hoisted ExpressionWireSchema PR #7726 in the merge queue since 13:01Z (pr-7726-a00db9ef…): PASS 5551770555 on 649c920 + delta PASS 5551906272 on a415c0c0 (docs/pin patch round); label cleared 5551907646; landing note 5551993921; next: MERGED by two readings, then strip
#7578 card candidate confirmed by triage (5548829018) PR #7730 in the merge queue since 13:01Z, behind #7726 (pr-7730-c354ce5d…): ACCEPT 5551911142 (Clause-② no); landing note 5551994546
#7433 triage: route 2 mandatory (5548620618) PR #7731 40171f5f — ACCEPT 5551960181 (Clause-② no); farm 29 success + 3 skipped at 13:16Z; flipped ready 13:17Z; auto-merge next
#7295 reading 1 under a declared veto window (triage delegation 5548376176) PR #7732 fdd09f70 — Lint red on 4b0f366c (pin {} type) → patch round 1 (5551976750) → in-seat contract review PASS 5552020607 at tier; PR label cleared with provenance 5552022295; flip once the farm on fdd09f70 completes (6 runs in progress at 13:06Z)
#7361 no ruling; triage 5548503487 (docs correction, renderers authoritative, five boundaries) in flight (claim 5551918170, 12:47Z), opus, XS, Clause-② no
#7069 no ruling; triage 5548207236 (audit first, ledger second) in flight (claim 5551965304, 12:56Z), opus, M, Clause-② no
#6951 (+ #7016 folded into PR A) A1 + B1 (maintainer batch #25, 2026-09-04; director record 5534412859): retire TextSchema.value, retire TreeViewSchema.data, nodes stays optional, no refinement; two PRs in flight (claims 5552053770 / 5552055050, 13:12Z), fable, S + S, Clause-② yes; PR A claude/issue-6951-text-content-only (Fixes #7016, premise = corpus distribution measurement with a value-majority STOP), then PR B claude/issue-6951-treeview-nodes-only (Fixes #6951)
#5741 B (5511170986) — text contradicted by measurement in the inbox (needs-user-decision, assignee cleared): retired spellings FAULT rather than "evaluate as absent"; second binding site in packages/react/src/hooks/useExpression.ts; four-facet block + three recommendations (Q1 A / Q2 A / Q3 (i)) at 5551809107; no maintainer answer on the card (last touch 12:26Z) or in chat; dev filed #7727, #7728 (Blocked-by: #5741)
#6910 retire EventHandlersSchema (5534414562) pm:blocked + Blocked-by: objectstack#15886 (5551860736): objectui + objectstack measured 0 consumers (control live); cloud / hotcrm unreadable from this seat → seam card objectstack#15886 (repo:cloud + repo:hotcrm readers)

Decision inbox (this lane)

Blocked / on-hold chains (⛔ not dispatchable)

Queue snapshot (13:17Z; 41 open domain:spec cards read 13:07Z)

Landed this shift

card PR merged
#7101 #7717 f96a781 11:07:34Z
#6854 #7720 adb2a86 12:04:34Z
#6972 #7718 446d93d ~12:14Z
#6938 #7723 b74a859 12:26:16Z
#6751 #7729 a00db9ef 12:39Z

Cards filed / appended this shift

Filed by this seat: #7714 · #7715 · #7716 · #7724 · objectstack#15843 · objectstack#15886 (the #6910 seam card). Filed by this seat's devs: #7719, #7721 (#6854); #7722 (#6938); #7725 (#7530); #7727, #7728 (#5741); #7733. Appended with evidence: #6893, #5831, #7716, #7469.

3 · hot-file serial queue (file / region granularity)

surface (region) held by
PR #7685's 19 files (pnpm-lock.yaml · .changeset/7122-* · packages/app-shell/src/views/metadata-admin/** · packages/auth/README.md + auth-spec-parity.test.ts · packages/core/src/actions/actionKeys.ts · packages/plugin-form/src/submitRedirect.test.ts · three packages/types/src/__tests__/*-spec-parity.test.ts · scripts/check-spec-symbol-derivation.mjs) #7122 chainsession_0114Y… dev, branch claude/issue-7122-spec-pin-17-3-0
packages/types/src/base.ts (three predicate members) · zod/base.zod.ts (:158–:219 region) · zod/form.zod.ts top region (hoist) · expression.ts / zod/expression.zod.ts (new) · index.ts / zod/index.zod.ts (one export each) · 11 packages/types/src/__tests__/* pins incl. zod-mirror-parity.test.ts (one EXCLUSIONS row) · packages/react/src/__tests__/SchemaRenderer.{predicateEnvelopeDeclared,hiddenDeclaredGate}.test.tsx · content/docs/api/schema-reference.md (3 rows) · 27 content/docs/components/** rows #7530 — PR #7726 (in the queue)
packages/types/src/zod/base.zod.ts (ClassNameStylePropsSchema :433–436 region only) · one pin · changeset #7578 — PR #7730 (in the queue, behind #7726)
packages/types/src/__tests__/zod-mirror-parity.test.ts (header prose sites + EXPECTED_MIRROR_PAIRS and the derived-count cases in the runtime-census region; ⛔ no MIRRORS / ledger / EXCLUSIONS row) · empty changeset #7433 — PR #7731 (flipped 13:17Z)
packages/types/src/complex.ts (ChatMessage block) · zod/complex.zod.ts (ChatMessageSchema) · one pin · content/docs/plugins/plugin-chatbot.mdx (three example annotations) · changeset #7295 — PR #7732 (PASS; flip pending)
packages/types/src/layout.tsContainerSchema.maxWidth docblock (:215–:219) and FlexLayoutProps.align docblock (:285–:289) only · one pin · changeset #7361claude/issue-7361-layout-default-jsdoc
packages/types/src/__tests__/zod-mirror-parity.test.ts — a NEW ledger region (mirror-wider-than-declared) + the header's "two covered directions" sentence; ⛔ no existing ledger / MIRRORS / EXCLUSIONS entry moves #7069claude/issue-7069-parity-mirror-wider-ledger
packages/types/src/layout.ts — the TextSchema block only (:76–:114) · zod/layout.zod.ts — the TextSchema const · packages/components/src/renderers/basic/text.tsx:162, :167 (the || schema.value limb) · content/docs/components/basic/text.mdx + corpus text nodes authoring value · pins (#6150 flips + one new) · ≤1 parity-ledger row · changeset #6951-A (+ #7016) — claude/issue-6951-text-content-only
packages/types/src/data-display.ts — the TreeViewSchema block only (:1270–…) · zod/data-display.zod.ts — the TreeViewSchema const (:336–…) · packages/components/src/renderers/data-display/tree-view.tsx:105 (the || schema.data limb) · content/docs/components/data-display/tree-view.mdx · packages/types/examples/data-display-examples.json (tree-view example) · pins (#7533 flips + one new) · ≤1 parity-ledger row · changeset #6951-Bclaude/issue-6951-treeview-nodes-only (after A)
(blocked) zod/base.zod.ts EventHandlersSchema :394 · zod/index.zod.ts:60 · zod-mirror-parity.test.ts ledger row 'base.zod.ts#EventHandlersSchema' #6910 — after objectstack#15886's readings
(inbox) packages/core/src/evaluator/listConditional.ts + rowPredicateCanon.ts · packages/react/src/hooks/useExpression.ts · their pins · @object-ui/core + @object-ui/react changeset #5741 — after the maintainer answers

Shared files, different regions this batch: zod/base.zod.ts (PR #7726 predicate members vs PR #7730 ClassNameStylePropsSchema, both queued; later #6910 EventHandlersSchema); zod-mirror-parity.test.ts (PR #7726 one EXCLUSIONS row vs PR #7731 header + census vs #7069 a new ledger region vs #6951 at most one ledger row per PR); layout.ts (#7361 two docblocks vs #6951-A the TextSchema block). All devs told to merge main before opening and after the sibling lands; the queue arbitrates. Read-only for everyone this batch: packages/core/src/evaluator/declaredPredicate.ts (#7530's ruling); packages/plugin-chatbot/** (#7295); renderers stay authoritative for #7361. skills/** (governed) is out of every surface this batch.

Cross-lane: the domain:ui seat holds #6939 (pm:dispatched; all groups on main). Declarations posted on #5560 for the #7635 fold and the #6854 runner edit.

4 · platform facts (inherited 09-05 + this shift's; adopt without re-testing)

  • REST from this seat is session-gated: GET /rate_limit answers 200 (core 15000) but a repo-scoped read answers 403 "GitHub access is not enabled for this session" ⇒ MCP + git only. Queue membership by git: git -C /home/user/objectui ls-remote origin 'refs/heads/gh-readonly-queue/main/*' (the Bash cwd resets between calls — always pin -C). check-clause2-carriers.mjs --pair N exits 3 from this seat — the three limbs are verified by hand and said so in the landing note.
  • Ready-for-review flip re-runs only Governed Surface Queue Guard and turns mergeable_state momentarily unstable / unknown; enable_pr_auto_merge echoes empty method / enabled at even when it worked ⇒ the queue-ref probe (appears within ~1 min) is the confirmation. A behind PR enqueues fine. The queue lands PRs in order behind each other's queue tips (pr-N-<previous tip>).
  • check_suite.completed fires against stale SHAs ⇒ re-read the head, then the full farm by name, before any flip. send_later fire notices can arrive minutes late (the 13:03Z patrol was delivered 13:07Z) — act on re-read state, never on the fire time.
  • A Type Check job's failing step need not be tsc; Actions log retention truncates to post-job cleanup ⇒ "build failed" is a machine reading, the cause is not assertable from that log. This shift's measured cause of the 17.3.0 build failure: SchemaDiffEntryKind gained unreachable (ValidationPanel TS2741). get_job_logs with the default tail can miss a single eslint error — raise tail_lines (420 found PR fix(types): declare avatar and avatarFallback on ChatMessage, on both faces (objectui#7295) #7732's one error).
  • Docs schema rows live in fences of two languages: ts/tsx fences are compiled by Doc Snippet Type Check against the built types dist (a row spelled { dialect?, source } fails with TS7008); plaintext fences are not. Read the fence language before editing a schema row; a dev's local check:doc-snippets needs the full built closure or reports PRECONDITION NOT MET (not a measurement). A line-anchored fence pin (check-doc-snippet-types.test.ts README_SAMPLE_FENCE_LINE) turns Test (shard 1/4) red on any edit above the fence in plugin-markdown.mdx.
  • CI Lint runs eslint . per package and fails on ONE error (@typescript-eslint/no-empty-object-type on a {} type reddened PR fix(types): declare avatar and avatarFallback on ChatMessage, on both faces (objectui#7295) #7732) — dispatches name pnpm --filter <pkg> lint as a gate.
  • MCP search_issues is phrasing-sensitive — a zero without a live control is not a reading. MCP list_issues with two labels returns the OR of them, not the intersection — read the lane with one label and intersect locally. issue_read get_labels does not resolve a PR number — read PR labels with pull_request_read get.
  • skip-changeset is a phantom label in objectui; the correct "no release" form is an empty-frontmatter changeset. pnpm --filter X exec vitest run is refused by the repo's invocation guard — use the root-relative path form. pnpm run check:changeset-fixed / check:changeset-no-major are not script names — run the .mjs files directly. Retirement changesets are minor opening "Breaking for authored metadata:" (finding(types): MarkdownSchema.sanitize and .components are declared and mirrored but read by no renderer — and sanitize implies a switch that does not exist #6972, finding(types): designer-surface DashboardConfig.aria / DashboardConfigSchema.aria declare a { label, description } aria object nothing reads — and the panel they document does not consume them #5852); check-changeset-no-major forbids major.
  • .describe() strings citing a read-site file:line and the issue number are house style under packages/types/src/zod (26 on main at a00db9ef, wrapperClass among them) — not a review finding.
  • A card auto-closed by a merged Fixes PR keeps its pm:* label — strip it at the MERGED reading (reproduced ×5 this shift). finding can survive triage grading (finding(plugin-chatbot): per-message avatar / avatarFallback work end to end but no authoring-facing type declares them — #4424's RuntimeOnlyMessageKeys picked only three keys #7295 carried finding + priority:p3 + pm:queue); the execution seat leaves it — it is triage's to drop at grading.
  • check-governed-merges.mjs refuses rather than under-reports on a shallow clone; --test <paths> works for objectui paths (run from /home/user/objectstack). Next audit anchor: --since-ref objectstack=d701e657d74d --since-ref objectui=4ce14f125975.
  • objectstack's dispatch-gates.mjs does not answer for objectui; tier and Clause-② here are judged from card content. The shallow clone has no usable blame / git log -S, and git log -- <paths> sees one commit.
  • The mutex's reading 3 only counts Claim: on pm:dispatched cards — a re-engaged session working a pm:queue card's branch is invisible to it (this shift's collision). Filed with the shift-end findings.
  • Phase-1 of the row-predicate canon shipped in @object-ui/core@17.6.0 (npm 2026-08-24) while its changeset .changeset/row-predicate-record-canon-5330.md is still pending on main (895 changesets pending; the version PR consumed changesets before feat(core,react): declare record.* the row-predicate canon and warn on the two deprecated spellings #5737 merged) — the CHANGELOG will attribute it to 17.7.0. Release-process observation, for the release seat.
  • Install surface: objectui lockfile @objectstack/spec@17.2.0; npm latest 17.3.0; objectui main a00db9ef (13:09Z). Console performance budget headroom on main is thin (3186.2 / 3191.4 KB on PR feat(types): declare the CEL envelope on visible / hidden / disabled as one shared ExpressionWire (objectui#7530, ruled A) #7726); 17.3.0 blows it (+~950 KB) — cause unmeasured.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions