This repository was archived by the owner on Feb 20, 2026. It is now read-only.
v0.1.2
Fixed
- User message filtering: Changed from message-level to block-level filtering — system-injected content (
<system-reminder>, etc.) is now stripped per text block instead of discarding the entire user message, preventing legitimate instructions from being lost
Changed
- Simplified architecture: Merged
compact-save.sh+compact_save.pyinto a single self-contained Python script - Simplified tool call extraction: Replaced per-tool-type logic and priority system with unified parameter lookup
- Simplified restore: Removed legacy and generic fallback — session-specific snapshot only
- Large file optimization: Only reads last 2MB of transcripts to avoid timeout on long sessions
- Encoding safety: Added
encoding='utf-8', errors='replace'to handle non-UTF-8 characters gracefully - Better error messages: Errors now print to stderr instead of being silently swallowed
- Session isolation: snapshots saved per-session (
compact-snapshot-<session_id>.md) - Restore script parses
session_idfrom stdin JSON to locate the correct snapshot - Auto-cleanup: snapshot deleted after restore; stale snapshots (>10 min) removed during save
- User message numbering now chronological (1, 2, 3...) instead of reverse
- Tool call cap set to 20
- Key implementation details documented in CLAUDE.md and README.md
Removed
compact-save.shbash wrapper (merged into Python)- Transcript search fallback (hook always provides
transcript_path) - Legacy v0.1.x snapshot fallback in restore script
- Priority-based tool call capping