Skip to content

Clean up first static-text witness batch#656

Merged
flyingrobots merged 4 commits into
mainfrom
static-text-witness-burndown-01
Jun 12, 2026
Merged

Clean up first static-text witness batch#656
flyingrobots merged 4 commits into
mainfrom
static-text-witness-burndown-01

Conversation

@flyingrobots

@flyingrobots flyingrobots commented Jun 12, 2026

Copy link
Copy Markdown
Member

Summary

  • Reconciles the v18 roadmap to pre-tag complete without cutting or tagging v18.
  • Replaces brittle static-text assertion tests with behavior, parser, command, or package-surface witnesses.
  • Removes retired doc-ledger tests whose behavior is already covered by runtime witnesses.
  • Repairs retro links after retiring the WarpRuntime class split text test.

Issues

Closes #287
Closes #288
Closes #289
Closes #290
Closes #291
Closes #292
Closes #293
Closes #294
Closes #295
Closes #297

Refs #296. The static text test was removed, but the requested dead-export scanner replacement is not implemented in this PR, so #296 should remain open.

Deterministic Evidence

Commit: 4059111870aa2306c316e2558c03356f0b47ad1c

Issue Evidence
#287 test/unit/domain/WarpApp.delegation.test.ts#L88@4059111870aa2306c316e2558c03356f0b47ad1c proves capability-backed app consumers read through the runtime surface; test/unit/scripts/openwarpgraph-composition-root.test.ts#L180@4059111870aa2306c316e2558c03356f0b47ad1c proves openWarpGraph() returns the frozen capability bag.
#288 test/unit/scripts/openwarpgraph-composition-root.test.ts#L180@4059111870aa2306c316e2558c03356f0b47ad1c proves the public capability bag shape; test/unit/domain/WarpGraph.public-sync.test.ts#L5@4059111870aa2306c316e2558c03356f0b47ad1c proves the public capability bag does not expose _runtime and can sync directly.
#289 test/conformance/castQuarantineGraduation.test.ts#L24@4059111870aa2306c316e2558c03356f0b47ad1c parses the quarantine manifest through schema; test/conformance/castQuarantineGraduation.test.ts#L106@4059111870aa2306c316e2558c03356f0b47ad1c compares parser-discovered unsuppressed casts to the manifest.
#290 test/unit/scripts/typescript-config-files.test.ts#L7@4059111870aa2306c316e2558c03356f0b47ad1c verifies the real TypeScript-native config files and rejects the retired .js config filenames.
#291 test/unit/scripts/cli-command-registry.test.ts#L19@4059111870aa2306c316e2558c03356f0b47ad1c checks parser/registry alignment; test/unit/scripts/cli-command-registry.test.ts#L24@4059111870aa2306c316e2558c03356f0b47ad1c parses representative operator commands through the executable CLI surface.
#292 test/conformance/comparisonLiveCoordinateSeam.test.ts#L29@4059111870aa2306c316e2558c03356f0b47ad1c proves live/coordinate/strand-base selectors use the coordinate reader and finalizer; test/conformance/comparisonLiveCoordinateSeam.test.ts#L84@4059111870aa2306c316e2558c03356f0b47ad1c defines the recording reader that would expose broad-host calls.
#293 test/conformance/conflictTargetIdentityFakeModelGraduation.test.ts#L28@4059111870aa2306c316e2558c03356f0b47ad1c parses the quarantine manifest through schema; test/conformance/conflictTargetIdentityFakeModelGraduation.test.ts#L60@4059111870aa2306c316e2558c03356f0b47ad1c inspects the AST for *Like placeholders; test/conformance/conflictTargetIdentityFakeModelGraduation.test.ts#L64@4059111870aa2306c316e2558c03356f0b47ad1c proves runtime-backed conflict op normalization.
#294 test/unit/scripts/contamination-map-command.test.ts#L4@4059111870aa2306c316e2558c03356f0b47ad1c runs the contamination scanner command as the dynamic-import policy witness.
#295 test/unit/domain/services/controllers/QueryContentProjectionReads.test.ts#L53@4059111870aa2306c316e2558c03356f0b47ad1c proves content accessor behavior against projected state for node and edge content metadata.
#297 test/unit/scripts/openwarpgraph-composition-root.test.ts#L180@4059111870aa2306c316e2558c03356f0b47ad1c proves the public opener works through the compatibility capability bag; test/unit/domain/WarpGraph.public-sync.test.ts#L5@4059111870aa2306c316e2558c03356f0b47ad1c proves no _runtime public leak remains.
v18 roadmap docs/ROADMAP.md#L29@4059111870aa2306c316e2558c03356f0b47ad1c records pre-tag complete; docs/ROADMAP.md#L43@4059111870aa2306c316e2558c03356f0b47ad1c records zero open v18-labelled issue sets and no v18 tag.

Validation

  • npm exec vitest run test/unit/scripts/typescript-config-files.test.ts test/unit/scripts/cli-command-registry.test.ts test/unit/scripts/contamination-map-command.test.ts test/conformance/castQuarantineGraduation.test.ts test/conformance/conflictTargetIdentityFakeModelGraduation.test.ts test/conformance/comparisonLiveCoordinateSeam.test.ts
  • npm run typecheck
  • npm run lint
  • npm run lint:md
  • npm run lint:links
  • npm run test:local
  • Pre-push IRONCLAD M9 gate: passed

Release note

No release tag was created. v18 remains gated on explicit operator tag approval.

Summary by CodeRabbit

  • Documentation

    • Updated v18.0.0 release roadmap with completed goalposts status.
    • Refined internal release documentation for v17 migration cycles.
  • Tests

    • Added CLI command registry validation tests.
    • Added TypeScript configuration file verification tests.
    • Refactored conformance tests to validate runtime behavior instead of source-code markers.
    • Removed obsolete test suites for completed v17 release work.
  • Chores

    • Cleaned up deprecated test files; consolidated coverage under new test specifications.

@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@flyingrobots, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 39 minutes and 58 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more credits in the billing tab to continue.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 16420f40-23e1-4b02-a67b-43c65fb62d5a

📥 Commits

Reviewing files that changed from the base of the PR and between 4059111 and 3724848.

📒 Files selected for processing (2)
  • docs/ROADMAP.md
  • test/unit/scripts/release-policy-shape.test.ts
📝 Walkthrough

Walkthrough

This PR retires eight static text assertion tests that read repository documentation and source files to verify file content shape, replacing them with behavioral tests that validate runtime behavior or use parser-backed schema validation. Simultaneously, v18.0.0 release readiness is reconciled in the roadmap to reflect pre-tag completion with all goalposts landed.

Changes

Static Text Test Sludge Retirement & Release Completion

Layer / File(s) Summary
v18.0.0 Release Readiness
docs/ROADMAP.md, test/unit/scripts/release-policy-shape.test.ts
Updated ROADMAP.md to reflect pre-tag complete status for v18.0.0: release status changed to pre-tag complete, GP5 marked landed, landed goalposts set to 5, zero open milestone/home/lane issues, and explicit operator approval still required for tagging. Updated release-policy-shape.test.ts expectations to assert fully-landed goalposts/slices (5/5, 53/53) and pre-tag completion.
Quarantine Manifest & Double-Cast Suppression Validation
test/conformance/castQuarantineGraduation.test.ts
Replaced raw string checks with Zod-validated manifest schema and added structured manifest parsing via readManifest(). Introduced line-range suppression detection to skip as-casts with nosemgrep: ts-no-double-cast markers. Updated test assertions to compare findCastHits() paths against parsed manifest's files array.
Conflict Target Identity AST & Manifest Validation
test/conformance/conflictTargetIdentityFakeModelGraduation.test.ts
Replaced regex and raw containment checks with TypeScript AST parsing and Zod schema validation. Added typescript and zod imports, implemented AST-based identifier extraction for *Like placeholders, and manifest-based files array validation.
Comparison Selector Runtime Behavior Conformance
test/conformance/comparisonLiveCoordinateSeam.test.ts
Rewrote from source-code/design-doc file scanning to runtime behavior validation. Removed file I/O and regex checks. Added RecordingCoordinateReader and RecordingFinalizer test doubles to record and assert selector dispatch behavior for the three selector variants. Introduced deterministic helper functions (readSide, resolvedSide, contextFor, poisonHost) for isolated test fixtures.
CLI & Infrastructure Behavior Tests
test/unit/scripts/cli-command-registry.test.ts, test/unit/scripts/contamination-map-command.test.ts, test/unit/scripts/typescript-config-files.test.ts
Added three new Vitest suites validating executable behavior and file structure without repository file scanning. cli-command-registry validates KNOWN_COMMANDS/COMMANDS alignment and parseArgs correctness. contamination-map-command executes the script and confirms completion. typescript-config-files validates .ts config presence and .js config absence.
Historical Documentation Updates
docs/method/retro/0077-*.md, docs/method/retro/0078-*.md, docs/method/retro/0079-*.md
Updated retro documentation to reflect retirement of delete-warpruntime-class-split.test.ts and redirection of its coverage to openwarpgraph-composition-root.test.ts and WarpGraph.public-sync.test.ts. Reordered operation sequences and updated Vitest witness commands in split ratchet and migration notes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • git-stunts/git-warp#650: Both PRs reconcile v18.0.0 release state in docs/ROADMAP.md (goalpost status, issue closure, approval requirements) and update test/unit/scripts/release-policy-shape.test.ts expectations accordingly.
  • git-stunts/git-warp#108: Both PRs update release-roadmap expectations in docs/ROADMAP.md and adjust test/unit/scripts/release-policy-shape.test.ts assertions to match the latest release policy shape state.
  • git-stunts/git-warp#645: Both PRs update V18 release roadmap reconciliation by changing docs/ROADMAP.md and adjusting test/unit/scripts/release-policy-shape.test.ts expectations for v18 goalpost/slice landing state.

Poem

🐰 Eight test files that read and fret,

Scanning text that they shouldn't check yet,

Now replaced with behavior so true,

And a v18 release that's ready to brew! 🌙

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main change: removing static-text assertion tests and replacing them with behavioral witnesses, which is the primary objective of this PR.
Description check ✅ Passed The PR description is comprehensive and well-structured, covering summary, linked issues, deterministic evidence with specific line citations, validation steps, and release notes. It follows the template structure and provides clear documentation.
Linked Issues check ✅ Passed The PR successfully addresses all 10 linked issues (#287#295, #297) by removing static-text test files and replacing them with behavioral, parser, and command-based witnesses as required by each issue.
Out of Scope Changes check ✅ Passed All changes are directly scoped to the stated objectives: removing static-text tests, adding behavioral replacements, updating documentation links, and reconciling the v18 roadmap. No unrelated changes are present.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch static-text-witness-burndown-01

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

Copy link
Copy Markdown

Release Preflight

  • package version: 18.0.0
  • prerelease: false
  • npm dist-tag on release: latest
  • npm pack dry-run: passed
  • jsr publish dry-run: passed

If you tag this commit as v18.0.0, release workflow will publish.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/ROADMAP.md`:
- Around line 43-47: Update the v18 gate-table entry to reflect the release
state described earlier: change the `v18.0.0` / `#552` gate-table status from
`Blocked` to the appropriate closed/pre-tag state (e.g., `Closed` or `Pre-Tag
Complete`) and remove any blocking marker tied to issue `#552` so the table
aligns with the V18-GP5 closure; apply the same change to the duplicate entries
around the gate-table (the referenced lines covering the v18 entry, previously
198-200) to keep the roadmap consistent.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 96076161-fa85-460d-a17d-3be321216310

📥 Commits

Reviewing files that changed from the base of the PR and between eff0cfd and 4059111.

📒 Files selected for processing (19)
  • docs/ROADMAP.md
  • docs/method/retro/0077-delete-warpruntime-class-resplit/delete-warpruntime-class-resplit.md
  • docs/method/retro/0078-extract-runtime-host-product/extract-runtime-host-product.md
  • docs/method/retro/0079-resplit-warpruntime-test-helper-migration/resplit-warpruntime-test-helper-migration.md
  • test/conformance/castQuarantineGraduation.test.ts
  • test/conformance/comparisonLiveCoordinateSeam.test.ts
  • test/conformance/conflictTargetIdentityFakeModelGraduation.test.ts
  • test/unit/scripts/capability-consumer-migration-closeout.test.ts
  • test/unit/scripts/capability-interfaces-closeout.test.ts
  • test/unit/scripts/changelog-config-extension-shape.test.ts
  • test/unit/scripts/cli-command-registry.test.ts
  • test/unit/scripts/cli-guide-shape.test.ts
  • test/unit/scripts/contamination-dynamic-imports-shape.test.ts
  • test/unit/scripts/contamination-map-command.test.ts
  • test/unit/scripts/content-access-duplication-shape.test.ts
  • test/unit/scripts/dead-code-cleanup-shape.test.ts
  • test/unit/scripts/delete-warpruntime-class-split.test.ts
  • test/unit/scripts/release-policy-shape.test.ts
  • test/unit/scripts/typescript-config-files.test.ts
💤 Files with no reviewable changes (8)
  • test/unit/scripts/dead-code-cleanup-shape.test.ts
  • test/unit/scripts/changelog-config-extension-shape.test.ts
  • test/unit/scripts/contamination-dynamic-imports-shape.test.ts
  • test/unit/scripts/delete-warpruntime-class-split.test.ts
  • test/unit/scripts/content-access-duplication-shape.test.ts
  • test/unit/scripts/capability-consumer-migration-closeout.test.ts
  • test/unit/scripts/capability-interfaces-closeout.test.ts
  • test/unit/scripts/cli-guide-shape.test.ts

Comment thread docs/ROADMAP.md
@flyingrobots

Copy link
Copy Markdown
Member Author

@codex Code Lawyer activity summary for PR #656.

Source Severity File Lines Issue Fix commit Outcome
PR review / CodeRabbit P1 Major docs/ROADMAP.md 45, 55, 199 The active v18 summary said #552 was closed and V18-GP5 had landed, but the lower v18.0.0 gate table still listed #552 as Blocked with a blocking flag. 3724848e Updated the gate-table row to Closed / release and resolved the review thread.
Regression proof P1 Major test/unit/scripts/release-policy-shape.test.ts 80-101, 255-256 The release-shape test did not protect the #552 gate-table row from drifting back to Blocked. 3724848e Added deterministic assertions requiring the closed row and rejecting the stale blocked row.

Validation evidence:

Command Result
npm exec vitest run test/unit/scripts/release-policy-shape.test.ts before the roadmap fix Failed as expected on missing closed #552 row.
npm exec vitest run test/unit/scripts/release-policy-shape.test.ts after the roadmap fix Passed: 14 tests.
npm run lint:md Passed.
npm run lint:links Passed: 1982 total, 1503 OK, 0 errors, 479 excluded.
npm run typecheck Passed.
npm run lint Passed.
npm run test:local Passed: all stable unit-test shards green.
git push pre-push IRONCLAD M9 gate Passed: link check, static gates, surface check, and stable unit-test shards.

Review thread PRRT_kwDOQ8bKSs6JPg4Q is resolved. CI has restarted on commit 3724848e; merge gate remains locked until the new CI run finishes and branch protection/review requirements are satisfied.

@github-actions

Copy link
Copy Markdown

Release Preflight

  • package version: 18.0.0
  • prerelease: false
  • npm dist-tag on release: latest
  • npm pack dry-run: passed
  • jsr publish dry-run: passed

If you tag this commit as v18.0.0, release workflow will publish.

@flyingrobots flyingrobots merged commit e4bb016 into main Jun 12, 2026
17 checks passed
@flyingrobots flyingrobots deleted the static-text-witness-burndown-01 branch June 12, 2026 21:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment