Nanobot

Nanobot proposes keeping short idle chats intact while still feeding memory

Nanobot proposes separating memory journaling from replacement of the replayable conversation. Automatic idle compaction would retain raw short chats below a configurable 200,000-token threshold while still archiving their messages for Dream. Manual compaction remains unchanged, and the proposal is not yet merged.

← Back to homeOriginal source ↗

Nanobot's latest memory proposal separates two operations that have been traveling together: making a conversation available to its Dream memory process and replacing the conversation used for replay with a summary. The contributor argues that tiny idle chats should still feed memory but do not need to lose their original wording when the user returns.

PR 5885 adds a token threshold for automatic idle replacement. Below it, new messages are journaled and the raw replayable conversation remains. At or above it, the existing summary-replacement path runs. The distinction is narrow but consequential: retaining memory coverage no longer necessarily requires accepting a lossy checkpoint for every expired session.

The facts

- The September 23 proposal is open and unmerged at inspection. - idleCompactReplaceAfterTokens defaults to 200,000; zero selects the prior always-replace behavior. - The threshold measures the replayable prompt, including system text, tools and history, not just the user's visible messages. - A separate history_archived cursor tracks journaling independently of the replay checkpoint boundary. - Older sessions default the new cursor to their existing archive boundary so they are not journaled again from the beginning. - Explicit /compact and the direct SDK compaction path keep always-replace behavior; the new gate is for automatic idle work.

Why it matters

Memory and conversational fidelity are related but not identical goals. A useful fact may belong in long-term memory while the exact short exchange remains the best context for a follow-up. Combining those policies into one timer makes operators choose between them. The proposal instead provides a second decision boundary, allowing idle time to trigger journaling without automatically deciding that replay should be rewritten. It also creates a new cursor whose consistency needs testing when messages arrive during maintenance.

Current

Checked September 24, 2026. The inspected release baseline is v0.3.5. The primary source is open proposal. Package availability and development-source state are separate: a tag does not establish that an open proposal is usable, and a merge does not establish that every installation has received it.

Evidence

Primary: HKUDS/nanobot PR #5885 (https://github.com/HKUDS/nanobot/pull/5885). Supporting context: HKUDS/nanobot — configuration.md at 59a472e0 (https://github.com/HKUDS/nanobot/blob/59a472e03959a6d8e42202f667a9f774d0ce5297/docs%2Fconfiguration.md); HKUDS/nanobot PR #5885 — implementation diff (https://github.com/HKUDS/nanobot/pull/5885/files). Source pages and available diffs were inspected; test and live-account results remain attributed to their authors, not independently repeated measurements.

Operator take

Evaluate the threshold against the full prompt your installation actually constructs; a large fixed tool or system prefix can matter even for a brief chat. Check repeat idle scans, threshold crossing, new messages appended during archiving and upgrades from already compacted sessions. Do not assume the proposal eliminates every model call associated with memory processing: its claim is specifically about when replay is replaced, while journaling and the wider memory pipeline remain active.

Caveat

The contributor reports 1,978 focused tests and a broader run with 7,374 passes, 64 skips and one Matrix dependency-related failure. That is not an entirely green full-suite claim, and none of it was independently rerun here. Existing summary checkpoints are not converted back into lost original conversations by the new cursor. Package availability remains separate from this open proposal.

The contributor reports 1,978 focused tests and a broader run with 7,374 passes, 64 skips and one Matrix dependency-related failure. That is not an entirely green full-suite claim, and none of it was independently rerun here. Existing summary checkpoints are not converted back into lost original conversations by the new cursor. Package availability remains separate from this open proposal.