mirror of
https://github.com/katanemo/plano.git
synced 2026-06-08 14:55:14 +02:00
- Convert ClaudeProcess::last_used from tokio::sync::Mutex<Instant> to
std::sync::Mutex<Instant>: the critical section is one Copy read/write
with no .await, so a sync mutex lets SessionManager iterate sessions
without holding the map lock across an await point. Fixes the
lock-across-await pattern in lru_session_id and evict_idle.
- Simplify SessionManager::get_or_spawn to a single map-lock acquisition
on the fast path; only release the lock for the rare case where we
need to await a victim shutdown before spawning.
- Replace the hand-rolled "deterministic UUID via DefaultHasher" with a
real UUIDv5 over the OID namespace (uuid feature `v5`). Stable across
Rust toolchain versions, unlike SipHash, and matches what the doc on
the helper claimed all along.
- Introduce ProcessError::MissingStdio { which } so spawns where
Stdio::piped() somehow returned None surface as their own programmer-
error variant rather than masquerading as ExitedEarly.
- Delete the dead is_zero() helper.
|
||
|---|---|---|
| .. | ||
| .vscode | ||
| brightstaff | ||
| common | ||
| hermesllm | ||
| llm_gateway | ||
| prompt_gateway | ||
| build.sh | ||
| Cargo.lock | ||
| Cargo.toml | ||