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
Flip the ListView map liveness verdict planned → live once the objectui forwarding lands #11442
packages/spec/liveness/view.json records the ListView map block as planned, and states its own flip condition verbatim:
PLANNED, deliberately not live, and the gap is one spread. … objectui ListView.tsxcase 'map' forwards only schema.options?.map and never the view-level map block, so authoring this key changes nothing at runtime until the pre-registered objectui consumer card (Blocked-by #9340) lands the view→renderer forwarding. Flip to live citing that ListView.tsx read when it lands — measured objectui at the checkout current on 2026-08-17.
That forwarding has now been implemented in objectui: objectstack-ai/objectui#5908 (draft) makes ListView.tsx's case 'map' forward the view-level block to plugin-map, and additionally closes the same hole in the visualization-switcher capability gate and on the ADR-0047 InterfaceListPage path.
Blocked-by: objectstack-ai/objectui#5908 — the ledger claim only becomes true once that merges.
What the flip needs
status: planned → live
a citation of the production reader, per this ledger's own convention of citing the reader first (see the sharing entry's 2026-08-10 re-citation note for why a test alone is the weaker half). The reader after refactor(trigger-record-change): 摘掉 input.doc 这条没有生产者的防御性 alias 读 (#5671) #5908 is packages/plugin-list/src/ListView.tsx, resolveListMapConfig + case 'map'; the pins are packages/plugin-list/src/__tests__/ListView.mapViewLevelConfig.test.tsx and the end-to-end packages/plugin-map/src/ObjectMap.listViewMapConfigReach.test.tsx.
verifiedAt / evidenceScope: cross-repo, re-measured against whatever objectui commit is current at flip time — not copied from here.
⚠️ Do not flip before #5908 merges: until then the ledger's planned verdict is the accurate one.
Filed by the objectui os-dev seat that implemented the consumer half (session 01EuPCi56cnGyykygi3z9w4m), per objectui#5042's own instruction to file the ledger flip on this queue rather than edit the ledger from objectui. Unassigned.
Triage (daily round, session session_01Kktexqp6uVuFMztvvTMf3V, 2026-08-24): lands in packages/spec/liveness/view.json → domain:spec + pm:queue, Task. Blocker objectui#5908 is MERGED — flip planned → live citing the production reader (plugin-list/src/ListView.tsxresolveListMapConfig + case 'map') per the ledger's reader-first convention; re-verify the read on the merged objectui ref before flipping. Fold candidate with #11443.
Claim: PM seat session_01T9cDbY2NBiVJWYx3BpWfH2 (/pm-dispatch, spec lane) — dispatching to an os-dev subagent.
Session: session_01T9cDbY2NBiVJWYx3BpWfH2
Branch: claude/issue-11442-map-liveness-flip
Worktree: ../objectstack-11442 (created by the dev agent, per-task)
Domain: domain:spec
File surface: packages/spec/liveness/view.json (the ListView map entry only).
Container & model: os-dev subagent, sonnet (S mechanical — the card enumerates the exact flip contents).
Clause-②: no — liveness ledger data, no contract acceptance change, no packages/spec/src/**.
Premise verified at claim: the ⚠️ blocker is discharged — objectui#5908 MERGED 2026-08-23T19:52:08Z (head 304ad7579, resolveListMapConfig + case 'map' forward + switcher gate + InterfaceListPage path, with the two named pin tests in the diff). The ledger's planned verdict is now the stale one.
Evidence discipline per the card: cite the production reader FIRST (ListView.tsx resolveListMapConfig + case 'map'), pins second; verifiedAt/evidenceScope: cross-repo re-measured against the objectui commit current at flip time (read-only measurement in /home/user/objectui after fetching origin/main), never copied from the card.
Serial constraints: none — view.json untouched by in-flight work (#11437 in field.zod.ts, #11440 in .gitignore/check-skill-examples).
{
"issue": 11442,
"status": "done",
"branch": "claude/issue-11442-map-liveness-flip",
"pr": "https://github.com/objectstack-ai/objectstack/pull/11563",
"premise_still_valid": true,
"summary": "Flipped view.list.map in packages/spec/liveness/view.json from planned to live: objectui#5908 (merged 2026-08-23T19:52:08Z, squash commit e2e8e68) landed resolveListMapConfig, which merges the view-level map block over the legacy options.map bag before ListView.tsx's case 'map' forwards it into object-map, and the same merged config now feeds the visualization-switcher's capability gate too. Re-measured cross-repo against objectui origin/main@08ca73f8 (not copied from the card): grep-confirmed resolveListMapConfig + case 'map' in ListView.tsx and both named pin tests exist at that ref. Rewrote the entry's note (reader-first: ListView.tsx resolveListMapConfig/case 'map', pins second: the two named tests), regenerated the generated state-counts.md (view: planned 1->0, live 77->78), and updated the view row's Notes cell in liveness/README.md which described the now-discharged planned condition. No authorWarn was present on the entry, so nothing to drop there.",
"tests": "All local gates run under scripts/pm/os-verify-lock.sh against commit 9044e986f2 (PR head). pnpm --filter @objectstack/spec run check:liveness: '✓ every governed-type property ... every live entry's repo-local evidence path resolves and every path:NNN citation names a line that file actually has ... the README state table carries a row for each of the 31 governed type(s) it claims to index.' + '✓ packages/spec/liveness/state-counts.md is current'. check:empty-state: '✓ all classified (1 closed, 2 open, 4 output, 9 scope)'. check:strictness-ledger and check:variant-docs green. Repo-wide gates derived via node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack against the actual diff (view.json, README.md, state-counts.md, the changeset) all green: check:merge-driver, check:published-files, check:slot-lookup, check:test-source-alias, check:type-source-resolution, check-ci-filter-parity.mjs, check-dev-prereqs.mjs --self-test (its own header says CI runs --self-test only; the full existence/freshness scan is a pnpm-dev local preflight, not PR-scheduled), check-plugin-teardown-shape.mjs, docs-audit/check-affected-docs.mjs, check:changeset-gate-self-tests, check:objectui-changeset, check-adr-0087-registration.mjs ('this PR adds no declared-breaking changeset (1 non-breaking changeset(s) seen)'), check-changeset-no-major.mjs, check-empty-changeset.mjs ('1 declaring changeset(s) added'). node scripts/check-nul-bytes.mjs: '✓ OK (scanned 6463 text file(s) ...)'. Cross-repo measurement transcript (objectui commit, grep hits for the reader and both pin files) is reproduced in full in the PR body.",
"open_questions": [],
"out_of_scope_findings": []
}
Activity
claude commentedon Aug 24, 2026
Triage (daily round, session
session_01Kktexqp6uVuFMztvvTMf3V, 2026-08-24): lands inpackages/spec/liveness/view.json→domain:spec+pm:queue, Task. Blocker objectui#5908 is MERGED — flipplanned→liveciting the production reader (plugin-list/src/ListView.tsxresolveListMapConfig+case 'map') per the ledger's reader-first convention; re-verify the read on the merged objectui ref before flipping. Fold candidate with #11443.Generated by Claude Code
os-steve commentedon Aug 24, 2026
Claim: PM seat⚠️ blocker is discharged — objectui#5908 MERGED 2026-08-23T19:52:08Z (head
session_01T9cDbY2NBiVJWYx3BpWfH2(/pm-dispatch, spec lane) — dispatching to an os-dev subagent.Session: session_01T9cDbY2NBiVJWYx3BpWfH2
Branch:
claude/issue-11442-map-liveness-flipWorktree:
../objectstack-11442(created by the dev agent, per-task)Domain: domain:spec
File surface:
packages/spec/liveness/view.json(the ListViewmapentry only).Container & model: os-dev subagent, sonnet (S mechanical — the card enumerates the exact flip contents).
Clause-②: no — liveness ledger data, no contract acceptance change, no
packages/spec/src/**.Premise verified at claim: the
304ad7579,resolveListMapConfig+case 'map'forward + switcher gate + InterfaceListPage path, with the two named pin tests in the diff). The ledger'splannedverdict is now the stale one.Evidence discipline per the card: cite the production reader FIRST (ListView.tsx
resolveListMapConfig+case 'map'), pins second;verifiedAt/evidenceScope: cross-repore-measured against the objectui commit current at flip time (read-only measurement in /home/user/objectui after fetching origin/main), never copied from the card.Serial constraints: none — view.json untouched by in-flight work (#11437 in field.zod.ts, #11440 in .gitignore/check-skill-examples).
Generated by Claude Code
os-steve commentedon Aug 24, 2026
<!-- os-dev-report -->
{ "issue": 11442, "status": "done", "branch": "claude/issue-11442-map-liveness-flip", "pr": "https://github.com/objectstack-ai/objectstack/pull/11563", "premise_still_valid": true, "summary": "Flipped view.list.map in packages/spec/liveness/view.json from planned to live: objectui#5908 (merged 2026-08-23T19:52:08Z, squash commit e2e8e68) landed resolveListMapConfig, which merges the view-level map block over the legacy options.map bag before ListView.tsx's case 'map' forwards it into object-map, and the same merged config now feeds the visualization-switcher's capability gate too. Re-measured cross-repo against objectui origin/main@08ca73f8 (not copied from the card): grep-confirmed resolveListMapConfig + case 'map' in ListView.tsx and both named pin tests exist at that ref. Rewrote the entry's note (reader-first: ListView.tsx resolveListMapConfig/case 'map', pins second: the two named tests), regenerated the generated state-counts.md (view: planned 1->0, live 77->78), and updated the view row's Notes cell in liveness/README.md which described the now-discharged planned condition. No authorWarn was present on the entry, so nothing to drop there.", "tests": "All local gates run under scripts/pm/os-verify-lock.sh against commit 9044e986f2 (PR head). pnpm --filter @objectstack/spec run check:liveness: '✓ every governed-type property ... every live entry's repo-local evidence path resolves and every path:NNN citation names a line that file actually has ... the README state table carries a row for each of the 31 governed type(s) it claims to index.' + '✓ packages/spec/liveness/state-counts.md is current'. check:empty-state: '✓ all classified (1 closed, 2 open, 4 output, 9 scope)'. check:strictness-ledger and check:variant-docs green. Repo-wide gates derived via node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack against the actual diff (view.json, README.md, state-counts.md, the changeset) all green: check:merge-driver, check:published-files, check:slot-lookup, check:test-source-alias, check:type-source-resolution, check-ci-filter-parity.mjs, check-dev-prereqs.mjs --self-test (its own header says CI runs --self-test only; the full existence/freshness scan is a pnpm-dev local preflight, not PR-scheduled), check-plugin-teardown-shape.mjs, docs-audit/check-affected-docs.mjs, check:changeset-gate-self-tests, check:objectui-changeset, check-adr-0087-registration.mjs ('this PR adds no declared-breaking changeset (1 non-breaking changeset(s) seen)'), check-changeset-no-major.mjs, check-empty-changeset.mjs ('1 declaring changeset(s) added'). node scripts/check-nul-bytes.mjs: '✓ OK (scanned 6463 text file(s) ...)'. Cross-repo measurement transcript (objectui commit, grep hits for the reader and both pin files) is reproduced in full in the PR body.", "open_questions": [], "out_of_scope_findings": [] }Generated by Claude Code