Files
buzz/crates
npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 dbff640c0f fix(acp): close F-1/F-2/F-3 pre-Pass-3 blockers
F-1: gate resolve_startup_effort on desired_effort_gen.is_none()

resolve_startup_effort re-armed desired_effort from startup_effort
whenever it was None, which could not distinguish 'never picked' from
'user just cleared'. A post-clear checkout carries desired_effort=None
and desired_effort_gen=Some(N); the old guard would re-arm the startup
value, fire the apply branch instead of the cleared branch, and emit an
ok ack carrying the clear's nonce — causing the observer to persist the
old value over the user's explicit clear, with perpetual V-3 churn.

Fix: add && self.desired_effort_gen.is_none() so the startup-seeding
path is only taken when no live pick/clear has ever been stored (gen
never set). Startup seeding (gen None) still works; post-clear (gen
Some) falls through to the cleared branch as intended.

New test: test_resolve_startup_effort_noop_after_live_clear_gen_is_some

F-2: emit real configId in final cleared ack (pool.rs:1465)

The cleared ack hardcoded "effort" as the configId. awaitEffortOutcome
checks frame.configId !== configId before the nonce, so any adapter
whose thought_level configId differs would leave the clear promise
unsettled and fall to the 8s timeout.

Fix: read the configId from agent.model_capabilities (populated just
above at line 1336), falling back to "effort" when capabilities are
not yet populated (pre-discovery clear path).

F-3: box PoolEvent::Wake large variant (lib.rs:1910)

AgentPool grew past clippy's large_enum_variant threshold after the
committed_effort, nonce, and capability-cache fields were added.
CI Rust Lint and Windows Rust both failed on this branch at 333362a55.

Fix: Box<Result<AgentPool, String>> in the Wake variant; box on
construction, unbox on match.

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
2026-08-05 04:46:00 -04:00
..
2026-07-27 14:18:24 -04:00