Repository navigation
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
@SebTardif is attempting to deploy a commit to the OpenClaw Foundation Team on Vercel. A member of the Team first needs to authorize it. |
|
Codex review: needs maintainer review before merge. Reviewed September 29, 2026, 5:36 AM ET / 09:36 UTC (Revision 4). ClawSweeper reviewWhat this changesThe ClawHub CLI keeps a completed skill replacement installed when deleting its old backup fails, with unit and built-CLI regressions, CLI documentation, and a changelog entry. Regression provenancePossible regression — suspected (reviewed change). No predecessor PR is attributed. Merge readiness✅ Ready for maintainer review The defect remains on current main, and this PR is the linked repair for the open issue. The changed rollback boundary matches the reported failure, the built-CLI regression exercises the completed replacement with a real filesystem and injected cleanup error, and I found no blocking patch defect. Priority: P2 Review scores
Verification
How this fits togetherThe ClawHub CLI downloads a skill into a staging directory, replaces the installed files, then records the installed version. The changed helper decides whether a failure should restore the old files or leave the completed replacement in place. flowchart LR
A[Install or update command] --> B[Download skill into staging]
B --> C[Move old skill to backup]
C --> D[Move new skill into place]
D --> E[Remove old backup]
D --> F[Write origin and lockfile]
C --> G[Restore old skill on swap failure]
Before mergeNone. Agent review detailsSecurityNone. Review metrics
Root-cause clusterRelationship: Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Technical reviewBest possible solution: Land the shared-helper repair after ordinary review so completed installs survive backup cleanup errors while failures before replacement still restore the previous skill. Do we have a high-confidence way to reproduce the issue? Yes. Current-main source shows that making backup deletion reject after both renames sends a completed replacement into rollback; the contributor also reports a before-and-after built-CLI run. Is this the best way to solve the issue? Yes. Moving backup cleanup beyond the rollback boundary is the narrowest fix in the helper shared by install and update; retrying deletion alone would still permit a later cleanup failure to undo the replacement. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 71681ad03bc3. LabelsLabel changes: No label changes. Label justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (3 earlier review cycles) |
Keep backup deletion outside the swap rollback boundary and verify the built CLI with real filesystem operations and an injected EBUSY. Co-authored-by: Sebastien Tardif <sebtardif@ncf.ca>
0c198eb to
37d3485
Compare
|
The updated head #3795 fixes that CI root cause by moving the existing layout regression to a seeded local backend. Its exact head has green static, unit, package, type/build, HTTP, public-browser and local-auth checks, and the matching remote gates passed. It is awaiting the requested owner review. This install fix remains open until the CI repair can land and the required checks are green. |
Preserve the contributor fix and its regression coverage while incorporating the landed seeded-browser-fixture repair.
Keep backup deletion outside the successful replacement's rollback boundary. Cleanup errors retain the new files and matching lockfile; failures before replacement still restore the previous install. Completes #3734 with its unit regression, real built-CLI filesystem fault proof, CLI documentation, and contributor credit. Fixes #3733. Co-authored-by: Sebastien Tardif <sebtardif@ncf.ca>
|
Completed and landed in #3853 (d26329b) on a maintainer-owned branch after the changelog conflict with current main. Your fix, regression tests, Co-authored-by credit, and Unreleased thanks are preserved; this fork branch is unchanged. The built-CLI EBUSY regression was reproduced before the fix and passes afterward. All required remote gates and exact-head CI passed. Thank you, @SebTardif. |
A completed skill replacement could be rolled back merely because deleting its old backup failed with
EBUSYorEPERM. Backup removal now happens after the swap’s rollback boundary, so the new files remain installed and the caller records the matching version in the lockfile. Failures before the replacement completes retain the existing rollback behavior.Fixes #3733. Preserves @SebTardif’s fix and regression, with a built-CLI filesystem regression, CLI documentation, and an Unreleased entry.
Validation uses the repository’s Blacksmith Testbox backend through one Crabbox lease. The new artifact test runs the real built CLI against a local synthetic HTTP registry, extracts a ZIP into real directories, and injects only backup-removal
EBUSYin the CLI child process. It failed on unchanged main and passes with this fix, verifying new content, the lockfile version, and the retained old backup. It does not claim a real Windows antivirus-lock test.Independent Codex autoreview: scoped-clean through P2. AI-assisted completion; the implementation and tests have been reviewed.
Remote gates passed:
bun run ci:static,bun run ci:unit(7,170 passed; 3 skipped),bun run ci:packages(including schema build, CLI typecheck, and built artifact tests), andbun run ci:e2e-http. Provider: Blacksmith Testbox; leasetbx_01m33nwh6z4rcm0er9wakvcwkd; backend run.