fix(tui): keep exec quick commands off the RPC reader - #67628
Conversation
7b0f3ae to
c0d6359
Compare
|
Thanks for the focused regression fix. The premise is confirmed on current upstream main: The patch reuses the established pool/transport path, limits asynchronous routing to resolved Automated hermes-sweeper review. |
|
Reviewed against Root cause matches. Fix is well-scoped. Coverage is adequate. Nit (non-blocking): the gate re-runs LGTM from an automated triage pass. |
c0d6359 to
7d237c1
Compare
7d237c1 to
6537589
Compare
SummaryTwo open PRs address Issue #67627 by pool-routing resolved exec quick commands so subprocess execution does not block the RPC reader. #67628 reuses the shared routing path and adds focused exec-responsiveness and non-exec-alias tests, while #67789 implements the same behavior through a duplicated submission block without corresponding regression coverage. Related pull requests
Duplicates#67789 is a functional duplicate of #67628: both offload only resolved exec quick commands, while #67628 uses the shared routing predicate and includes focused regression coverage. Suggested consolidationKeep #67628 open with a salvage path preserving its shared routing predicate and focused exec/non-exec regression tests. Close #67789 as duplicate of #67628 because its equivalent implementation duplicates pool-submission logic and contributes no distinct tested behavior. Complex graphflowchart LR
classDef open fill:#dbeafe,stroke:#1d4ed8,color:#1e3a8a
classDef merged fill:#dcfce7,stroke:#15803d,color:#14532d
classDef closed fill:#e5e7eb,stroke:#6b7280,color:#1f2937
classDef unverified fill:#f3f4f6,stroke:#9ca3af,color:#374151
classDef best stroke-width:3px,stroke:#b45309
classDef target stroke-width:3px,stroke:#4338ca
I67627(["issue #67627 (open)"])
subgraph Dup67628 ["PRs duplicating each other"]
P67628["PR #67628 (open)"]
P67789["PR #67789 (open)"]
end
P67628 -->|best fix| I67627
class I67627 open
class P67628 open
class P67789 open
class P67628 best
class P67628 target
click I67627 "https://github.com/NousResearch/hermes-agent/issues/67627"
click P67628 "https://github.com/NousResearch/hermes-agent/pull/67628"
click P67789 "https://github.com/NousResearch/hermes-agent/pull/67789"
Graph: solid arrow = fixes / best fix, dashed arrow = partial or unverified (see edge label); boxed group = PRs duplicating each other; amber border = best fix; indigo border = target; gray node = closed (state tag in the node label). Cross-PR triage: Reviewed 2 pull requests and 1 issue in this complex. Each diff was read against this issue; Assessment working set: 6 kB of PR diffs, 7 kB of issue/PR text, 3 kB of discussion (4 comments), 3 verify verdicts. verdicts reflect diff content, not PR titles. Part of an automated triage batch. |
6537589 to
ee6ed04
Compare
dfb61b0 to
9d6eee4
Compare
9d6eee4 to
0768f72
Compare
fix(tui): keep exec quick commands off the RPC reader — moving exec quick commands to the pool with a redacted timeout error is the right shape. Observations:
|
0768f72 to
fa47a25
Compare
What does this PR do?
Fixes #67627.
command.dispatchran quick commands oftype: exec(which callsubprocess.run) on the TUI gateway RPC reader. A slow command therefore prevented subsequent fast RPCs from being read. This routes only resolved exec quick commands to the existing worker pool; aliases and other command-dispatch paths remain inline to retain their ordering behavior.Related Issue
Fixes #67627
Type of Change
Changes Made
tui_gateway/server.pycommand.dispatchto the existing worker pool only when its resolved quick command is anexeccommand.tests/tui_gateway/test_protocol.pyHow to Test
type: execthat blocks briefly; dispatch it through the TUI gateway.Commands run on Linux (CachyOS):
Checklist
Code
fix(scope):,feat(scope):, etc.)pytest tests/ -qand all tests pass — focused TUI protocol coverage was run; not the entire suite.Documentation & Housekeeping
docs/, docstrings) — N/A; no user-facing contract changed.cli-config.yaml.exampleif I added/changed config keys — N/A; no configuration keys changed.CONTRIBUTING.mdorAGENTS.mdif I changed architecture or workflows — N/A; no contributor workflow changed.subprocess.runpath; no platform-specific code added.For New Skills
N/A — this PR does not add a skill.
Screenshots / Logs
9d6eee45436f8ec7b26debbea2d30e5114d0522cis patch-equivalent to the original commit and rebased onto upstreammainat936dd7346fd7fd8107af1ce7fc019c07c001c1bd(2026-08-11).pytest tests/tui_gateway/test_protocol.py -q— 45 passed on the refreshed tree.git diff --checkand conflict-marker/merge-tree checks — passed.