Skip to content

[pm:seat] domain:spec @ objectui — ⚪ vacant (shift-end brief 2026-09-05T18:21Z, 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 … 17:37Z this seat's earlier revisions).

1 · ⚪ vacant — shift-end brief (收班简报), 2026-09-05T18:21Z

2 · ledger (final, 18:21Z)

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: family bump landed on the branch, build 43/43, check:spec-symbols 0, unit red 7 files / 9 assertions all decision-gated; remaining reds: Bundle Analysis +274.7 KB (maintainer), Type Check 1 item (#7635 fold, authorised 5552811950), shards (#7635 family / Task C maintainer items). ⛔ Not landable until the budget question is ruled
#7101 A (5536049455) LANDED — PR #7717 f96a781 MERGED 11:07Z
#6854 B2 (5548581017) LANDED — PR #7720 adb2a86 MERGED 12:04Z; stripped (5551709295); follow-ups #7719, #7721
#6972 sanitize remove (triage collapse); components remove (seat discretion, veto window) LANDED — PR #7718 446d93d MERGED ~12:14Z; stripped (5551759703)
#6938 residue: declare CheckboxSchema.wrapperClass LANDED — PR #7723 b74a859 MERGED 12:26Z; stripped (5551821448); follow-ups #7722, #7724
#6751 card prescription (triage ×2) LANDED — PR #7729 a00db9ef MERGED 12:39Z (ACCEPT 5551824286); stripped 12:56Z
#7530 A (5536048209): CEL envelope via a hoisted ExpressionWireSchema LANDED — PR #7726 c354ce5d MERGED 13:16Z (PASS 5551770555 + delta PASS 5551906272); stripped (5552094677); follow-up #7725
#7578 card candidate confirmed by triage (5548829018) LANDED — PR #7730 9587fc95 MERGED 13:16Z (ACCEPT 5551911142); stripped (5552095036)
#7433 triage: route 2 mandatory (5548620618) LANDED — PR #7731 3bde19ba MERGED 13:34Z (ACCEPT 5551960181); stripped (5552799958)
#7295 reading 1 under a declared veto window (triage delegation 5548376176) LANDED — PR #7732 858cd72e MERGED 13:35Z (PASS 5552020607); stripped (5552800452); veto window stays open
#7361 no ruling; triage 5548503487 LANDED — PR #7736 e546222b MERGED 15:39Z (ACCEPT 5552118929; one infra re-run green); stripped (5552920046); follow-ups #7734, #7735
#7069 no ruling; triage 5548207236 LANDED — PR #7758 2760075f MERGED by 16:20Z (ACCEPT 5552962639; fifth ledger WiderThanDeclared); stripped (5553134701); follow-ups #7759, #7760
#6956 no ruling; triage 5548153733 LANDED — PR #7763 4dfdcc3c MERGED 16:35Z (PASS 5553073374); stripped (5553228393); follow-up #7762
#6951 (+ #7016 folded into PR A) A1 + B1 (maintainer batch #25; director record 5534412859) LANDED, both halves — PR A #7761 5ad86dde 16:49Z (PASS 5553212632; #7016 stripped 5553309742), PR B #7769 16a725f9 17:03Z (PASS 5553215517); stripped (5553393450); residue #7770
#7081 no ruling; triage 5527740245 LANDED — PR #7768 4388f713 MERGED 16:59Z (PASS 5553183812); stripped (5553363012); follow-up #7767
#7322 no ruling; item ① only item ① LANDED — PR #7774 669d71bf MERGED 17:23Z (PASS 5553334000; groupBy REQUIRED ruled A); card → pm:queue + pm:retriage (item ② re-lane, 5553513017), assignee cleared; dev filed #7772, #7773; seat filed #7780
#7279 no ruling; triage 5548347502 LANDED — PR #7776 1b69ca58 MERGED 17:40Z (ACCEPT 5553451329; route LOCAL, counts 1 / 2 + 13 / 94, header pinned); stripped (5553609810); follow-up decision card #7779
#7313 no ruling; triage 5548431295 LANDED — PR #7777 554f2b6b MERGED 17:59Z (PASS 5553491248 + delta PASS 5553558086 after the #7774 merge); stripped (5553729025); dev filed #7778; seat filed #7780
#7542 no ruling; triage classified three directions LANDED, direction 1 under a veto window — PR #7782 2fcefb95 MERGED 18:16Z (PASS 5553667716); stripped (5553831964); direction 2 open (decision batch item 8)
#7493 no ruling; triage 5548740471 STOPPED at the dispatch's zero-reader condition (report 5553590885: 245 writes, 0 production readers, 11 test reads) → inbox (needs-user-decision, 5553603343; recommend A retire); dev filed #7781
#7434 none inbox (needs-user-decision, 5553465016; recommend BaseSchema)
#7779 none inbox (needs-user-decision; recommend B)
#7068 none — triage's split contradicted by measurement inbox (needs-user-decision, 5552982130; recommend 1)
#5741 B (5511170986) — text contradicted by measurement inbox (needs-user-decision, 5551809107; recommend A)
#6910 retire EventHandlersSchema (5534414562) pm:blocked + Blocked-by: objectstack#15886 (5551860736)

Landed this shift (19 PRs, 18 cards)

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
#7530 #7726 c354ce5d 13:16:16Z
#7578 #7730 9587fc95 13:16:16Z
#7433 #7731 3bde19ba 13:34:23Z
#7295 #7732 858cd72e 13:35:51Z
#7361 #7736 e546222b 15:39:52Z
#7069 #7758 2760075f by 16:20Z
#6956 #7763 4dfdcc3c 16:35:03Z
#7016 (+ #6951 A) #7761 5ad86dde 16:49:09Z
#7081 #7768 4388f713 16:59:08Z
#6951 (B) #7769 16a725f9 17:03:44Z
#7322 item ① #7774 669d71bf 17:23:20Z
#7279 #7776 1b69ca58 17:40:14Z
#7313 #7777 554f2b6b 17:59:53Z
#7542 #7782 2fcefb95 18:16:31Z

Cards filed / appended this shift

Filed by this seat: #7714 · #7715 · #7716 · #7724 · #7770 · #7779 (decision) · #7780 · objectstack#15843 · objectstack#15886 · objectstack#16003 · objectstack#16004 · objectstack#16005 · objectstack#16006. Filed by this seat's devs: #7719, #7721 (#6854); #7722 (#6938); #7725 (#7530); #7727, #7728 (#5741); #7733; #7734, #7735 (#7361); #7759, #7760 (#7069); #7762 (#6956); #7767 (#7081); #7772, #7773 (#7322); #7778 (#7313); #7781 (#7493). Appended with evidence: #6893, #5831, #7716, #7469, #7122 (5552811950), #5560 (5552135024, 5553396008, 5553729725), #7068, #7434, #7322, #7493.

3 · hot-file serial queue (file / region granularity) — nothing of this lane in flight

surface (region) held by
PR #7685's files (pnpm-lock.yaml (family bump, lockfile-only) · .changeset/7122-* · packages/app-shell/src/views/metadata-admin/** incl. ValidationPanel.tsx · packages/auth/README.md + auth-spec-parity.test.ts · packages/core/src/actions/actionKeys.ts · packages/plugin-form/src/submitRedirect.test.ts · packages/types/src/__tests__/*-spec-parity.test.ts · scripts/check-spec-symbol-derivation.mjs · packages/app-shell/src/__tests__/spec-symbol-parity.test.ts (#7635 fold, authorised)) #7122 chainsession_0114Y… dev, branch claude/issue-7122-spec-pin-17-3-0 (339885d0)
(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 · changeset #5741
(inbox) packages/types/src/crud.ts (ActionCallback, ActionSchema.onSuccess / onFailure) · zod/crud.zod.ts · content/docs/core/enhanced-actions.mdx (three fences) · content/docs/guide/schema-overview.md:277 · pins #7068
(inbox) zod/objectql.zod.ts — the ObjectViewSchema const (ten keys) · the UnmirroredDeclared entry · pins · changeset #7779
(inbox) packages/types/src/base.ts ComponentInput.defaultValue (+ label, advanced per #7781) · zod/base.zod.ts ComponentInputSchema · the 245 authoring sites · 9 test files #7493 (+ #7781)
(inbox) packages/types export only if UIComponent is chosen #7434
(retriage) packages/plugin-kanban/src/ObjectKanban.tsx ObjectKanbanComponentProps.schema #7322 item ②domain:ui after triage's answer

Read-only for the lane by ruling or ownership: packages/core/src/evaluator/declaredPredicate.ts (#7530's ruling); packages/plugin-grid/** (#7762); packages/plugin-kanban/** (the ui seat's #7664); packages/plugin-calendar/** (#7311, domain:ui); packages/core/** (#7493 ②); renderers stay authoritative.

Cross-lane: the domain:ui seat holds #6939 and in flight #7664 (complex.*, barrels, registry.ts, plugin-kanban/**), #7443. Declarations on #5560: 5552135024 (released 5553396008 and 5553729725); nothing of this lane declared there now.

4 · platform facts (inherited 09-05 + this shift's; adopt without re-testing) — rows also filed as objectstack#16006

  • 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. Node resolution of the installed spec pin from the shared checkout fails from an eval script — spec-side readings are the dev's, through the pin from a worktree.
  • An account usage-window 429 terminates every subagent mid-run and the seat itself; the MCP servers drop and reconnect. Subagents resume via SendMessage with their transcript intact — re-read origin/main, the cards and every branch tip first, then send a resume order that names what moved. Timers that fired into the gap are delivered after the reset; execute them on re-read state. A context compaction mid-shift is survivable the same way.
  • 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>), across lanes; a lone PR drains in ~15 min, three deep in ~30 min. A background until watcher with a fixed poll budget can time out one poll before the landing — re-read the queue live before declaring anything.
  • check_suite.completed fires against stale SHAs ⇒ re-read the head, then the full farm by name, before any flip. send_later fire notices are delivered only between turns and can arrive minutes late — act on re-read state; work a timer asks for may already be done.
  • Corepack's pnpm download can crash undici (assert(!this.paused)) before a check body runs — infra, eligible for the one permitted re-run (actions_run_trigger rerun_failed_jobs); PR docs(types): align two layout @default docblocks with the renderer fallbacks #7736's Docs Route Eager Closure Check went green on the re-run.
  • A Type Check job's failing step need not be tsc; turbo run type-check aborts at the first failing task — add --continue. Actions log retention truncates to post-job cleanup. get_job_logs with the default tail can miss a single eslint error — raise tail_lines. TypeScript 6 refuses baseUrl (TS5101) — a probe tsconfig carrying it compiles nothing; an ablation leg built on it is VOID.
  • pnpm update re-introduces duplicate copies by floating peer versions; a family bump goes: temporarily raise the range → resolve → restore the manifests → reinstall (lockfile-only).
  • Docs schema rows live in fences of two languages: ts/tsx fences are compiled by Doc Snippet Type Check; plaintext / json fences are not. A docs page whose fences import a legacy type cannot teach the spec's shape ahead of the type change. A dev's local check:doc-snippets needs the full built closure; the substitute is a differential compile of the touched fences against the merge-base. Doc line numbers in a card drift within hours — dispatches cite the section name beside the line.
  • CI Lint runs eslint . per package and fails on ONE error.
  • MCP search_issues is phrasing-sensitive. list_issues with two labels returns the OR; with one label + since it is the cheapest lane probe. issue_read get_labels does not resolve a PR number — use pull_request_read get. A long get_comments result is spilled to a file.
  • skip-changeset is a phantom label in objectui; the "no release" form is an empty-frontmatter changeset. pnpm --filter X exec vitest run is refused by the repo's invocation guard — root-relative path form. Retirement changesets are minor opening "Breaking for authored metadata:"; check-changeset-no-major forbids major. Widenings are graded minor by this seat (finding(types,docs): BaseSchema.hidden is declared boolean, but the renderer evaluates it as a predicate — the third key on visible/disabled's evaluated path, never widened #7455, finding(types): DropdownMenuSchema.trigger declares a single SchemaNode while its zod mirror, its sibling ContextMenuSchema, and its own shipped defaultProps all use the array form #7081, finding(types): objectName is declared REQUIRED on ObjectGanttSchema and ObjectCalendarSchema while both renderers resolve data and staticData FIRST — the documented static-data route cannot be annotated #7313); the 24 catalog entries fail safeValidateSchema because the Zod mirror names a key its renderer never reads (8 components) #6939 precedent graded the record-source widening patch. A tombstone on an extended schema shadows a same-named BaseSchema member on both faces.
  • .describe() strings citing a read-site file:line and the issue number are house style. @default is a member-level JSDoc tag. Zod mirrors annotated z.ZodType<any> read unknown on the input face (finding(types): the recursion-breaking annotation on 10 zod mirrors erases their published input face to unknown — the single-or-list producer objectui#7069 named systematic is unauditable at the type level because of it #7760). No objectui gate reads an ADR-0087 disposition marker. The runtime render path runs @object-ui/core's structural validateSchema, not zod. A three-way merge of ADJACENT blocks produced no textual conflict — verify by delta equality (md5 of hunk bodies).
  • A card auto-closed by a merged Fixes PR keeps its pm:* label (×18; objectstack#16005). A Refs PR closes nothing: the card's transition is the seat's (objectstack#16003). finding can survive triage 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. The shallow clone has no usable blame / git log -S. The half-state patrol anchor does not exist in objectui (The half-state patrol needs its anchor issue created and HALF_STATE_ANCHOR_ISSUE set — a maintainer action outside GitHub's API surface for agent seats #5986).
  • The mutex's reading 3 only counts Claim: on pm:dispatched cards (objectstack#16004).
  • Phase-1 of the row-predicate canon shipped in @object-ui/core@17.6.0 while its changeset is still pending on main — for the release seat.
  • Install surface: objectui lockfile @objectstack/spec@17.2.0; npm latest 17.3.0; objectui main 2fcefb95 (18:17Z). Console performance budget: main ~3186 / 3191.4 KB; the When bumping @objectstack/spec past objectstack#14075: list-view spec-parity pins need the CalendarConfig titleField-optional update #7122 branch after the family bump 3466.4 KB (+274.7 KB, real growth — see §1).

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions