Description
In source/utils/auto-compact.ts:270-276, if the LLMSummariser fails or aborts, the catch block simply falls through to the mechanical (regex-based) compaction: if (signal?.aborted) return null; // fall through to mechanical.
The success path for LLM compaction labels itself (LLM summary), but the degraded path has no distinct user-facing notice. Users on flaky connections or rate-limited APIs receive lower-quality summaries but have no visibility into the fact that the LLM call failed.
Environment
- OS: All
- Node version: v20+
- Nanocoder version: Latest
Steps to Reproduce
- Turn on auto-compact with LLM strategy.
- Disconnect internet or force an API failure when a compaction triggers.
- Observe the compaction message.
Expected Behavior
The system should alert the user that the LLM failed and a mechanical fallback was used.
Actual Behavior
It falls back to mechanical compaction silently.
Additional Context
Implementation Notes
Add a (summary degraded: LLM call failed) marker to the compaction message when the catch block is triggered.
Description
In
source/utils/auto-compact.ts:270-276, if theLLMSummariserfails or aborts, the catch block simply falls through to the mechanical (regex-based) compaction:if (signal?.aborted) return null; // fall through to mechanical.The success path for LLM compaction labels itself
(LLM summary), but the degraded path has no distinct user-facing notice. Users on flaky connections or rate-limited APIs receive lower-quality summaries but have no visibility into the fact that the LLM call failed.Environment
Steps to Reproduce
Expected Behavior
The system should alert the user that the LLM failed and a mechanical fallback was used.
Actual Behavior
It falls back to mechanical compaction silently.
Additional Context
Implementation Notes
Add a
(summary degraded: LLM call failed)marker to the compaction message when the catch block is triggered.