Skip to content

test(daemon): pin resolveScriptTarget's retention table directly - #1539

Merged
thymikee merged 1 commit into
mainfrom
test/resolve-script-target-retention
Aug 1, 2026
Merged

test(daemon): pin resolveScriptTarget's retention table directly#1539
thymikee merged 1 commit into
mainfrom
test/resolve-script-target-retention

Conversation

@thymikee

@thymikee thymikee commented Aug 1, 2026

Copy link
Copy Markdown
Member

Follow-up to #1532's "bug the migration caught": the bare-re-arm target collapse was caught (and is still pinned) only transitively, through the repair suites' healed-sibling path and persisted-force assertions. This adds the direct table on the transition itself — bare re-arm keeps target and grant, live force adds without retargeting, same-path re-arm keeps the grant, different-path retarget drops it, default→explicit keeps it (the retention flagged on #1258), and per-step armRepair re-arms never move the boundary or wipe the healed sibling.

Test-only; 6 new tests, typecheck/format clean.

The repair suites pin these rules transitively (they caught the bare-re-arm
collapse during the P4a migration), but only through healed-sibling path
assertions downstream. A direct table on the transition makes a regression
name the retention rule it broke.

Refs #1478, #1258

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown

Size Report

Metric Base Current Diff
JS raw 1.92 MB 1.92 MB 0 B
JS gzip 615.5 kB 615.5 kB 0 B
npm tarball 733.5 kB 733.5 kB 0 B
npm unpacked 2.57 MB 2.57 MB 0 B

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 26.0 ms 25.3 ms -0.8 ms
CLI --help 55.8 ms 53.0 ms -2.8 ms

Top changed chunks: no changes in the largest emitted chunks.

@thymikee

thymikee commented Aug 1, 2026

Copy link
Copy Markdown
Member Author

Re-reviewed at 24266ca: clean and focused. The six direct assertions exercise the production resolveScriptTarget / armRepair transitions without mocks or duplicated decision logic, and they cover the retention/retarget cases that were previously only pinned transitively. Reverting the corresponding production branches breaks the relevant assertions, so this is non-vacuous characterization rather than redundant coverage. Test-only scope is appropriate; no device evidence is needed. All completed checks are green; iOS, Android, and Linux smoke are still in progress.

@thymikee thymikee added the ready-for-human Valid work that needs human implementation, judgment, or maintainer merge label Aug 1, 2026
@thymikee
thymikee merged commit e940728 into main Aug 1, 2026
30 checks passed
@thymikee
thymikee deleted the test/resolve-script-target-retention branch August 1, 2026 09:27
@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-08-01 09:27 UTC

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

Labels

ready-for-human Valid work that needs human implementation, judgment, or maintainer merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant