ticket: close podclient reader cleanup
This commit is contained in:
parent
b0f37b52eb
commit
50c5743fa0
|
|
@ -2,13 +2,13 @@
|
||||||
id: '20260608-015630-abort-podclient-reader-task-on-drop'
|
id: '20260608-015630-abort-podclient-reader-task-on-drop'
|
||||||
slug: 'abort-podclient-reader-task-on-drop'
|
slug: 'abort-podclient-reader-task-on-drop'
|
||||||
title: 'Abort PodClient reader task on drop'
|
title: 'Abort PodClient reader task on drop'
|
||||||
status: 'open'
|
status: 'closed'
|
||||||
kind: 'task'
|
kind: 'task'
|
||||||
priority: 'P1'
|
priority: 'P1'
|
||||||
labels: ['client', 'pod', 'tui', 'fd-leak', 'bug']
|
labels: ['client', 'pod', 'tui', 'fd-leak', 'bug']
|
||||||
workflow_state: 'inprogress'
|
workflow_state: 'done'
|
||||||
created_at: '2026-06-08T01:56:30Z'
|
created_at: '2026-06-08T01:56:30Z'
|
||||||
updated_at: '2026-06-08T02:52:51Z'
|
updated_at: '2026-06-08T02:54:31Z'
|
||||||
assignee: null
|
assignee: null
|
||||||
legacy_ticket: null
|
legacy_ticket: null
|
||||||
queued_by: 'workspace-panel'
|
queued_by: 'workspace-panel'
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
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.
|
||||||
|
|
@ -243,3 +243,66 @@ Parent/human decision needs:
|
||||||
- User has authorized merge-completion and cleanup after approved work. Proceeding to merge-completion unless post-merge validation fails.
|
- User has authorized merge-completion and cleanup after approved work. Proceeding to merge-completion unless post-merge validation fails.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<!-- event: review author: orchestrator at: 2026-06-08T02:54:16Z status: approve -->
|
||||||
|
|
||||||
|
## Review: approve
|
||||||
|
|
||||||
|
Final merge-completion approval after merge to `develop` and post-merge validation.
|
||||||
|
|
||||||
|
Evidence:
|
||||||
|
- Merged branch `abort-podclient-reader-task-on-drop` with `--no-ff`.
|
||||||
|
- Reviewer `reviewer-abort-podclient-reader` approved the branch-local implementation.
|
||||||
|
- Post-merge validation passed: `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`, and `nix build .#yoi`.
|
||||||
|
- Coder/reviewer Pods stopped and delegated scope reclaimed.
|
||||||
|
- Merged worktree removed and branch deleted.
|
||||||
|
|
||||||
|
This approval is for the merged main-branch result, not merely the branch-local reviewer verdict.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: state_changed author: orchestrator at: 2026-06-08T02:54:16Z from: inprogress to: done reason: merged_and_validated field: workflow_state -->
|
||||||
|
|
||||||
|
## State changed
|
||||||
|
|
||||||
|
Merged to `develop`, post-merge validation passed, final merge-completion approval recorded, and PodClient reader cleanup branch/worktree/Pods cleaned up.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: close author: hare at: 2026-06-08T02:54:31Z status: closed -->
|
||||||
|
|
||||||
|
## Closed
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
---
|
||||||
Loading…
Reference in New Issue
Block a user