fix(tui): repair reentrant SDK callbacks and pipeline ownership - #3665
fix(tui): repair reentrant SDK callbacks and pipeline ownership#3665Yeachan-Heo wants to merge 6 commits into
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Dedicated callback pumps preserve bounded inbound and reply delivery while keeping connection readers out of synchronous N-API calls. The bounded admission window covers the tested reentrant burst without introducing unbounded buffering.\n\nTested: NotificationServer reentrancy suite repeated five times.
Pipeline stages can report a valid process group before the ownership monitor has recorded its leader. Refresh the pinned live group anchor before failing closed, preserving exact cross-platform cleanup semantics.\n\nTested: pi-shell shell suite and BashTool head/tail stripping suite.
Rustfmt the pipeline ownership repair and regenerate the canonical daemon guard authority digest for the current native tree.\n\nTested: telegram daemon generation guard authority check and 43 guard tests.
Keep the exact process-group ownership repair byte-formatted for the rust-check job and refresh its generated authority digest.
Generation 40 records the protected native shell ownership repair and refreshes the canonical declaration and native authority digests.\n\nTested: authority/tree checks, 43 generation guard tests, cargo fmt check, and BashTool disabled-setting regression.
Generation 22 records the shared native pipeline ownership repair for Discord and Slack, with the canonical authority manifest regenerated from the rebased current tree.\n\nTested: contextual daemon guard, current-tree validation, and 43 guard tests.
beaf3b7 to
1df1430
Compare
Reconcile the narrowly reverted #3668 guard selectors and preserve live native authority. Add repeated exact PID and incarnation settlement coverage without inflating the existing Windows timeout. Issue: #3676 Constraint: exact base de7f06b Constraint: do not touch #3596/#3670/#3665 or contributor branches Tested: guard current-tree validation; guard suite; ChatDaemonController ownership safety suite; repeated focused ownership tests Not-tested: hosted Windows CI; full exact CI; hostile review; signed merge/build receipt Confidence: medium Scope-risk: narrow Reversibility: revert-commit
Reconcile the narrowly reverted #3668 guard selectors and preserve live native authority. Add repeated exact PID and incarnation settlement coverage without inflating the existing Windows timeout. Issue: #3676 Constraint: exact base de7f06b Constraint: do not touch #3596/#3670/#3665 or contributor branches Tested: guard current-tree validation; guard suite; ChatDaemonController ownership safety suite; repeated focused ownership tests Not-tested: hosted Windows CI; full exact CI; hostile review; signed merge/build receipt Confidence: medium Scope-risk: narrow Reversibility: revert-commit
Reconcile the narrowly reverted #3668 guard selectors and preserve live native authority. Add repeated exact PID and incarnation settlement coverage without inflating the existing Windows timeout. Issue: #3676 Constraint: exact base de7f06b Constraint: do not touch #3596/#3670/#3665 or contributor branches Tested: guard current-tree validation; guard suite; ChatDaemonController ownership safety suite; repeated focused ownership tests Not-tested: hosted Windows CI; full exact CI; hostile review; signed merge/build receipt Confidence: medium Scope-risk: narrow Reversibility: revert-commit
|
REQUEST_CHANGES Reviewed exact head 1df1430 against current origin/dev c1bf3be. Blocking: this PR targets base 44c30bb and is stale/dirty relative to current origin/dev. Rebase onto c1bf3be before any approval; the current exact head must not merge. Hostile findings to resolve while rebasing: the new Blocking ThreadsafeFunction calls run from spawn_blocking pumps, while stop_and_wait awaits every pump task. There is no bounded shutdown/error-path test proving that a closed or non-draining JS callback cannot leave stop_and_wait hung indefinitely. Add coverage for TSFN closure, callback-side shutdown/reentrancy, and queued inbound/frame backpressure; the single blocking_recv assertion does not cover those paths. Also retain the pipeline process-group repair tests across PID reuse, missing pid, late spawn, and ambient-group rejection after the rebase. — |
Owner evidence update — bounded rebase conflictInspected exact PR head Scope reconciliation:
Rebase evidence:
No branch push occurred, no tests/checks were represented as post-rebase verification, and no CI run was rerun or cancelled. PR #3665 remains DIRTY pending an explicit resolution of the callback ownership conflict with current — |
PR #3665 read-only adversarial exact-head review: REQUEST_CHANGES (P0=0, P1=2). This verdict is confined to callback/pipeline ownership and is independent of #3814. The head is still DIRTY against live — |
Summary
Verification
—
[repo owner's gaebal-gajae (clawdbot) 🦞]