diff --git a/.yoi/tickets/open/20260608-015630-abort-podclient-reader-task-on-drop/item.md b/.yoi/tickets/open/20260608-015630-abort-podclient-reader-task-on-drop/item.md index 9900f1c4..f480338e 100644 --- a/.yoi/tickets/open/20260608-015630-abort-podclient-reader-task-on-drop/item.md +++ b/.yoi/tickets/open/20260608-015630-abort-podclient-reader-task-on-drop/item.md @@ -8,7 +8,7 @@ priority: 'P1' labels: ['client', 'pod', 'tui', 'fd-leak', 'bug'] workflow_state: 'inprogress' created_at: '2026-06-08T01:56:30Z' -updated_at: '2026-06-08T02:42:29Z' +updated_at: '2026-06-08T02:50:42Z' assignee: null legacy_ticket: null queued_by: 'workspace-panel' diff --git a/.yoi/tickets/open/20260608-015630-abort-podclient-reader-task-on-drop/thread.md b/.yoi/tickets/open/20260608-015630-abort-podclient-reader-task-on-drop/thread.md index 9b5b9597..72807b68 100644 --- a/.yoi/tickets/open/20260608-015630-abort-podclient-reader-task-on-drop/thread.md +++ b/.yoi/tickets/open/20260608-015630-abort-podclient-reader-task-on-drop/thread.md @@ -138,3 +138,45 @@ Stop/completion policy: - Because the human authorized cleanup after completion, this Orchestrator will proceed through reviewer approval, merge-completion validation, Ticket close, Pod stop, worktree removal, and branch deletion if the branch is approved and merge authority remains clear. --- + + + +## Implementation report + +Coder completed and reviewer delegated. + +Coder result: +- Pod: `coder-abort-podclient-reader` +- Commit: `aec75b3 fix: abort PodClient reader task on drop` +- Worktree status: clean after commit. +- Diff against `develop`: 1 file changed, 143 insertions, 2 deletions. + +Files touched by coder: +- `crates/client/src/pod_client.rs` + +Coder reported implementation: +- Added owned `reader_task: JoinHandle<()>` field to `PodClient`. +- Stored the background reader task created by `PodClient::connect()`. +- Implemented `Drop` for `PodClient` to abort the reader task. +- Preserved send and receive behavior while `PodClient` is alive. +- Added focused tests for receiving while alive, sending while alive, repeated connect/drop connection cleanup, and aborting a blocked reader so the Unix socket read half is released. + +Coder reported validation: +- `cargo test -p client pod_client --lib` +- `cargo test -p client --lib` +- `cargo test -p tui pod_list --lib` +- `cargo fmt --check` +- `git diff --check` +- `cargo run -q -p yoi -- ticket doctor` +- `nix build .#yoi` + +Reviewer delegation: +- Spawned sibling reviewer Pod: `reviewer-abort-podclient-reader`. +- Reviewer scope: read-only child worktree plus non-recursive parent-root read required by launch cwd validation. +- Reviewer was instructed to judge against the recorded Ticket requirements and binding decisions. + +Pending: +- Await reviewer verdict before merge-ready dossier / merge-completion. +- No merge, close, final approval, or cleanup has occurred for this Ticket. + +---