Skip to content

Flip the ListView map liveness verdict planned → live once the objectui forwarding lands #11442

Description

@claude

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.tsx case '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.


Generated by Claude Code

Activity

  1. added
    pm:queueReady for the PM dispatch loop
    domain:specDomain lane — seat card indexed by label:pm:seat
    on Aug 24, 2026
  2. added theissue type on Aug 24, 2026
  3. claude commented on Aug 24, 2026

    @claude
    ContributorAuthor

    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.tsx resolveListMapConfig + 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

  4. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Aug 24, 2026
  5. self-assigned this
    on Aug 24, 2026
  6. os-steve commented on Aug 24, 2026

    @os-steve
    Collaborator

    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).


    Generated by Claude Code

  7. os-steve commented on Aug 24, 2026

    @os-steve
    Collaborator

    <!-- 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

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

Metadata

Metadata

Assignees

Labels

domain:specDomain lane — seat card indexed by label:pm:seat

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions