Astra round 9 brief: replacement guard activation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 file changed,
+23
−0
docs/superpowers/plans/CODEX-REVIEW-L18-MERGE-BRIEF-9.md+23 −0
CI cancelled — superseded by a newer push — run details
diff --git a/docs/superpowers/plans/CODEX-REVIEW-L18-MERGE-BRIEF-9.md b/docs/superpowers/plans/CODEX-REVIEW-L18-MERGE-BRIEF-9.md| new file mode 100644 |
| index 000000000..3a3262f44 |
| --- /dev/null |
| +++ b/docs/superpowers/plans/CODEX-REVIEW-L18-MERGE-BRIEF-9.md |
| @@ -0,0 +1,23 @@ |
| +# Astra: relocation round 9 (confirming) |
| + |
| +Round 8 (`CODEX-REVIEW-L18-MERGE-8.md`) raised one P2: a replaced target never activated its new install guard, so it stalled. Fixed in 6d4ba32f. |
| + |
| +**Where activation happens.** In `relocationInstall`, just before it captures the installation. That is the path the participant reaches at `installed` (InstallLocal) and in `probing` before P opens (EnsureLocal's repair). |
| + |
| +**How.** The build's activation now takes its allowed phases as a parameter, `relocationActivateAt`: |
| +- the build allows only `installing`; |
| +- the install allows exactly `installed`, or `probing` with P unopened. |
| + |
| +**Checks on each fresh claim read:** the box is the executor, not stuck, not lost; P is unopened; the holder's stamp equals the install stamp; main's Local check runs. A named-target check is added. The guard still refuses to reactivate a retired or older stamp. For the original target, the activation does nothing, because the build already activated that stamp. Main's reconciler is unchanged. |
| + |
| +**Tests:** |
| +- The fixture no longer calls `Guard.Activate`. It drives `hostrelocate.Participant.Step` on a fresh box with no guard record, and both replacement cases establish P's files through the real provider. With the activation removed, both fail with "hostguard: no local record". |
| +- Negatives: a retired stamp; a box the claim doesn't name; the replaced box after its replacement is named; and `probing` after P opened. |
| + |
| +**Judge:** |
| +1. Is round 8's P2 closed? |
| +2. Is the widened activation exactly as narrow as it should be? Could the install path now activate a stamp in a case the build's rules would have refused, such as a lost or retired box, a re-installed P after opening, or a race with a newer replacement between the claim read and the activation? |
| +3. Anything new in this diff? |
| +4. **Verdict:** may relocation merge dormant? |
| + |
| +Give findings P1/P2/P3 with file:line. Report only new items. |