fix(dispatcher): wake idle units on inferred read binds - #2366
Conversation
There was a problem hiding this comment.
Changes requested: The routing fix is sound, but the numbered thread-admission behavior still contradicts the new idle-unit rule.
Warning
Changes requested · head 5c97357 · 1 finding: 1 minor
| Severity | Finding | Where |
|---|---|---|
| minor | F1 Spec contradiction — thread-admission.md item 9: inferred reads now fold for idle units although the behavior says reads run | docs/reference/specs/thread-admission.md:28 |
Full review
F1: Item 9 still says read-command decisions run when either a live run or idle unit owns the thread. The implementation now folds inferred reads for idle units, as the new validation row states. Update the numbered behavior to distinguish idle-unit inferred reads from live-owner reads and explicitly typed commands.
5c97357 to
c726030
Compare
c726030 to
4240cf9
Compare
|
Source-overlap coordination for the separate original-unit recovery extension requested in this thread, on I inspected exact head Holding the overlapping path pending confirmation of its reservation/serialization boundary (this PR's exact-head review versus any further fix writer). The extension will rebase onto containing main before review. This is coordination only: no request to merge, deploy, start a writer, or recover any product unit. Draft #1625 remains unrelated; pricing-validation #2368 is outside the extension's scope. |
Replies in an idle plan unit's thread now reach that original unit even when the operator infers a read command. Explicitly typed read commands still run.
Why: A request to address nominal #3808 review comments was answered with
plane show, leaving the original U4 unit unwoken. This closes the held-unit routing path recorded in switchboard #2265 without creating another writer or changing unit identity.Where to look
plane showstill runs.Feedback wanted: Check that unit-owned natural-language replies should always reach the unit, while typed read commands remain available.
Risk: A natural-language status request in an idle unit thread now wakes that unit; users can type a read command for an immediate status answer. The separate pre-PR publication gap in #2265 remains open.
Verified: Red-first regression; 661 dispatcher/operator tests pass. Typecheck, spec, hygiene, formatting and diff checks pass.
Decisions (1)
Validation (3 criteria)
plane showcannot consume an action request in a held unit thread.plane.showran) and passes after it, with exactly one original-unit wake event and zero new runs.plane show, observesplane.show, and sees no additional unit event.npx vitest run src/core/dispatch/operator.test.ts src/core/dispatcher.test.ts: 661 passed. Scoped typecheck, specs, hygiene and Prettier checks passed.For agents
Review only this held-unit routing fix. The original PostHog U4 writer and PR #3808 remain separate; this PR does not claim the F2 preview receipt or repair #2265's pre-PR continuation path. Person merge and exact release validation remain required.
🤖 Generated with Claude Code