carlos / platform Public

moves: the copy scan reads movesrecoveryowners.go

TestMovesScanFilesCoverTheDiff wants every changed moves file in
movesScanFiles. The recovery owners' predecessor region and return seal
are bound through locals, so the copy gate's field trace no longer meets
a multi-value field write; behaviour is unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev e68d4ba82beed8a88569c94175cec69bd244cbf2 parent 2c1f5e1
2 files changed, +7 −3
  • approved_moves_copy_test.go +1 −0
  • internal/host/movesrecoveryowners.go +6 −3
diff --git a/approved_moves_copy_test.go b/approved_moves_copy_test.go
index eef047380..65eb303f6 100644
--- a/approved_moves_copy_test.go
+++ b/approved_moves_copy_test.go
@@ -1165,6 +1165,7 @@ var movesScanFiles = []string{
"internal/hostops/move_recovery_grant.go",
"internal/hostops/move_loss_owner.go",
"internal/host/movesrecoveryprobe.go",
+ "internal/host/movesrecoveryowners.go",
"internal/host/claimproduction.go",
"internal/host/claimowners.go",
"internal/host/claimmoveaccess.go",
diff --git a/internal/host/movesrecoveryowners.go b/internal/host/movesrecoveryowners.go
index c883d75cf..6b287b0b1 100644
--- a/internal/host/movesrecoveryowners.go
+++ b/internal/host/movesrecoveryowners.go
@@ -213,16 +213,19 @@ func (r movesRecoveryOwners) recovery(ctx context.Context, o hostclaim.Observed)
if v.inputs == nil || v.inputs.Release == "" {
return v, fmt.Errorf("%w: no recorded recovery inputs", hostbox.ErrChanged)
}
- if v.predecessor, err = predecessorRegion(v.holder, mv.From); err != nil {
+ predecessor, err := predecessorRegion(v.holder, mv.From)
+ if err != nil {
return v, err
}
- v.rec = rec
+ v.predecessor, v.rec = predecessor, rec
if !v.dirty {
return v, nil
}
- if v.seal, err = returnSeal(c); err != nil {
+ seal, err := returnSeal(c)
+ if err != nil {
return v, err
}
+ v.seal = seal
j, err := moves.ReadJournal(m.DataDir, o.Host, v.rb)
if err != nil {
return v, err