carlos / platform Public

Clone
git clone https://amadan.net/carlos/platform

Plain git — no account needed to clone.

Download

Download this file

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.