Skip to content

feat: v1 lease release with ReleaseResult (PR 3)#34

Merged
ferueda merged 3 commits into
feat/lease-first-v1from
feat/lease-first-pr3-release
Jun 12, 2026
Merged

feat: v1 lease release with ReleaseResult (PR 3)#34
ferueda merged 3 commits into
feat/lease-first-v1from
feat/lease-first-pr3-release

Conversation

@ferueda

@ferueda ferueda commented Jun 12, 2026

Copy link
Copy Markdown
Owner

Summary

  • Implements PR 3 (Phase 5 + resume-cleanup): ReleaseResult discriminated union, WAL release for all cleanup policies, and repair({ action: "resume-cleanup" }).
  • New lease-release.ts drives preserve/reset/quarantine through transitions (RELEASE_START, RELEASE_PRESERVE_COMPLETE, RELEASE_RESET_COMPLETE, RELEASE_FAILED).
  • Reset runs fresh process safety scan, git reset --hard, and git clean -fd (or -fdx with cleanIgnored: true); failed reset quarantines lease + slot with pendingCleanup preserved.

Test plan

  • pnpm check (141 tests)
  • Preserve: dirty files kept, lease stays leased, reacquire works
  • Reset: lease removed, slot available, untracked removed
  • Reset: ignored cache preserved by default; cleanIgnored: true removes it
  • Quarantine cleanup policy returns quarantined result
  • resume-cleanup completes interrupted preserve WAL
  • Failed reset → quarantined with pendingCleanup (existing repair test)

Stack

Targets feat/lease-first-v1. PR 4 next: destroy MVP.

ferueda added 2 commits June 11, 2026 19:49
Add lease-release module with WAL pendingCleanup for all policies, typed release
results, cleanIgnored reset support, and repair resume-cleanup from quarantine.
Re-check process safety after preRelease before reset cleanup, and return
LEASE_BUSY or LEASE_QUARANTINED instead of LEASE_NOT_FOUND for busy leases.
@ferueda ferueda self-assigned this Jun 12, 2026
Unify hook env via buildLeaseHookEnv, move enrichLeaseReadOnly outside the
state lock, and tighten release safety and CLI narrowing. Plan doc records
deferred dedup refactors for PR 4 destroy work.
@ferueda
ferueda merged commit f3962fd into feat/lease-first-v1 Jun 12, 2026
3 checks passed
@ferueda
ferueda deleted the feat/lease-first-pr3-release branch June 12, 2026 04:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant