You can't run two summarizers — and now the tooling makes that obvious
A customer ran captain-memo install twice (codex, then agy) expecting both. Only one summarizer is ever active. Three fixes so this can't confuse anyone again:
1 — The install wizard announces the swap. Re-running with a different provider now prints:
summarizer changed: codex → agy (this REPLACES it — only one summarizer runs at a time)
It was silently overwriting before.
2 — An unrecognized provider fails LOUD. A combined value like codex,agy (or any typo) used to silently fall back to claude-oauth — which on a no-Claude box means nothing gets summarized. Now the worker logs the valid list and special-cases the mistake:
CAPTAIN_MEMO_SUMMARIZER_PROVIDER: you set more than one provider ("codex,agy") — only ONE is
supported, pick a single value. Valid: claude-oauth | codex | agy | anthropic | claude-code |
openai-compatible. Falling back to 'claude-oauth', which needs a Claude login — on a machine
with no Claude, set a real provider or nothing gets summarized.
(Resolution is now a pure, unit-tested resolveSummarizerProvider.)
3 — captain-memo stats and top show the active summarizer. A new Summarizer line reports the resolved provider (post-fallback, so a bad codex,agy shows as its real claude-oauth fallback — not the raw string), the model, and whether it's actually summarizing:
Summarizer ● agy · Gemini 3.5 Flash (Low)
Summarizer ○ claude-oauth (resolved, but NOT summarizing — check its login/config)
/stats gained a summarizer field. (This also fixes a gap: stats never showed the summarizer before.)
Docs: USAGE now leads with a "pick exactly ONE" callout — install replaces (doesn't add), a combined value is invalid, and how to check which one is live.
Suite: 1125/1125.