Repository navigation
fix: 0.32.0 — less noise from the journal: strict recall, a one-line session start, hooks in the plugin - #69
Merged
Merged
Conversation
… in the plugin, cleanup-noise
…ecall, one model-switch record
…1 for RUSTSEC-2026-0346..0349, 0381, 0382
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The journal was putting a lot of text into the agent's context that had nothing to do with the work. Over 300 sessions, push-recall was added to tool results 13,696 times, mostly old decisions from other tasks matched on a single shared word. Every session start pasted three full resume packs with honesty scores and lists of files that no longer exist, every
task_createreply carried a chronicle line, and the MCP instructions shouted in capitals.Push-recall now fires only for the session's own task (or a task in the same module), only on what the agent or the user recorded, and only on a strong match: a shared file, issue or commit, or at least three meaningful words, more for a long command. Paths count as files, what an edit writes doesn't count at all, and
UTF-8is not an issue key. At most one hit per call, at most once every ten calls, never for the journal's own tools. It goes out asadditionalContextfor every tool: the async hook'supdatedMCPToolOutputnever reached the model and rewrote other servers' output.The session start is one line: the open task this session most likely continues (its own after a resume or compaction, else the one the git branch names, else the latest) and how to resume it. Packs, honesty scores and chronicle gaps are on request.
The classifier used to file whole answers, raw tool calls, compaction summaries and task notifications as confirmed rejections, and that was most of what recall later pushed back. It no longer records them, and the keyword heuristic files a rejection only for an approach ruled out in so many words. The new
task-journal cleanup-noiseretires what is already stored with one correction per entry, stamped with the entry's own time so nothing moves in the newest-first views. A correction can't be taken back, so it only takes plain noise: a "rejection" that is a whole answer or a question goes, a short one stays whatever its wording.--dry-runwrites every entry to a file, and--allwrites only with--yes. On a copy of my journals it would retire 2,265 entries in 36 projects.Claude Code hooks now ship in
plugin/hooks/hooks.json: session start, push-recall and model switches, never the classifier queue.install-hooksfor Claude Code takes the old ones out ofsettings.jsonafter a backup, and only once it finds the installed plugin's hooks. Until then a hook left insettings.jsonstands down beside the plugin's, and a model switch is recorded once either way./rewindtyped in a prompt is no longer recorded on Claude Code. Codex is unchanged, except that the classic nudge now fires on a session's first prompt and every sixth after it.The MCP instructions are seven plain lines.
The hooks were never the slow part:
ingest-hookandnudgetake 4–13 ms. The slow Stop and UserPromptSubmit hooks in those sessions belonged to other plugins.Checked by replaying 40 real tool calls from one session through both binaries on a copy of the journal: 0.31.2 pushed 18 recalls, all from other tasks; this one pushes none. A new session on the same task got one recall in 20 calls, from that task.
cargo test --workspace(749), clippy, fmt, doc and the mod tests (22) pass.Details: CHANGELOG.md, section 0.32.0.