fix: report bounded ASCII Box cleanup progress - #1789
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. |
|
Codex review: needs real behavior proof before merge. Reviewed September 4, 2026, 1:06 AM ET / 05:06 UTC. ClawSweeper reviewWhat this changesThe branch adds periodic stderr progress and clearer retained-claim diagnostics to ASCII Box cleanup, caps native CLI output capture, and adds regression coverage. Merge readiness⛔ Blocked before merge - 4 items remain Keep open. The provider changes are narrowly scoped and preserve the deletion-completion safeguards, but the earlier changelog finding remains and the supplied 3.425-second native trace cannot demonstrate the new ten-second periodic-reporting behavior. Priority: P2 Review scores
Verification
How this fits togetherASCII Box is Crabbox’s provider adapter for allocating and releasing remote boxes through the provider’s native CLI. Cleanup uses retained lease claims and deletion-status checks to either finalize a verified deletion or safely retain the claim for retry. flowchart LR
A[Crabbox stop or rollback] --> B[ASCII Box cleanup]
B --> C[Native ASCII CLI]
C --> D[Deletion and inventory checks]
D --> E[Retain or finalize claim]
B --> F[Progress on stderr]
F --> G[Operator diagnostics]
Before merge
Findings
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Retain the bounded, fail-safe cleanup design, remove the contributor-authored changelog entry, and add a redacted native wait trace that visibly crosses the reporting interval before maintainers add the release note. Do we have a high-confidence way to reproduce the issue? Yes. An accepted ASCII Box deletion whose native status call remains blocked for more than ten seconds exercises the reporter through the normal cleanup path; the supplied trace confirms the real retained-claim path, though this review did not execute it. Is this the best way to solve the issue? Yes for the bounded-diagnostics portion of the linked report: the reporter sits at the native command boundary and preserves existing deletion authority and claim retention. The linked report’s separate fast-reconciliation request remains outside this PR’s scope. Full review comments:
Overall correctness: patch is correct AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 53cc84ba13a1. LabelsLabel changes:
Label 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 (1 earlier review cycle)
|
|
Additional source-bound proof for exact head
The delay was controlled and is not presented as provider latency. It proves the exact candidate reporter remains live across multiple native-command waits, rejoins before return, then preserves the official CLI result and conservative claim retention. No Box was allocated for this proof. The remaining branch actions are maintainer-owned: remove the contributor-authored Unreleased entry and reconcile the current merge conflict. The separate fast absent-Box reconciliation requested by #1730 remains outside this PR. @clawsweeper re-review |
Summary
Fix #1730: show periodic progress while ASCII Box cleanup waits on native commands, and preserve the deletion phase, exact accepted operation, and last validated status when a status lookup times out.
The reporter uses a cleanup-scoped cadence, so both a stalled command and repeated fast polls produce output. Each command joins its reporter before returning, keeping it out of the guarded remote-cleanup callback's writer. Remaining time comes from the actual command context; no new whole-Stop deadline is claimed.
Centralize native status/config execution through the existing prepared-command path and cap capture at 8 MiB per stream. Runner/capture errors remain errors even if their output looks like valid empty inventory or a completed operation. Deletion authority, claim bindings, retry rules, native mutation sequencing, and completion/absence gates remain intact. Documentation and Unreleased notes credit @shunkakinoki for the report.
Verification
context deadline exceededon previous source.Built live pending-retry proof and exact-head hosted CI are pending. The task's earlier ASCII Box is natively absent but its exact deletion operation is still
blocked, so completed cleanup has not been proved. This draft does not claim successful destruction or permission to remove the retained claim.Source-bound native pending-retry result
Candidate
966a19453879c019d947ebd3af1daf18db64957a, built CLI SHA-256d36ac7c8a587c0bda8877060043321e811df3f3609504639432bf6c9bf7ec150, was run against the same task-owned retained claim using the official native ASCII CLI. It returned the expected exit 2 in 3.425 seconds:The claim and lease trust file remained byte-identical. This is live proof of pending-retry diagnostics and conservative retention, not a claim that the provider's blocked deletion completed. Deterministic tests separately cover periodic output during a held call and across fast polling. The native operation remains the external cleanup hold; no new Box was allocated for this retry.