Problem
In skills/ce-babysit-pr/scripts/pr-snapshot, the 600s race-candidate \u2192 stale-computation presentation flip mutates base.identity (and sets merge_computation_stale). Because _change_sig hashes the full base dict (json.dumps(state.get("base"))), that presentation-only change reads as movement: last_change_at resets, and the PR gains a synthetic +300s settle before merge-ready fires.
Fix
Normalize base in the settle signature: present stale-computation as its race-candidate identity (race) and omit the merge_computation_stale report flag. Every other identity value (probe-error, race, mergeability-pending, current) and freshness stay in the signature, so a genuine probe-error\u2192race\u2192pending\u2192current transition still resets the clock.
Tests
stale-computation degrade is signature-neutral (no settle reset)
genuine base identity transitions still change the settle signature
- default-300 end-to-end assertion on the existing stale-transition snapshot test
bun test tests/ce-babysit-pr-snapshot.test.ts \u2192 167 pass. release:validate and plugin:validate pass.
Problem
In
skills/ce-babysit-pr/scripts/pr-snapshot, the 600s race-candidate \u2192 stale-computation presentation flip mutatesbase.identity(and setsmerge_computation_stale). Because_change_sighashes the fullbasedict (json.dumps(state.get("base"))), that presentation-only change reads as movement:last_change_atresets, and the PR gains a synthetic +300s settle beforemerge-readyfires.Fix
Normalize
basein the settle signature: presentstale-computationas its race-candidate identity (race) and omit themerge_computation_stalereport flag. Every other identity value (probe-error,race,mergeability-pending,current) andfreshnessstay in the signature, so a genuine probe-error\u2192race\u2192pending\u2192current transition still resets the clock.Tests
stale-computation degrade is signature-neutral(no settle reset)genuine base identity transitions still change the settle signaturebun test tests/ce-babysit-pr-snapshot.test.ts\u2192 167 pass.release:validateandplugin:validatepass.