Skip to content

chore(spec): ListView map liveness verdict planned → live (objectui#5908 landed the reader) - #11563

Merged
os-steve merged 1 commit into
mainfrom
claude/issue-11442-map-liveness-flip
Aug 24, 2026
Merged

chore(spec): ListView map liveness verdict planned → live (objectui#5908 landed the reader)#11563
os-steve merged 1 commit into
mainfrom
claude/issue-11442-map-liveness-flip

Conversation

@os-steve

Copy link
Copy Markdown
Collaborator

Fixes#11442

Flip

packages/spec/liveness/view.json's view.list.map entry: statusplannedlive. The blocker named in the entry's own note — objectui's ListView.tsxcase 'map' forwarding only schema.options?.map and never the view-level map block — is discharged: objectui#5908 merged 2026-08-23T19:52:08Z (squash commit e2e8e68 on objectui main).

Cross-repo measurement (re-run, not copied)

$ cd objectui && git fetch origin main
70bd558..08ca73f main -> origin/main
$ git rev-parse origin/main
08ca73f8ec6c0d619095d816db51a15b5798c9df
$ git merge-base --is-ancestor e2e8e68 origin/main && echo ancestor
ancestor
$ git log --oneline e2e8e68 -1
e2e8e68 feat(plugin-list): read the spec's view-level `map` block on list views (#5908)

Reader first, per the ledger's own reader-first convention (modeled on the sharing entry's 2026-08-10 re-citation note):

$ git show origin/main:packages/plugin-list/src/ListView.tsx | grep -n "resolveListMapConfig\|case 'map'"
113:function resolveListMapConfig(schema: { map?: unknown; options?: { map?: unknown } }): ...
1857: const mapConfig = resolveListMapConfig(schema); # visualization-switcher capability gate
2181: case 'map': {
2201: const mapConfig = resolveListMapConfig(schema); # renderer forward

resolveListMapConfig (:113) merges the view-level map block over the legacy options.map bag; case 'map' (:2181-2205) forwards the merge into the object-map schema; the visualization-switcher gate (:1849-1858) asks the same merged config — not options.map alone — before offering 'map' in allowedVisualizations, closing a second hole (objectui#5042) the prior PLANNED note didn't need to describe. The ADR-0047 InterfaceListPage path (packages/app-shell/src/views/InterfaceListPage.tsx:406-409) forwards the authored map block verbatim onto the schema it hands to ListView, so it reaches the same resolver rather than dead-ending.

Pins second:

$ git cat-file -e origin/main:packages/plugin-list/src/__tests__/ListView.mapViewLevelConfig.test.tsx && echo EXISTS
EXISTS
$ git cat-file -e origin/main:packages/plugin-map/src/ObjectMap.listViewMapConfigReach.test.tsx && echo EXISTS
EXISTS

ListView.mapViewLevelConfig.test.tsx pins the forward against a spy; ObjectMap.listViewMapConfigReach.test.tsx pins the end-to-end read through a real ObjectMap (markers, titles, camera).

Note rewrite

The old planned note's flip instruction ("Flip to live citing that ListView.tsx read when it lands") is consumed — replaced with a note stating what reads the key today (resolveListMapConfig + case 'map' + the switcher gate + the InterfaceListPage forward) and since when (objectui#5908, re-measured 2026-08-24). The entry never carried authorWarn, so there's nothing to drop there. The view row's Notes cell in packages/spec/liveness/README.md (the #9340 sentence describing the PLANNED condition) is updated to match, and the generated packages/spec/liveness/state-counts.md is regenerated (view: planned 1→0, live 77→78).

Verification

Local gates run under the shared verify lock, against commit 9044e986f2 (this PR's 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
  • pnpm --filter @objectstack/spec run check:empty-state✓ all classified (1 closed, 2 open, 4 output, 9 scope)
  • pnpm --filter @objectstack/spec run check:strictness-ledger✓ strictness ledger … remaining-strip map … counts.md is current
  • pnpm --filter @objectstack/spec run check:variant-docs✓ variant/doc gate: 18 discriminated union(s) — 8 governed …
  • pnpm check:merge-driver, pnpm check:published-files, pnpm check:slot-lookup, pnpm check:test-source-alias, pnpm check:type-source-resolution, node scripts/check-ci-filter-parity.mjs, node scripts/check-dev-prereqs.mjs --self-test, node scripts/check-plugin-teardown-shape.mjs, node scripts/docs-audit/check-affected-docs.mjs → all green
  • Once the changeset landed: pnpm check:changeset-gate-self-tests, pnpm check:objectui-changeset, node scripts/check-adr-0087-registration.mjs, node scripts/check-changeset-no-major.mjs, node scripts/check-empty-changeset.mjs → all green (1 non-breaking changeset(s) seen, 1 declaring changeset(s) added)
  • node scripts/check-nul-bytes.mjs✓ OK (scanned 6463 text file(s) …)

Derived via node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack against this diff (packages/spec/liveness/view.json, README.md, state-counts.md, .changeset/listview-map-liveness-live.md) — every family it named for this diff is listed above and green. Full CI (Lint & Repo Gates, TypeScript Type Check, etc.) is left to the platform per the "report at draft PR time" convention; PM reviews CI convergence.

Changeset

.changeset/listview-map-liveness-live.md@objectstack/spec patch, mirroring #11449's pattern for a liveness-ledger verdict change.

Scope

Ledger data only (packages/spec/liveness/{view.json,README.md,state-counts.md} + changeset) — no packages/spec/src/** touched (Clause-② no). The showcase declaration (#11443) is out of scope here and untouched.


Generated by Claude Code

…908 landed the reader)
objectui#5908 (merged 2026-08-23T19:52:08Z, squash commit e2e8e68 on objectui
main) landed the missing half of the forward this ledger's `planned` note
called for: `ListView.tsx`'s `resolveListMapConfig` now merges the view-level
`map` block over the legacy `options.map` bag before `case 'map'` builds the
`object-map` schema, and the same merged config feeds the
visualization-switcher's capability gate too.
Flips `view.list.map` planned -> live, citing the production reader first
(resolveListMapConfig + case 'map') and the two pin tests second
(ListView.mapViewLevelConfig.test.tsx, ObjectMap.listViewMapConfigReach.test.tsx),
per the ledger's reader-first evidence convention. Re-measured against objectui
origin/main @08ca73f8 (2026-08-24); regenerates the generated state-counts.md
and updates the README Notes cell for the `view` row, which described the now-
discharged planned condition.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T9cDbY2NBiVJWYx3BpWfH2
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

Nothing in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 1 changed package(s)), so this run has no opinion about the docs.

What this run could not see
  • 3 changed file(s) yielded no anchor (packages/spec/liveness/README.md, packages/spec/liveness/state-counts.md, packages/spec/liveness/view.json) — pages documenting those are invisible to this run

Coarse fallback — 126 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): node scripts/docs-audit/affected-docs.mjs --json ba8420b58d36077fe79ca8ce0f201bb31f8be2bcpackageMentionDocs.

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation tooling labels Aug 24, 2026
@os-steve
os-steve marked this pull request as ready for review August 24, 2026 03:37
@os-steve
os-steve added this pull request to the merge queueAug 24, 2026
Merged via the queue into main with commit 6acb11aAug 24, 2026
33 checks passed
@os-steve
os-steve deleted the claude/issue-11442-map-liveness-flip branch August 24, 2026 04:28
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/stooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Flip the ListView map liveness verdict plannedlive once the objectui forwarding lands

2 participants

@os-steve@claude