fix(native-eval): rebootstrap replacement leases - #58
Conversation
|
Codex review: needs maintainer review before merge. Reviewed August 3, 2026, 12:09 AM ET / 04:09 UTC. ClawSweeper reviewWhat this changesThe branch records the lease ID used for native-evaluation bootstrap and rehydrates a recovery run when its active lease differs from that recorded lease. Merge readinessKeep this PR open for maintainer review. The patch is a focused, source-backed fix for the timestamp-only recovery bug and adds a direct regression test, but it deliberately makes a missing remote run trigger full lease hydration, which replaces the remote runner and task directories; that recovery policy needs explicit maintainer confirmation before merge. Priority: P2 Review scores
Verification
How this fits togetherShellBench's native-evaluation fleet controller restores benchmark runs on disposable Crabbox leases. It reads a persisted run manifest, obtains or replaces a lease, probes remote run state, then hydrates the remote runner and dispatches the benchmark when needed. flowchart LR
A[Persisted run manifest] --> B[Lease recovery]
B --> C[Remote run probe]
C -->|missing run state| D[Lease hydration]
D --> E[Remote runner and tasks]
E --> F[Benchmark dispatch]
C -->|running or done| F
F --> G[Verified result export]
Decision needed
Why: The code is mechanically narrow and matches the reported failure, but full hydration intentionally replaces remote runner and task directories and updates provider environment state; only maintainers can confirm that this is the desired recovery contract. Before merge
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Confirm that a recovered run with no remote run state should always rebuild the active lease, then merge this narrow identity-based guard and regression test; if that overwrite policy is not intended, define a narrower remote-state preflight before changing recovery behavior. Do we have a high-confidence way to reproduce the issue? Yes, from source and the added focused regression: a recovery_required manifest retaining bootstrapped_at_utc but lacking a stored active lease identity reaches dispatch without hydration on current main. This read-only review did not execute the test or a live lease recovery. Is this the best way to solve the issue? Unclear pending maintainer intent. Tracking bootstrap reuse by exact lease identity is the narrowest repair for the established defect, but the resulting full-hydration policy must be confirmed because hydration replaces remote lease contents. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 884dd1bb5511. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (20 earlier review cycles; latest 8 shown)
|
What does this PR do?
Rehydrates replacement native-eval leases before dispatch.
Why?
The controller previously treated an old bootstrap timestamp as proof that a
new lease contained the runner. Recovery could then fail before the harness
started, producing a false benchmark failure.
Fixes #55
Changes
bootstrapped_lease_idLive proof
Recovered a legacy OpenClaw run whose manifest had an old bootstrap timestamp
but no
bootstrapped_lease_id.bootstrapped_lease_id4/4completed results0This is the exact recovery state the regression test covers; the controller no
longer trusts timestamp-only bootstrap state.
Tests