squeez 1.29.0 → 1.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/CHANGELOG.md +574 -1
  2. package/README.md +28 -28
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -9,6 +9,577 @@ conventional commit messages on `main`.
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [1.30.0] - 2026-06-22
13
+
14
+ ### Added
15
+ - feat(toon): encode objects with nested values instead of rejecting them (#160)
16
+ - feat(truncation): relevance-aware truncation keeps the lines that matter (#158)
17
+ - feat(log-template): collapse near-identical log lines into templated counts (#156)
18
+ - feat(retrieve): reversible compression — stash originals + squeez_retrieve (#154)
19
+ - feat(config): add `squeez config` CLI + `/squeez` slash command (#152)
20
+ - feat(sig-mode): capture indented method signatures inside impl/class blocks (#147)
21
+ - feat(safety): workflow abuse prevention — all 8 gap items from transcript audit
22
+ - feat(context): real-context tracking, image/skill dedup, quota nudges, transcript integration
23
+ - feat(economy): enterprise-aware mode — Bedrock/Vertex/OTEL detection + USD savings (#135)
24
+ - feat(benchmark): add information-preservation guard against output-token inflation (#133)
25
+ - feat(cloud): TOON re-encoder for JSON-array outputs (gh, kubectl, aws, gcloud, az) (#134)
26
+ - feat(sig-mode): preserve attribute / decorator above kept signatures (#137)
27
+ - feat(economy): auto-curation nudges + cross-session handler stats (#118)
28
+ - feat(hosts): add Pi adapter (#116)
29
+ - feat(compress): plug Agent/Task output, HTML bash, and PreCompact telemetry gaps
30
+ - feat(bench): add pytest, jest, xcode_build scenarios — 23 → 26 scenarios
31
+ - feat(hooks): PreCompact + PostCompact lifecycle hooks (#102)
32
+ - feat(hooks): SubagentStop hook feeds sub-agent output into SessionContext (#101)
33
+ - feat(monitor): add Monitor tool to PostToolUse compress-output dispatch (#100)
34
+ - PostToolUse updatedToolOutput for Read/Grep/Glob (Claude Code v2.1.119+)
35
+ - session-analysis improvements — az JSON, vite noise, prisma generate, hook health check (#90)
36
+ - feat(fs): auto-compress cat'd markdown via compress_md pipeline (#88)
37
+ - feat(economy): compress Agent/Task prompt at PreToolUse time (#87)
38
+ - feat(handlers): xcodebuild noise filter + log-file tail detection (#84)
39
+ - feat(bench): efficiency-proof benchmark suite — quantitative savings for US-001/003/004 (#74)
40
+ - token-compression power-up — sig-mode, memory-file warn, structured summaries, hypothesis benchmark (#70)
41
+ - feat(setup): adapter-driven setup/uninstall across all hosts (#58)
42
+ - feat(hosts): Codex CLI adapter (hooks + AGENTS.md soft-budget) (#55)
43
+ - feat(hosts): Gemini CLI adapter (BeforeTool/AfterTool hooks) (#52)
44
+ - feat(hosts): full-parity OpenCode adapter + plugin rewrite (#48)
45
+ - wrangler, playwright, next build handlers + bun/drizzle routing (#34)
46
+ - feat(opus47): adapt squeez for Opus 4.7 tokenizer and xhigh effort
47
+ - feat(setup): auto-detect lang from CLAUDE.md/locale + stderr update notification (#29)
48
+ - v0.3.0 — token economy, pt-BR caveman, aggressive defaults, full hook install
49
+ - structured session memory, cross-session search, error snippets, configurable tunables
50
+ - feat(setup): create config.ini on first install
51
+ - feat(i18n): locale-aware compress-md with pt-BR support (#25)
52
+ - fuzzy dedup, adaptive intensity, benign summarize, MCP server, temporal memory, protocol payload
53
+ - Windows setup via cargo/npm + squeez update fix
54
+ - feat(benchmark): add squeez benchmark command with 19-scenario test suite
55
+ - feat(ci): re-add promote-develop workflow with correct registration
56
+ - feat(init): inject persona into ~/.claude/CLAUDE.md on every session start
57
+ - feat(npm+crates): add npm package and publish jobs to release workflow
58
+ - feat(statusline): add statusline.sh to repo; install via install.sh; show all-time stats
59
+ - compress-md, caveman persona, squeez update, track-result hook
60
+ - feat(context): adaptive intensity always picks Ultra
61
+ - feat(context): aggressive token-engine — adaptive intensity, redundancy cache, summarize fallback
62
+ - add Windows support to install.sh and release.yml
63
+ - add home_dir() helper with USERPROFILE fallback for Windows
64
+ - cross-platform wrap — shell_command() helper, cfg(unix) signal gates, libc unix-only
65
+ - add GitHub Copilot CLI support
66
+ - add OpenCode plugin for automatic Bash compression
67
+ - add universal installer support for macOS and Linux
68
+ - expand benchmarks, edge-case tests, and README polish
69
+ - add SessionStart + PostToolUse hooks, update install.sh and README
70
+ - wrap.rs — artifact capture (files/errors/git/tests) + compact warning header
71
+ - squeez init — session start, prior memory banner, session finalization (TDD)
72
+ - squeez track — token accumulation + session event log (TDD)
73
+ - memory.rs — Summary, read_last_n, write_summary, prune_old (TDD)
74
+ - session.rs — CurrentSession, append_event, date math (TDD)
75
+ - json_util helpers + compact_threshold_tokens, memory_retention_days config
76
+ - benchmark system — all fixtures passing
77
+ - build.sh compiles + installs squeez, registers hook
78
+ - PreToolUse hook script
79
+ - fs and runtime handlers — all handler tests passing
80
+ - cloud, database, network handlers (TDD)
81
+ - typescript and build handlers (TDD)
82
+ - package_mgr and test_runner handlers (TDD)
83
+ - git and docker handlers (TDD)
84
+ - wrap subcommand — sh -c, 120s timeout, signal forwarding, bypass check
85
+ - Handler trait with cmd+config, generic handler, command router, filter_stdin
86
+ - truncation strategy (TDD) — all strategy tests passing
87
+ - grouping strategy (TDD)
88
+ - dedup strategy (TDD)
89
+ - smart_filter strategy with node_modules frame removal (TDD)
90
+ - implement config.ini parser (TDD)
91
+
92
+ ### Changed
93
+ - chore(release): bump version to 1.30.0 [squeez-release-bot]
94
+ - docs: update changelog and benchmarks for v1.29.0
95
+ - chore(release): bump version to 1.29.0 [squeez-release-bot]
96
+ - docs: update changelog and benchmarks for v1.28.0
97
+ - chore(release): bump version to 1.28.0 [squeez-release-bot]
98
+ - docs: update changelog and benchmarks for v1.27.0
99
+ - chore(release): bump version to 1.27.0 [squeez-release-bot]
100
+ - docs: update changelog and benchmarks for v1.26.0
101
+ - chore(release): bump version to 1.26.0 [squeez-release-bot]
102
+ - docs: update changelog and benchmarks for v1.25.0
103
+ - chore(release): bump version to 1.25.0 [squeez-release-bot]
104
+ - docs: update changelog and benchmarks for v1.24.0
105
+ - docs: update changelog and benchmarks for v1.23.1
106
+ - chore(release): bump version to 1.24.0 [squeez-release-bot]
107
+ - chore(release): bump version to 1.23.1 [squeez-release-bot]
108
+ - docs: update changelog and benchmarks for v1.23.0
109
+ - chore(release): bump version to 1.23.0 [squeez-release-bot]
110
+ - docs: update changelog and benchmarks for v1.22.1
111
+ - docs: update changelog and benchmarks for v1.22.1
112
+ - docs: update changelog and benchmarks for v1.22.1
113
+ - chore(release): bump version to 1.22.1 [squeez-release-bot]
114
+ - docs: update changelog and benchmarks for v1.22.0
115
+ - chore(release): bump version to 1.22.0 [squeez-release-bot]
116
+ - docs: update changelog and benchmarks for v1.21.1
117
+ - chore(release): bump version to 1.21.1 [squeez-release-bot]
118
+ - refactor(skills): session-long re-injection dedup; drop lexical skill compression (#142)
119
+ - docs: update changelog and benchmarks for v1.21.0
120
+ - chore(release): bump version to 1.21.0 [squeez-release-bot]
121
+ - docs: update changelog and benchmarks for v1.20.0
122
+ - chore(release): bump version to 1.20.0 [squeez-release-bot]
123
+ - docs(readme): add "How squeez compares" table vs rtk / KRLabs squeez / sqz / LLMLingua-2 / TOON (#138)
124
+ - test(cache): lock in byte-stability of MCP and protocol payloads (#136)
125
+ - docs: update changelog and benchmarks for v1.19.4
126
+ - chore(release): bump version to 1.19.4 [squeez-release-bot]
127
+ - docs: update changelog and benchmarks for v1.19.3
128
+ - chore(release): bump version to 1.19.3 [squeez-release-bot]
129
+ - docs: update changelog and benchmarks for v1.19.2
130
+ - chore(release): bump version to 1.19.2 [squeez-release-bot]
131
+ - docs: update changelog and benchmarks for v1.19.1
132
+ - chore(release): bump version to 1.19.1 [squeez-release-bot]
133
+ - docs: update changelog and benchmarks for v1.19.0
134
+ - chore(release): bump version to 1.19.0 [squeez-release-bot]
135
+ - docs: update changelog and benchmarks for v1.18.1
136
+ - chore(release): bump version to 1.18.1 [squeez-release-bot]
137
+ - docs: update changelog and benchmarks for v1.18.0
138
+ - chore(release): bump version to 1.18.0 [squeez-release-bot]
139
+ - docs: document DCO Signed-off-by requirement in CLAUDE.md (#111)
140
+ - docs: update changelog and benchmarks for v1.17.0
141
+ - chore(release): bump version to 1.17.0 [squeez-release-bot]
142
+ - docs: update changelog and benchmarks for v1.16.0
143
+ - chore(release): bump version to 1.16.0 [squeez-release-bot]
144
+ - docs: update changelog and benchmarks for v1.15.1
145
+ - chore(release): bump version to 1.15.1 [squeez-release-bot]
146
+ - docs: update README and CLAUDE.md for new hooks and PostToolUse rewrite (#108)
147
+ - refactor(bench): unify benches/ into bench/ — single benchmark directory (#106)
148
+ - test: add missing coverage for compress-output, filter dispatch, SubagentStop, hook registration (#103)
149
+ - docs: update changelog and benchmarks for v1.15.0
150
+ - chore(release): bump version to 1.15.0 [squeez-release-bot]
151
+ - docs: update changelog and benchmarks for v1.13.0
152
+ - chore(release): bump version to 1.14.0 [squeez-release-bot]
153
+ - chore(release): bump version to 1.13.0 [squeez-release-bot]
154
+ - docs: update changelog and benchmarks for v1.12.0
155
+ - chore(release): bump version to 1.12.0 [squeez-release-bot]
156
+ - docs(codex): update adapter comments and README for 0.123.0 hook surface
157
+ - docs: update changelog and benchmarks for v1.11.2
158
+ - chore(release): bump version to 1.11.2 [squeez-release-bot]
159
+ - docs: update changelog and benchmarks for v1.11.1
160
+ - chore(release): bump version to 1.11.1 [squeez-release-bot]
161
+ - docs: update changelog and benchmarks for v1.11.0
162
+ - chore(release): bump version to 1.11.0 [squeez-release-bot]
163
+ - docs: update changelog and benchmarks for v1.10.0
164
+ - docs: update changelog and benchmarks for v1.9.0
165
+ - chore(release): bump version to 1.10.0 [squeez-release-bot]
166
+ - docs(readme): document squeez's compression scope and architectural limits (#85)
167
+ - chore(release): bump version to 1.9.0 [squeez-release-bot]
168
+ - chore(release): bump version to 1.8.0 [squeez-release-bot]
169
+ - docs: update changelog and benchmarks for v1.7.7
170
+ - chore(release): bump version to 1.7.7 [squeez-release-bot]
171
+ - docs: update changelog and benchmarks for v1.7.6
172
+ - chore(release): bump version to 1.7.6 [squeez-release-bot]
173
+ - docs: update changelog and benchmarks for v1.7.5
174
+ - chore(release): bump version to 1.7.5 [squeez-release-bot]
175
+ - docs: update changelog and benchmarks for v1.7.4
176
+ - chore(release): bump version to 1.7.4 [squeez-release-bot]
177
+ - perf: O(log n) refactor — tail read, offset index, single-pass parser
178
+ - docs: update changelog and benchmarks for v1.7.3
179
+ - chore(release): bump version to 1.7.3 [squeez-release-bot]
180
+ - chore(release): bump version to 1.7.2 [squeez-release-bot]
181
+ - restore: revert accidental deletion of auto-release.yml workflow
182
+ - docs: update changelog and benchmarks for v1.7.1
183
+ - chore(release): bump version to 1.7.1 [squeez-release-bot]
184
+ - chore: relicense to Apache 2.0 + add DCO policy + banner (#76)
185
+ - docs: update changelog and benchmarks for v1.7.0
186
+ - chore(release): bump version to 1.7.0 [squeez-release-bot]
187
+ - docs: update changelog and benchmarks for v1.6.1
188
+ - chore(release): bump version to 1.6.1 [squeez-release-bot]
189
+ - docs: update changelog and benchmarks for v1.6.0
190
+ - chore(release): bump version to 1.6.0 [squeez-release-bot]
191
+ - docs: update changelog and benchmarks for v1.5.2
192
+ - chore(release): bump version to 1.5.2 [squeez-release-bot]
193
+ - chore(release): bump version to 1.5.1 [squeez-release-bot]
194
+ - docs: five-host matrix + squeez setup/uninstall flow (#63)
195
+ - refactor(install): delegate host registration to 'squeez setup' (#60)
196
+ - chore(release): bump version to 1.5.0 [squeez-release-bot]
197
+ - chore(release): bump version to 1.4.0 [squeez-release-bot]
198
+ - chore(release): bump version to 1.3.0 [squeez-release-bot]
199
+ - chore(release): bump version to 1.2.0 [squeez-release-bot]
200
+ - chore(release): bump version to 1.1.0 [squeez-release-bot]
201
+ - chore(release): bump version to 1.0.0 [skip release]
202
+ - refactor(hosts): extract HostAdapter trait + migrate Claude Code and Copilot (#42)
203
+ - ci: conventional-commit-driven auto-release (#40)
204
+ - chore(gov): issue-form templates + refined PR template (#39)
205
+ - docs: update changelog and benchmarks for v0.4.1 [skip release] (#33)
206
+ - chore(release): bump version to 0.4.1
207
+ - chore(release): bump version to 0.4.0
208
+ - docs: update changelog and benchmarks for v0.3.2 [skip release] (#30)
209
+ - chore: bump version to 0.3.2
210
+ - docs: add shields.io badge for changelog link
211
+ - chore: bump version to 0.3.1
212
+ - chore: bump version to 0.2.3
213
+ - docs: update README with 11 MCP tools, structured memory, and advanced tunables
214
+ - chore: bump version to 0.2.2
215
+ - docs: rewrite README with full install instructions (curl/npm/cargo) and all commands
216
+ - chore: refresh bench/report.md from latest run [skip release]
217
+ - chore(ci): remove promote-develop workflow (re-adding to fix broken registration)
218
+ - chore: bump version to 0.2.1 + auto-release on merge to main [skip release]
219
+ - chore: bump version to 0.2.0; add Cargo.toml metadata
220
+ - ci: PR template, linked-issue enforcement, no-claude-trailer check
221
+ - docs: update README with PR1+PR2 features, fresh benchmarks, changelog
222
+ - ci: auto-delete branches after PR merge
223
+ - docs: update Windows installation instructions and prerequisites in README
224
+ - docs: add Windows support and Rust install instructions to README
225
+ - refactor: use session::home_dir() in config and init (Windows compat)
226
+ - ci: trigger promote workflow (test)
227
+ - ci(workflow): avoid failing promote job when PR creation is not permitted; add PR_CREATION_TOKEN guidance
228
+ - docs(readme): add changelog, contribution workflow, and benchmark notes
229
+ - ci(workflow): create/update PR from develop to main on push
230
+ - chore: add .worktrees/ to gitignore
231
+ - chore: add docs/ to gitignore (local design specs)
232
+ - docs: update README for GitHub Copilot CLI support
233
+ - security: fix remaining LOW findings in wrap.rs
234
+ - security: fix 2 follow-up findings from second audit
235
+ - security: fix all 8 findings from security audit
236
+ - ci: build and install binary before running benchmarks
237
+ - chore: add GitHub sponsor button
238
+ - chore: ignore .omc/ directory, remove from tracking
239
+ - chore: update benchmark report (7/7 passing)
240
+ - docs: update README — real benchmarks, Phase 2 config, how it works
241
+ - style: cargo fmt on session.rs and test_session.rs
242
+ - chore: open source files — README, LICENSE, CI/release workflows, install.sh
243
+ - chore: scaffold squeez Rust project
244
+
245
+ ### Fixed
246
+ - fix(fs): stop collapsing ls/find listings to "N modified" count (#151)
247
+ - fix(hooks): strip --no-squeez marker in codex and gemini pretooluse hooks (#146)
248
+ - fix(release): make publish-npm non-blocking; add npm whoami diagnostic
249
+ - fix(codex): emit current PreToolUse/SessionStart hook shapes; silence PostToolUse (#143)
250
+ - fix(claude-code): stop writing statusline.sh + remove orphans on install (#126)
251
+ - fix(claude-code): stop registering squeez statusLine + delegate install to adapter (#124)
252
+ - fix(compress-output): close PostToolUse compression gaps for Read/Edit/Write (#121)
253
+ - fix(claude-code): write hooks under settings.hooks.<event>, not at top level (#119)
254
+ - fix(opencode): shell-quote bash command before prepending `squeez wrap` (#115)
255
+ - fix(statusline): show compression % and fix Python heredoc expansion bug
256
+ - plan-mode passthrough + release description body (#95)
257
+ - fix(session-start): health check missed top-level event keys (#92)
258
+ - fix(hosts): expand PreToolUse matcher to cover Read, Grep, Glob, Agent, Task (#86)
259
+ - fix(json_util,statusline): whitespace-tolerant JSON parser + UTF-8 statusline on Windows (#81)
260
+ - fix(hosts): preserve user settings.json when existing JSON fails to parse (#83)
261
+ - prevent OOM from unbounded file reads + data integrity fixes
262
+ - fix(ci): use native ubuntu-24.04-arm runner for aarch64 build
263
+ - eliminate memory leaks causing 16 GB RAM on MCP server startup (#79)
264
+ - fix(hooks): add hookEventName to PreToolUse hookSpecificOutput (#78)
265
+ - fix(opencode): align plugin with PluginModule SDK shape (default export + server map) (#72)
266
+ - fix(ci): push release docs directly to main (loop-safe) (#68)
267
+ - back Copilot BUDGET_HARD with Read/Grep hook + update upstream refs (#65)
268
+ - fix(ci): startsWith guard for auto-release recursion (#46)
269
+ - fix(ci): tighten auto-release bump detection + fix tag push (#44)
270
+ - fix(ci): add --allow-dirty to cargo publish for Cargo.lock changes
271
+ - fix(ci): skip publish gracefully when version already exists on crates.io/npm
272
+ - fix(ci): run update-docs even if publish jobs fail (already published)
273
+ - fix(ci): continue-on-error for publish jobs so update-docs always runs
274
+ - fix(ci): add pull-requests write permission to update-docs job
275
+ - fix(update): cargo-managed self-update + Windows deferred install + session update check (#27)
276
+ - fix(ci): update-docs creates PR instead of pushing directly to protected main
277
+ - fix(npm): copy README.md into npm package before publish; add readme field
278
+ - fix(ci): add toolchain: stable to all dtolnay/rust-toolchain steps
279
+ - fix(ci): handle no previous tags in generate-changelog.sh (pipefail + grep -v)
280
+ - fix(ci): dispatch release.yml from auto-release to bypass GITHUB_TOKEN chain limit [skip release]
281
+ - fix(ci): fix flaky test tmp dir collision + simplify auto-release
282
+ - fix(bench): exclude synthetic fixtures from filter-mode bench/run.sh
283
+ - fix(ci): remove secrets in step if-conditions — check token inside script instead
284
+ - fix(ci): rename promote-develop → promote-to-main to fix broken workflow registration
285
+ - fix(ci): bump github-script to v7 in promote-develop to force workflow re-registration
286
+ - fix(compress_md): use byte slice comparison to avoid UTF-8 char boundary panic
287
+ - fix(statusline): remove Ctx% — show only squeez compression metrics
288
+ - fix(statusline): green ✓, proper capitalization, real-time context %, all metrics
289
+ - resolve gap analysis — new handlers, wider redundancy window, token budget
290
+ - install.sh — clarify PostToolUse no-matcher intent, guard version echo
291
+ - wrap.rs — safe git hex check, O(n) dedup, full cmd in event log
292
+ - use ends_with for files_committed check in init finalize
293
+ - json_util — guard extract_u64 empty digit, add json_util test coverage
294
+ - add pre-flight binary check to bench/run.sh
295
+ - atomic settings.json write + uninstall safety guards
296
+ - harden pretooluse hook (shlex.quote, error handling, single path source)
297
+ - wrap — process_group(0) for correct signal forwarding, tighten is_streaming
298
+
299
+ ## [1.29.0] - 2026-06-22
300
+
301
+ ### Added
302
+ - feat(truncation): relevance-aware truncation keeps the lines that matter (#158)
303
+ - feat(log-template): collapse near-identical log lines into templated counts (#156)
304
+ - feat(retrieve): reversible compression — stash originals + squeez_retrieve (#154)
305
+ - feat(config): add `squeez config` CLI + `/squeez` slash command (#152)
306
+ - feat(sig-mode): capture indented method signatures inside impl/class blocks (#147)
307
+ - feat(safety): workflow abuse prevention — all 8 gap items from transcript audit
308
+ - feat(context): real-context tracking, image/skill dedup, quota nudges, transcript integration
309
+ - feat(economy): enterprise-aware mode — Bedrock/Vertex/OTEL detection + USD savings (#135)
310
+ - feat(benchmark): add information-preservation guard against output-token inflation (#133)
311
+ - feat(cloud): TOON re-encoder for JSON-array outputs (gh, kubectl, aws, gcloud, az) (#134)
312
+ - feat(sig-mode): preserve attribute / decorator above kept signatures (#137)
313
+ - feat(economy): auto-curation nudges + cross-session handler stats (#118)
314
+ - feat(hosts): add Pi adapter (#116)
315
+ - feat(compress): plug Agent/Task output, HTML bash, and PreCompact telemetry gaps
316
+ - feat(bench): add pytest, jest, xcode_build scenarios — 23 → 26 scenarios
317
+ - feat(hooks): PreCompact + PostCompact lifecycle hooks (#102)
318
+ - feat(hooks): SubagentStop hook feeds sub-agent output into SessionContext (#101)
319
+ - feat(monitor): add Monitor tool to PostToolUse compress-output dispatch (#100)
320
+ - PostToolUse updatedToolOutput for Read/Grep/Glob (Claude Code v2.1.119+)
321
+ - session-analysis improvements — az JSON, vite noise, prisma generate, hook health check (#90)
322
+ - feat(fs): auto-compress cat'd markdown via compress_md pipeline (#88)
323
+ - feat(economy): compress Agent/Task prompt at PreToolUse time (#87)
324
+ - feat(handlers): xcodebuild noise filter + log-file tail detection (#84)
325
+ - feat(bench): efficiency-proof benchmark suite — quantitative savings for US-001/003/004 (#74)
326
+ - token-compression power-up — sig-mode, memory-file warn, structured summaries, hypothesis benchmark (#70)
327
+ - feat(setup): adapter-driven setup/uninstall across all hosts (#58)
328
+ - feat(hosts): Codex CLI adapter (hooks + AGENTS.md soft-budget) (#55)
329
+ - feat(hosts): Gemini CLI adapter (BeforeTool/AfterTool hooks) (#52)
330
+ - feat(hosts): full-parity OpenCode adapter + plugin rewrite (#48)
331
+ - wrangler, playwright, next build handlers + bun/drizzle routing (#34)
332
+ - feat(opus47): adapt squeez for Opus 4.7 tokenizer and xhigh effort
333
+ - feat(setup): auto-detect lang from CLAUDE.md/locale + stderr update notification (#29)
334
+ - v0.3.0 — token economy, pt-BR caveman, aggressive defaults, full hook install
335
+ - structured session memory, cross-session search, error snippets, configurable tunables
336
+ - feat(setup): create config.ini on first install
337
+ - feat(i18n): locale-aware compress-md with pt-BR support (#25)
338
+ - fuzzy dedup, adaptive intensity, benign summarize, MCP server, temporal memory, protocol payload
339
+ - Windows setup via cargo/npm + squeez update fix
340
+ - feat(benchmark): add squeez benchmark command with 19-scenario test suite
341
+ - feat(ci): re-add promote-develop workflow with correct registration
342
+ - feat(init): inject persona into ~/.claude/CLAUDE.md on every session start
343
+ - feat(npm+crates): add npm package and publish jobs to release workflow
344
+ - feat(statusline): add statusline.sh to repo; install via install.sh; show all-time stats
345
+ - compress-md, caveman persona, squeez update, track-result hook
346
+ - feat(context): adaptive intensity always picks Ultra
347
+ - feat(context): aggressive token-engine — adaptive intensity, redundancy cache, summarize fallback
348
+ - add Windows support to install.sh and release.yml
349
+ - add home_dir() helper with USERPROFILE fallback for Windows
350
+ - cross-platform wrap — shell_command() helper, cfg(unix) signal gates, libc unix-only
351
+ - add GitHub Copilot CLI support
352
+ - add OpenCode plugin for automatic Bash compression
353
+ - add universal installer support for macOS and Linux
354
+ - expand benchmarks, edge-case tests, and README polish
355
+ - add SessionStart + PostToolUse hooks, update install.sh and README
356
+ - wrap.rs — artifact capture (files/errors/git/tests) + compact warning header
357
+ - squeez init — session start, prior memory banner, session finalization (TDD)
358
+ - squeez track — token accumulation + session event log (TDD)
359
+ - memory.rs — Summary, read_last_n, write_summary, prune_old (TDD)
360
+ - session.rs — CurrentSession, append_event, date math (TDD)
361
+ - json_util helpers + compact_threshold_tokens, memory_retention_days config
362
+ - benchmark system — all fixtures passing
363
+ - build.sh compiles + installs squeez, registers hook
364
+ - PreToolUse hook script
365
+ - fs and runtime handlers — all handler tests passing
366
+ - cloud, database, network handlers (TDD)
367
+ - typescript and build handlers (TDD)
368
+ - package_mgr and test_runner handlers (TDD)
369
+ - git and docker handlers (TDD)
370
+ - wrap subcommand — sh -c, 120s timeout, signal forwarding, bypass check
371
+ - Handler trait with cmd+config, generic handler, command router, filter_stdin
372
+ - truncation strategy (TDD) — all strategy tests passing
373
+ - grouping strategy (TDD)
374
+ - dedup strategy (TDD)
375
+ - smart_filter strategy with node_modules frame removal (TDD)
376
+ - implement config.ini parser (TDD)
377
+
378
+ ### Changed
379
+ - chore(release): bump version to 1.29.0 [squeez-release-bot]
380
+ - docs: update changelog and benchmarks for v1.28.0
381
+ - chore(release): bump version to 1.28.0 [squeez-release-bot]
382
+ - docs: update changelog and benchmarks for v1.27.0
383
+ - chore(release): bump version to 1.27.0 [squeez-release-bot]
384
+ - docs: update changelog and benchmarks for v1.26.0
385
+ - chore(release): bump version to 1.26.0 [squeez-release-bot]
386
+ - docs: update changelog and benchmarks for v1.25.0
387
+ - chore(release): bump version to 1.25.0 [squeez-release-bot]
388
+ - docs: update changelog and benchmarks for v1.24.0
389
+ - docs: update changelog and benchmarks for v1.23.1
390
+ - chore(release): bump version to 1.24.0 [squeez-release-bot]
391
+ - chore(release): bump version to 1.23.1 [squeez-release-bot]
392
+ - docs: update changelog and benchmarks for v1.23.0
393
+ - chore(release): bump version to 1.23.0 [squeez-release-bot]
394
+ - docs: update changelog and benchmarks for v1.22.1
395
+ - docs: update changelog and benchmarks for v1.22.1
396
+ - docs: update changelog and benchmarks for v1.22.1
397
+ - chore(release): bump version to 1.22.1 [squeez-release-bot]
398
+ - docs: update changelog and benchmarks for v1.22.0
399
+ - chore(release): bump version to 1.22.0 [squeez-release-bot]
400
+ - docs: update changelog and benchmarks for v1.21.1
401
+ - chore(release): bump version to 1.21.1 [squeez-release-bot]
402
+ - refactor(skills): session-long re-injection dedup; drop lexical skill compression (#142)
403
+ - docs: update changelog and benchmarks for v1.21.0
404
+ - chore(release): bump version to 1.21.0 [squeez-release-bot]
405
+ - docs: update changelog and benchmarks for v1.20.0
406
+ - chore(release): bump version to 1.20.0 [squeez-release-bot]
407
+ - docs(readme): add "How squeez compares" table vs rtk / KRLabs squeez / sqz / LLMLingua-2 / TOON (#138)
408
+ - test(cache): lock in byte-stability of MCP and protocol payloads (#136)
409
+ - docs: update changelog and benchmarks for v1.19.4
410
+ - chore(release): bump version to 1.19.4 [squeez-release-bot]
411
+ - docs: update changelog and benchmarks for v1.19.3
412
+ - chore(release): bump version to 1.19.3 [squeez-release-bot]
413
+ - docs: update changelog and benchmarks for v1.19.2
414
+ - chore(release): bump version to 1.19.2 [squeez-release-bot]
415
+ - docs: update changelog and benchmarks for v1.19.1
416
+ - chore(release): bump version to 1.19.1 [squeez-release-bot]
417
+ - docs: update changelog and benchmarks for v1.19.0
418
+ - chore(release): bump version to 1.19.0 [squeez-release-bot]
419
+ - docs: update changelog and benchmarks for v1.18.1
420
+ - chore(release): bump version to 1.18.1 [squeez-release-bot]
421
+ - docs: update changelog and benchmarks for v1.18.0
422
+ - chore(release): bump version to 1.18.0 [squeez-release-bot]
423
+ - docs: document DCO Signed-off-by requirement in CLAUDE.md (#111)
424
+ - docs: update changelog and benchmarks for v1.17.0
425
+ - chore(release): bump version to 1.17.0 [squeez-release-bot]
426
+ - docs: update changelog and benchmarks for v1.16.0
427
+ - chore(release): bump version to 1.16.0 [squeez-release-bot]
428
+ - docs: update changelog and benchmarks for v1.15.1
429
+ - chore(release): bump version to 1.15.1 [squeez-release-bot]
430
+ - docs: update README and CLAUDE.md for new hooks and PostToolUse rewrite (#108)
431
+ - refactor(bench): unify benches/ into bench/ — single benchmark directory (#106)
432
+ - test: add missing coverage for compress-output, filter dispatch, SubagentStop, hook registration (#103)
433
+ - docs: update changelog and benchmarks for v1.15.0
434
+ - chore(release): bump version to 1.15.0 [squeez-release-bot]
435
+ - docs: update changelog and benchmarks for v1.13.0
436
+ - chore(release): bump version to 1.14.0 [squeez-release-bot]
437
+ - chore(release): bump version to 1.13.0 [squeez-release-bot]
438
+ - docs: update changelog and benchmarks for v1.12.0
439
+ - chore(release): bump version to 1.12.0 [squeez-release-bot]
440
+ - docs(codex): update adapter comments and README for 0.123.0 hook surface
441
+ - docs: update changelog and benchmarks for v1.11.2
442
+ - chore(release): bump version to 1.11.2 [squeez-release-bot]
443
+ - docs: update changelog and benchmarks for v1.11.1
444
+ - chore(release): bump version to 1.11.1 [squeez-release-bot]
445
+ - docs: update changelog and benchmarks for v1.11.0
446
+ - chore(release): bump version to 1.11.0 [squeez-release-bot]
447
+ - docs: update changelog and benchmarks for v1.10.0
448
+ - docs: update changelog and benchmarks for v1.9.0
449
+ - chore(release): bump version to 1.10.0 [squeez-release-bot]
450
+ - docs(readme): document squeez's compression scope and architectural limits (#85)
451
+ - chore(release): bump version to 1.9.0 [squeez-release-bot]
452
+ - chore(release): bump version to 1.8.0 [squeez-release-bot]
453
+ - docs: update changelog and benchmarks for v1.7.7
454
+ - chore(release): bump version to 1.7.7 [squeez-release-bot]
455
+ - docs: update changelog and benchmarks for v1.7.6
456
+ - chore(release): bump version to 1.7.6 [squeez-release-bot]
457
+ - docs: update changelog and benchmarks for v1.7.5
458
+ - chore(release): bump version to 1.7.5 [squeez-release-bot]
459
+ - docs: update changelog and benchmarks for v1.7.4
460
+ - chore(release): bump version to 1.7.4 [squeez-release-bot]
461
+ - perf: O(log n) refactor — tail read, offset index, single-pass parser
462
+ - docs: update changelog and benchmarks for v1.7.3
463
+ - chore(release): bump version to 1.7.3 [squeez-release-bot]
464
+ - chore(release): bump version to 1.7.2 [squeez-release-bot]
465
+ - restore: revert accidental deletion of auto-release.yml workflow
466
+ - docs: update changelog and benchmarks for v1.7.1
467
+ - chore(release): bump version to 1.7.1 [squeez-release-bot]
468
+ - chore: relicense to Apache 2.0 + add DCO policy + banner (#76)
469
+ - docs: update changelog and benchmarks for v1.7.0
470
+ - chore(release): bump version to 1.7.0 [squeez-release-bot]
471
+ - docs: update changelog and benchmarks for v1.6.1
472
+ - chore(release): bump version to 1.6.1 [squeez-release-bot]
473
+ - docs: update changelog and benchmarks for v1.6.0
474
+ - chore(release): bump version to 1.6.0 [squeez-release-bot]
475
+ - docs: update changelog and benchmarks for v1.5.2
476
+ - chore(release): bump version to 1.5.2 [squeez-release-bot]
477
+ - chore(release): bump version to 1.5.1 [squeez-release-bot]
478
+ - docs: five-host matrix + squeez setup/uninstall flow (#63)
479
+ - refactor(install): delegate host registration to 'squeez setup' (#60)
480
+ - chore(release): bump version to 1.5.0 [squeez-release-bot]
481
+ - chore(release): bump version to 1.4.0 [squeez-release-bot]
482
+ - chore(release): bump version to 1.3.0 [squeez-release-bot]
483
+ - chore(release): bump version to 1.2.0 [squeez-release-bot]
484
+ - chore(release): bump version to 1.1.0 [squeez-release-bot]
485
+ - chore(release): bump version to 1.0.0 [skip release]
486
+ - refactor(hosts): extract HostAdapter trait + migrate Claude Code and Copilot (#42)
487
+ - ci: conventional-commit-driven auto-release (#40)
488
+ - chore(gov): issue-form templates + refined PR template (#39)
489
+ - docs: update changelog and benchmarks for v0.4.1 [skip release] (#33)
490
+ - chore(release): bump version to 0.4.1
491
+ - chore(release): bump version to 0.4.0
492
+ - docs: update changelog and benchmarks for v0.3.2 [skip release] (#30)
493
+ - chore: bump version to 0.3.2
494
+ - docs: add shields.io badge for changelog link
495
+ - chore: bump version to 0.3.1
496
+ - chore: bump version to 0.2.3
497
+ - docs: update README with 11 MCP tools, structured memory, and advanced tunables
498
+ - chore: bump version to 0.2.2
499
+ - docs: rewrite README with full install instructions (curl/npm/cargo) and all commands
500
+ - chore: refresh bench/report.md from latest run [skip release]
501
+ - chore(ci): remove promote-develop workflow (re-adding to fix broken registration)
502
+ - chore: bump version to 0.2.1 + auto-release on merge to main [skip release]
503
+ - chore: bump version to 0.2.0; add Cargo.toml metadata
504
+ - ci: PR template, linked-issue enforcement, no-claude-trailer check
505
+ - docs: update README with PR1+PR2 features, fresh benchmarks, changelog
506
+ - ci: auto-delete branches after PR merge
507
+ - docs: update Windows installation instructions and prerequisites in README
508
+ - docs: add Windows support and Rust install instructions to README
509
+ - refactor: use session::home_dir() in config and init (Windows compat)
510
+ - ci: trigger promote workflow (test)
511
+ - ci(workflow): avoid failing promote job when PR creation is not permitted; add PR_CREATION_TOKEN guidance
512
+ - docs(readme): add changelog, contribution workflow, and benchmark notes
513
+ - ci(workflow): create/update PR from develop to main on push
514
+ - chore: add .worktrees/ to gitignore
515
+ - chore: add docs/ to gitignore (local design specs)
516
+ - docs: update README for GitHub Copilot CLI support
517
+ - security: fix remaining LOW findings in wrap.rs
518
+ - security: fix 2 follow-up findings from second audit
519
+ - security: fix all 8 findings from security audit
520
+ - ci: build and install binary before running benchmarks
521
+ - chore: add GitHub sponsor button
522
+ - chore: ignore .omc/ directory, remove from tracking
523
+ - chore: update benchmark report (7/7 passing)
524
+ - docs: update README — real benchmarks, Phase 2 config, how it works
525
+ - style: cargo fmt on session.rs and test_session.rs
526
+ - chore: open source files — README, LICENSE, CI/release workflows, install.sh
527
+ - chore: scaffold squeez Rust project
528
+
529
+ ### Fixed
530
+ - fix(fs): stop collapsing ls/find listings to "N modified" count (#151)
531
+ - fix(hooks): strip --no-squeez marker in codex and gemini pretooluse hooks (#146)
532
+ - fix(release): make publish-npm non-blocking; add npm whoami diagnostic
533
+ - fix(codex): emit current PreToolUse/SessionStart hook shapes; silence PostToolUse (#143)
534
+ - fix(claude-code): stop writing statusline.sh + remove orphans on install (#126)
535
+ - fix(claude-code): stop registering squeez statusLine + delegate install to adapter (#124)
536
+ - fix(compress-output): close PostToolUse compression gaps for Read/Edit/Write (#121)
537
+ - fix(claude-code): write hooks under settings.hooks.<event>, not at top level (#119)
538
+ - fix(opencode): shell-quote bash command before prepending `squeez wrap` (#115)
539
+ - fix(statusline): show compression % and fix Python heredoc expansion bug
540
+ - plan-mode passthrough + release description body (#95)
541
+ - fix(session-start): health check missed top-level event keys (#92)
542
+ - fix(hosts): expand PreToolUse matcher to cover Read, Grep, Glob, Agent, Task (#86)
543
+ - fix(json_util,statusline): whitespace-tolerant JSON parser + UTF-8 statusline on Windows (#81)
544
+ - fix(hosts): preserve user settings.json when existing JSON fails to parse (#83)
545
+ - prevent OOM from unbounded file reads + data integrity fixes
546
+ - fix(ci): use native ubuntu-24.04-arm runner for aarch64 build
547
+ - eliminate memory leaks causing 16 GB RAM on MCP server startup (#79)
548
+ - fix(hooks): add hookEventName to PreToolUse hookSpecificOutput (#78)
549
+ - fix(opencode): align plugin with PluginModule SDK shape (default export + server map) (#72)
550
+ - fix(ci): push release docs directly to main (loop-safe) (#68)
551
+ - back Copilot BUDGET_HARD with Read/Grep hook + update upstream refs (#65)
552
+ - fix(ci): startsWith guard for auto-release recursion (#46)
553
+ - fix(ci): tighten auto-release bump detection + fix tag push (#44)
554
+ - fix(ci): add --allow-dirty to cargo publish for Cargo.lock changes
555
+ - fix(ci): skip publish gracefully when version already exists on crates.io/npm
556
+ - fix(ci): run update-docs even if publish jobs fail (already published)
557
+ - fix(ci): continue-on-error for publish jobs so update-docs always runs
558
+ - fix(ci): add pull-requests write permission to update-docs job
559
+ - fix(update): cargo-managed self-update + Windows deferred install + session update check (#27)
560
+ - fix(ci): update-docs creates PR instead of pushing directly to protected main
561
+ - fix(npm): copy README.md into npm package before publish; add readme field
562
+ - fix(ci): add toolchain: stable to all dtolnay/rust-toolchain steps
563
+ - fix(ci): handle no previous tags in generate-changelog.sh (pipefail + grep -v)
564
+ - fix(ci): dispatch release.yml from auto-release to bypass GITHUB_TOKEN chain limit [skip release]
565
+ - fix(ci): fix flaky test tmp dir collision + simplify auto-release
566
+ - fix(bench): exclude synthetic fixtures from filter-mode bench/run.sh
567
+ - fix(ci): remove secrets in step if-conditions — check token inside script instead
568
+ - fix(ci): rename promote-develop → promote-to-main to fix broken workflow registration
569
+ - fix(ci): bump github-script to v7 in promote-develop to force workflow re-registration
570
+ - fix(compress_md): use byte slice comparison to avoid UTF-8 char boundary panic
571
+ - fix(statusline): remove Ctx% — show only squeez compression metrics
572
+ - fix(statusline): green ✓, proper capitalization, real-time context %, all metrics
573
+ - resolve gap analysis — new handlers, wider redundancy window, token budget
574
+ - install.sh — clarify PostToolUse no-matcher intent, guard version echo
575
+ - wrap.rs — safe git hex check, O(n) dedup, full cmd in event log
576
+ - use ends_with for files_committed check in init finalize
577
+ - json_util — guard extract_u64 empty digit, add json_util test coverage
578
+ - add pre-flight binary check to bench/run.sh
579
+ - atomic settings.json write + uninstall safety guards
580
+ - harden pretooluse hook (shlex.quote, error handling, single path source)
581
+ - wrap — process_group(0) for correct signal forwarding, tighten is_streaming
582
+
12
583
  ## [1.28.0] - 2026-06-22
13
584
 
14
585
  ### Added
@@ -6755,7 +7326,7 @@ conventional commit messages on `main`.
6755
7326
  ## [1.5.1] and earlier
6756
7327
  See the [git tag history](https://github.com/claudioemmanuel/squeez/tags) for pre-1.5.2 details. release-please takes over changelog generation from 1.7.1 onwards.
6757
7328
 
6758
- [Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.28.0...HEAD
7329
+ [Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.30.0...HEAD
6759
7330
  [1.7.0]: https://github.com/claudioemmanuel/squeez/compare/v1.6.1...v1.7.0
6760
7331
  [1.6.1]: https://github.com/claudioemmanuel/squeez/compare/v1.6.0...v1.6.1
6761
7332
  [1.6.0]: https://github.com/claudioemmanuel/squeez/compare/v1.5.2...v1.6.0
@@ -6795,3 +7366,5 @@ See the [git tag history](https://github.com/claudioemmanuel/squeez/tags) for pr
6795
7366
  [1.26.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.26.0
6796
7367
  [1.27.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.27.0
6797
7368
  [1.28.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.28.0
7369
+ [1.29.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.29.0
7370
+ [1.30.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.30.0
package/README.md CHANGED
@@ -180,40 +180,40 @@ Measured on macOS (Apple Silicon). Token count = `chars / 4` (matches Claude's ~
180
180
 
181
181
  | Scenario | Before | After | Reduction | Latency |
182
182
  |----------|--------|-------|-----------|---------|
183
- | `summarize_huge` | 82,257 tk | 445 tk | **-99%** | 57.7 ms |
184
- | `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 236 µs |
185
- | `xcode_build` | 1,881 tk | 17 tk | **-99%** | 58 µs |
186
- | `high_context_adaptive` | 4,418 tk | 61 tk | **-99%** | 1.0 ms |
187
- | `agent_directory_output` | 3,348 tk | 167 tk | **-95%** | 618 µs |
188
- | `ps_aux` | 40,373 tk | 2,338 tk | **-94%** | 943 µs |
189
- | `git_log_200` | 2,692 tk | 275 tk | **-90%** | 220 µs |
183
+ | `summarize_huge` | 82,257 tk | 445 tk | **-99%** | 57.9 ms |
184
+ | `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 228 µs |
185
+ | `xcode_build` | 1,881 tk | 17 tk | **-99%** | 63 µs |
186
+ | `high_context_adaptive` | 4,418 tk | 61 tk | **-99%** | 957 µs |
187
+ | `agent_directory_output` | 3,348 tk | 167 tk | **-95%** | 600 µs |
188
+ | `ps_aux` | 40,373 tk | 2,338 tk | **-94%** | 890 µs |
189
+ | `git_log_200` | 2,692 tk | 275 tk | **-90%** | 207 µs |
190
190
  | `tsc_errors` | 731 tk | 101 tk | **-86%** | 22 µs |
191
- | `cargo_build_noisy` | 2,106 tk | 439 tk | **-79%** | 270 µs |
191
+ | `cargo_build_noisy` | 2,106 tk | 439 tk | **-79%** | 256 µs |
192
192
  | `docker_logs` | 665 tk | 186 tk | **-72%** | 71 µs |
193
- | `curl_html_response` | 2,181 tk | 626 tk | **-71%** | 47 µs |
194
- | `git_status` | 50 tk | 16 tk | **-68%** | 15 µs |
195
- | `pytest_failures` | 3,402 tk | 1,175 tk | **-65%** | 320 µs |
196
- | `verbose_app_log` | 4,957 tk | 1,978 tk | **-60%** | 601 µs |
197
- | `npm_install` | 524 tk | 218 tk | **-58%** | 49 µs |
198
- | `crosscall_redundancy_3x` | 486 tk | 237 tk | **-51%** | 51.8 ms |
199
- | `ls_la` | 1,782 tk | 872 tk | **-51%** | 45 µs |
200
- | `env_dump` | 441 tk | 287 tk | **-35%** | 25 µs |
201
- | `git_copilot` | 640 tk | 421 tk | **-34%** | 104 µs |
202
- | `find_deep` | 424 tk | 279 tk | **-34%** | 22 µs |
203
- | `agent_heavy` | 2,306 tk | 1,551 tk | **-33%** | 504 µs |
204
- | `md_prose` | 187 tk | 138 tk | **-26%** | 846 µs |
205
- | `md_claude_md` | 316 tk | 247 tk | **-22%** | 1.0 ms |
206
- | `claude_md_overhead` | 717 tk | 635 tk | **-11%** | 21 µs |
207
- | `git_diff` | 502 tk | 497 tk | **-1%** | 46 µs |
208
- | `jest_failures` | 451 tk | 448 tk | **-1%** | 56 µs |
193
+ | `curl_html_response` | 2,181 tk | 626 tk | **-71%** | 45 µs |
194
+ | `git_status` | 50 tk | 16 tk | **-68%** | 14 µs |
195
+ | `pytest_failures` | 3,402 tk | 1,175 tk | **-65%** | 305 µs |
196
+ | `verbose_app_log` | 4,957 tk | 1,978 tk | **-60%** | 610 µs |
197
+ | `npm_install` | 524 tk | 218 tk | **-58%** | 47 µs |
198
+ | `crosscall_redundancy_3x` | 486 tk | 237 tk | **-51%** | 51.9 ms |
199
+ | `ls_la` | 1,782 tk | 872 tk | **-51%** | 42 µs |
200
+ | `env_dump` | 441 tk | 287 tk | **-35%** | 24 µs |
201
+ | `git_copilot` | 640 tk | 421 tk | **-34%** | 110 µs |
202
+ | `find_deep` | 424 tk | 279 tk | **-34%** | 23 µs |
203
+ | `agent_heavy` | 2,306 tk | 1,565 tk | **-32%** | 615 µs |
204
+ | `md_prose` | 187 tk | 138 tk | **-26%** | 868 µs |
205
+ | `md_claude_md` | 316 tk | 247 tk | **-22%** | 1.1 ms |
206
+ | `claude_md_overhead` | 717 tk | 635 tk | **-11%** | 23 µs |
207
+ | `git_diff` | 502 tk | 497 tk | **-1%** | 43 µs |
208
+ | `jest_failures` | 451 tk | 448 tk | **-1%** | 49 µs |
209
209
  | `state_first_simulation` | 182 tk | 181 tk | **-1%** | 5 µs |
210
- | `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** | 42 µs |
210
+ | `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** | 33 µs |
211
211
 
212
212
  ### Aggregate
213
213
 
214
214
  | Metric | Value |
215
215
  |--------|-------|
216
- | **Total token reduction** | **90.6%** — 164,224 tk → 15,385 tk |
216
+ | **Total token reduction** | **90.6%** — 164,224 tk → 15,399 tk |
217
217
  | Bash output | **-83.8%** |
218
218
  | Markdown / context files | **-23.5%** |
219
219
  | Wrap / cross-call engine | **-99.2%** |
@@ -226,8 +226,8 @@ Measured on macOS (Apple Silicon). Token count = `chars / 4` (matches Claude's ~
226
226
  | Usage | Baseline / month | Saved / month |
227
227
  |-------|-----------------|---------------|
228
228
  | 100 calls / day | $18.00 | **$16.31 (91%)** |
229
- | 1,000 calls / day | $180.00 | **$163.13 (91%)** |
230
- | 10,000 calls / day | $1800.00 | **$1631.34 (91%)** |
229
+ | 1,000 calls / day | $180.00 | **$163.12 (91%)** |
230
+ | 10,000 calls / day | $1800.00 | **$1631.16 (91%)** |
231
231
  <!-- BENCHMARK:END -->
232
232
 
233
233
  ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "squeez",
3
- "version": "1.29.0",
3
+ "version": "1.31.0",
4
4
  "description": "Hook-based token compressor for Claude Code, Copilot CLI, and OpenCode. Compresses bash output up to 95%, collapses redundant calls, injects caveman persona.",
5
5
  "keywords": [
6
6
  "claude-code",