Skip to content

test: share Paper guard root inventory - #2644

Merged
Chris0Jeky merged 1 commit into
mainfrom
issue-1868/shared-roots
Sep 5, 2026
Merged

test: share Paper guard root inventory#2644
Chris0Jeky merged 1 commit into
mainfrom
issue-1868/shared-roots

Conversation

@Chris0Jeky

Copy link
Copy Markdown
Owner

Summary

  • Add one PAPER_VIEW_ROOTS inventory for all 22 Paper view roots.
  • Derive both the eyebrow-token and Legacy substrate guards from that inventory.
  • Keep the raw Vue source imports in a compile-time checked map so a new root cannot silently omit its source.
  • No production view, CSS, lockfile, or generated file changes.

Verification

  • npx vitest run tests/paper-eyebrow-token.spec.ts src/tests/views/paperViewLegacySubstrate.spec.ts — 70 passed.
  • npm run typecheck — passed.
  • npx eslint src/tests/views/paperRootInventory.ts src/tests/views/paperViewLegacySubstrate.spec.ts tests/paper-eyebrow-token.spec.ts — passed.
  • git diff --check — passed.

Two coordinator review passes found no correctness, scope, or test-hygiene blockers. The hosted automatic Codex review was unavailable because the account had reached its code-review usage limit; no merge is being requested here.

The isolated npm ci needed for verification reported two moderate audit advisories; no package files changed and no audit remediation was attempted.

Refs #1868

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Review gate (Codex review credits exhausted, SC-9; D-12 ruled 2026-09-05: the Codex session's PRs are reviewed and merged by the coordinator): one fresh-context read-only reviewer (Opus 5) on head bd6558bfe. Verdict: SHIP.

Checked by reading: the 22 inventory entries match exactly the flat .paper-* roots under src/views/*.vue on main, none omitted, none extra; the derived lists equal the two guards' previous lists entry by entry (22 substrate pairs, 20 eyebrow pairs, Chat and DevTools the two without an eyebrow); every VIEW_SOURCES pairing matches its ?raw import and a mispairing would throw in readRootRule; the guard bodies are unchanged; the compile-time claim holds (the substrate spec is type-checked and PaperViewName is the literal union); 22x2 + 1 + 4 + 20 + 1 = 70 matches the body; the helper is not collected as an empty spec.

Findings and disposition (all LOW, tracked on #1868):

  • the header calls the list "complete" and says it prevents drift when a new root is added, but nothing scans the views tree; a new root is still invisible to both guards until this file is edited, and the core-loop roots are deliberately excluded.
  • PAPER_VIEW_ROOTS.flatMap(({ view, eyebrow }) => ...) destructures eyebrow from a union where two members lack it; fine today because the root tests/ lane is not type-checked (#1607).
  • the per-wave provenance comments were dropped.

Issue disposition: slice of #1868 (the two guards share one list; the inventory remains hand-maintained).

@Chris0Jeky
Chris0Jeky merged commit 685cbce into main Sep 5, 2026
35 checks passed
@github-project-automation github-project-automation Bot moved this from Pending to Done in Taskdeck Execution Sep 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant