Repository navigation
OptChat v0.5.0
Tracks Wayfinder map #9. Signed tag v0.5.0 (commit bc633ac). CI is green on the pinned (18.9.1) and latest SDK cohorts, the installed plugin matches the tag, and the installed-artifact smoke passes against OMP 18.9.1.
Changes
- Per-worktree memory (behavior change). Inside a git repo, each worktree gets its own store under
~/.omp/agent/optchat-worktrees/<name>-<hash>. Outside git, the global store is still used.--optchat-dir ~/.omp/agent/optchatrestores the old single memory. If another session holds the store, OptChat is inactive for that session instead of refusing every prompt. - Compressor refusal fallback. A provider refusal is retried once on the main model, with a 30 s bound. If that also fails, OptChat stores a labeled
[unsummarized: compressor refused]excerpt so memory keeps settling. - Crash durability (#11). A real-process kill matrix covers 27 write stages: no acknowledged record was lost. HTML export is now atomic.
- Orphan GC (#12). Unreferenced image blobs and abandoned staging files are reclaimed at open.
- Benchmark (#10, #13). Paired on/off arms, compressor comparison, adversarial and long corpora, a subagent-memory experiment, and a hard dollar cap.
- Upstream (#14). Host API proposals posted, including can1357/oh-my-pi#15365.
Measured (Sonnet 5.5 main, Haiku 5.5 compressor; samples, not savings claims)
| Setting | OptChat | Plain OMP |
|---|---|---|
| History fits context (n=3) | 24/24 correct; $0.45–0.52 per run | 24/24 correct; $0.32 per run |
| History past a 200k window (n=3) | 24/24 correct and quoted; $1.10–1.18 per run | 16/24 correct values, 10/24 quoted; $0.05–0.56 per run |
| Subagent tasks (n=4 each) | 4/4 with child view | 0/4 blind |
Haiku 4.5 as compressor needed 3× the calls (230 shortening retries) at 22× the cost of Haiku 5.5, and did not settle within the run window. Claude 5.x sometimes refuses benign summarization with Refusal (bio); the fallback covers it.
See README "0.5.0 measurements" and CHANGELOG for details.