You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For #3116, lease expiry now passes one captured SessionRef through teardown and retirement. A cwd-scoped session keeps its stored address; cleanup cannot bind a separate default session or delete a successor published during cleanup. Lease renewal patches the same lifetime's latest record.
Addresses the scoped-expiry review on #3137. Depends on #3138.
Validation
Head: a037cd67f5; five changed files. All locally runnable affected checks pass, including 224 files/1,293 related tests. The 41 focused tests pass without skips; the existing expiry test moved unchanged. Both public-name lookup and unguarded-retirement mutants fail, then restore green. Lint, typecheck, format and Fallow pass. Independent read-only audit found no actionable findings. Device CI remains GitHub-authoritative.
This PR is ready at a037cd6. The change retires only the captured expired session, and I found nothing that needs to change. All 14 checks pass. This PR is stacked on #3138, so that base branch has to land first. This review covers only the delta from 0780e5e to a037cd6.
Not blocking, and you can take or leave these. At src/daemon/lease-lifecycle.ts#L132 the update callback uses current.lease!. You can spread existingSession.lease, which is already narrowed, instead. At src/daemon/request-execution-scope.ts#L420 runtime hints are now read from ref.address before teardown, and no test sets runtime hints, so seeding them on the original in the 'retire' variant and asserting that finalize receives them would pin that order. At src/daemon/server/daemon-session-idle-expiry.ts#L494 the idle-expiry path still removes by address with delete(sessionName), which fits the #3116 SessionRef retirement follow-up better than this PR.
I did not run the focused tests or your two mutants. I judged that the old code fails the new cases by reading it at 0780e5e. I also did not trace whether finalizeBoundSessionApplicationLifecycle on the captured original could touch a same-device successor in a retire and republish race. That race cannot happen under the current locking, and the old code behaved the same way.
Consolidated into #3135 as part of reducing #3116 to seven PRs. The composition preserves the complete pre-consolidation source tree, including tests and later review corrections. This PR is superseded; its review discussion and native evidence remain available. Outstanding findings transfer to the owning keeper in the implementation record.
Preview removed because the pull request was closed.
2026-10-03 21:17 UTC
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ready-for-humanValid work that needs human implementation, judgment, or maintainer merge
1 participant
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
For #3116, lease expiry now passes one captured
SessionRefthrough teardown and retirement. A cwd-scoped session keeps its stored address; cleanup cannot bind a separatedefaultsession or delete a successor published during cleanup. Lease renewal patches the same lifetime's latest record.Addresses the scoped-expiry review on #3137. Depends on #3138.
Validation
Head:
a037cd67f5; five changed files. All locally runnable affected checks pass, including 224 files/1,293 related tests. The 41 focused tests pass without skips; the existing expiry test moved unchanged. Both public-name lookup and unguarded-retirement mutants fail, then restore green. Lint, typecheck, format and Fallow pass. Independent read-only audit found no actionable findings. Device CI remains GitHub-authoritative.