Releases: GodsBoy/lossless-code
Releases · GodsBoy/lossless-code
v1.1.1 — fix claude --print cwd pollution across install paths
Patch release bundling every main-branch delta accumulated since the v1.1.0 marketplace artifact, headlined by the claude --print CWD fix that closes the claude --resume pollution bug.
Marketplace users: upgrade to pick up the fix. Manual installs are already covered by re-running install.sh.
Fixed
claude --printsubprocess CWD pollution (PR #11). The summariser'sclaude --printcalls now pincwd=to~/.lossless-code/.cli-cwd, so Claude Code files internal summarisation sessions in their own bucket instead of polluting the user'sclaude --resumelist with hundreds of "Summarise the following conversation turns concisely…" entries. Includesscripts/check_summariser_pollution.pyregression detector.- Installer + README sync for fingerprint feature (PR #10).
install.shnow copies the new PreToolUse / PostToolUse hooks and thescripts/file_context.py,scripts/hook_store_tool_call.pyfiles added by the fingerprint feature; README documents the newfileContextEnabledflag and the hook surface.
Added — fingerprint file context (default off, PR #9)
fileContextEnabledconfig flag (defaultfalse) gates all new behavior. Flip totruein~/.lossless-code/config.jsonto opt in.- Schema additions:
messages.file_path,summaries.kind, plusidx_messages_file_path(partial) andidx_summary_sources_sourcecomposite. Migrations are idempotent. - PostToolUse hook (
hook_store_tool_call.py) records which file aRead | Edit | Write | MultiEdit | NotebookEdittool call touched. - Polarity classification (
summarise.classify_chunk_polarity) tags summaries ascreated | edited | discussed | mixed. db.get_summaries_for_filewalkssummary_sourcesupward from a message'sfile_pathvia recursive CTE (hop ceiling 16) and excludes consolidated nodes.inject_context.format_file_fingerprintrenders a compact 200-token fingerprint with a truncation ladder.- PreToolUse hook (
pre_tool_use.sh+scripts/file_context.py) injects the fingerprint asadditionalContextbefore file-touching tools run. JSON cache undercache/with 60s TTL, file-locked reads/writes, atomic replace, single-flight stampede guard. Cold path opensvault.dbread-only so it never blocks the writer. lcc_expand --file <path>(CLI) and{"file": "..."}(MCP) drill from a file path to the recent summaries that reference it.lcc statussurfaces tagged message count, distinct tagged files, and cached fingerprint count when the flag is on.
Changed
scripts/db.pysplit intoscripts/db/package (PR #8). Single 745-line module replaced with focused submodules:config,schema,messages,summaries,sessions,embeddings,search,dream_log. Public import surface is preserved; existing call sites unchanged.- BM25 prompt-aware context eviction (PR #7). Context injection now scores candidate summaries against the live prompt with BM25 instead of a flat recency cut.
Added — earlier in the v1.1.0 → v1.1.1 window
- Session filtering for lossless-claw v0.7.0 parity: stateless session gate, stop-hook filtering, plus DB-layer tests.
- Circuit breaker + dynamic chunk sizing for summarisation.
- Vault bloat protection: summary size caps and dream pagination.
claude-cliprovider for Claude Max / Pro subscription users (no API key path).ANTHROPIC_API_KEYis stripped from the subprocess env so the CLI falls back to OAuth.- Custom Anthropic-compatible providers (MiniMax and others) via
openaiBaseUrl, plus provider auto-detection and structured error handling. dream --statusflag for inspecting dream-cycle state.scripts/check_summariser_pollution.pystdlib regression detector for the cwd pollution bug.
Upgrade
Plugin marketplace users: restart Claude Code so the marketplace cache re-fetches ~/.claude/plugins/cache/lossless-code/lossless-code/1.1.1/. Verify with python3 ~/.claude/plugins/cache/lossless-code/lossless-code/1.1.1/scripts/check_summariser_pollution.py — exit 0 means clean.
Manual install users: cd lossless-code && git pull && ./install.sh.