Compare
Sorry, something went wrong.
No results found
Major bug-hunt: 15+ fixes across session, provider, tools, rtk filter
HIGH severity:
- H1: is_compacting flag leaks on generate_summary error (now resets via match)
- H2: std::sync::RwLock for approval_fn blocks tokio runtime (switched to tokio::sync::RwLock)
- H3: reset() races with compact() (now waits for compaction, clears flags)
- H4: poisoned approval_fn lock silently allows all tools (deny on lock failure)
MEDIUM severity:
- M1: abort signal lost between tool-loop iterations (persistent abort_requested flag)
- M1b: empty response retry has no cap (5 retry limit with backoff)
- M2: goal mode agent_end event handling broken for multi-iteration loops (unbounded channel, last-event-forward)
- M3: goal mode swallows run_tool_loop errors (now logged and breaks loop)
- M4: verify_goal returns true on API error (now retries 3x, returns false on failure)
- M5: steer() doesn't actually interrupt (now calls abort())
- M6: quality correction queued but lost when no tool calls (inline drain + re-loop)
- M7: message_count tracking inconsistent (removed manual field, uses Vec::len())
- M8: persist_message fails silently (now logs errors)
- M9: is_streaming leaks on panic (switched to AtomicBool, compare_exchange for atomic set)
LOW severity:
- L1: removed dead 'max turns exceeded' unreachable code
- L2: from_session creates orphaned session file (new_with_session_path avoids double-create)
- L3/L4: reset clears is_streaming, is_compacting, abort_signal
All 183 lib + 6 integration + 24 e2e tests pass.