yoi/.yoi/tickets/closed/20260608-015630-abort-podclient-reader-task-on-drop/resolution.md

31 lines
1.4 KiB
Markdown

Merged and completed the PodClient reader-task cleanup.
Summary:
- `PodClient` now stores the background reader task `JoinHandle` created during `PodClient::connect()`.
- `PodClient` implements `Drop` and aborts the reader task when the client is dropped.
- Dropping short-lived clients releases the Unix socket read half without waiting for remote socket close.
- Existing live-client send and receive behavior remains covered.
- No Pod socket protocol, event format, controller behavior, registry semantics, or panel polling policy changed.
Merged branch/worktree:
- Branch: `abort-podclient-reader-task-on-drop`
- Commit: `aec75b3 fix: abort PodClient reader task on drop`
- Merge commit on `develop`: `b0f37b5 merge: abort podclient reader task on drop`
Validation passed after merge:
- `cargo test -p client pod_client --lib`
- `cargo test -p client --lib`
- `cargo test -p tui pod_list --lib`
- `cargo check -q`
- `cargo fmt --check`
- `git diff --check`
- `cargo run -q -p yoi -- ticket doctor`
- `nix build .#yoi`
Cleanup completed:
- Stopped coder/reviewer Pods and reclaimed scope.
- Removed `.worktree/abort-podclient-reader-task-on-drop`.
- Deleted branch `abort-podclient-reader-task-on-drop`.
Residual note:
- `Drop` cannot await task cancellation completion, but reviewer accepted the normal `JoinHandle::abort()` pattern and focused tests verify observable socket cleanup behavior.