squeez 1.19.3 → 1.20.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 +476 -1
  2. package/README.md +38 -21
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -9,6 +9,479 @@ conventional commit messages on `main`.
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [1.19.4] - 2026-05-18
13
+
14
+ ### Added
15
+ - feat(economy): auto-curation nudges + cross-session handler stats (#118)
16
+ - feat(hosts): add Pi adapter (#116)
17
+ - feat(compress): plug Agent/Task output, HTML bash, and PreCompact telemetry gaps
18
+ - feat(bench): add pytest, jest, xcode_build scenarios — 23 → 26 scenarios
19
+ - feat(hooks): PreCompact + PostCompact lifecycle hooks (#102)
20
+ - feat(hooks): SubagentStop hook feeds sub-agent output into SessionContext (#101)
21
+ - feat(monitor): add Monitor tool to PostToolUse compress-output dispatch (#100)
22
+ - PostToolUse updatedToolOutput for Read/Grep/Glob (Claude Code v2.1.119+)
23
+ - session-analysis improvements — az JSON, vite noise, prisma generate, hook health check (#90)
24
+ - feat(fs): auto-compress cat'd markdown via compress_md pipeline (#88)
25
+ - feat(economy): compress Agent/Task prompt at PreToolUse time (#87)
26
+ - feat(handlers): xcodebuild noise filter + log-file tail detection (#84)
27
+ - feat(bench): efficiency-proof benchmark suite — quantitative savings for US-001/003/004 (#74)
28
+ - token-compression power-up — sig-mode, memory-file warn, structured summaries, hypothesis benchmark (#70)
29
+ - feat(setup): adapter-driven setup/uninstall across all hosts (#58)
30
+ - feat(hosts): Codex CLI adapter (hooks + AGENTS.md soft-budget) (#55)
31
+ - feat(hosts): Gemini CLI adapter (BeforeTool/AfterTool hooks) (#52)
32
+ - feat(hosts): full-parity OpenCode adapter + plugin rewrite (#48)
33
+ - wrangler, playwright, next build handlers + bun/drizzle routing (#34)
34
+ - feat(opus47): adapt squeez for Opus 4.7 tokenizer and xhigh effort
35
+ - feat(setup): auto-detect lang from CLAUDE.md/locale + stderr update notification (#29)
36
+ - v0.3.0 — token economy, pt-BR caveman, aggressive defaults, full hook install
37
+ - structured session memory, cross-session search, error snippets, configurable tunables
38
+ - feat(setup): create config.ini on first install
39
+ - feat(i18n): locale-aware compress-md with pt-BR support (#25)
40
+ - fuzzy dedup, adaptive intensity, benign summarize, MCP server, temporal memory, protocol payload
41
+ - Windows setup via cargo/npm + squeez update fix
42
+ - feat(benchmark): add squeez benchmark command with 19-scenario test suite
43
+ - feat(ci): re-add promote-develop workflow with correct registration
44
+ - feat(init): inject persona into ~/.claude/CLAUDE.md on every session start
45
+ - feat(npm+crates): add npm package and publish jobs to release workflow
46
+ - feat(statusline): add statusline.sh to repo; install via install.sh; show all-time stats
47
+ - compress-md, caveman persona, squeez update, track-result hook
48
+ - feat(context): adaptive intensity always picks Ultra
49
+ - feat(context): aggressive token-engine — adaptive intensity, redundancy cache, summarize fallback
50
+ - add Windows support to install.sh and release.yml
51
+ - add home_dir() helper with USERPROFILE fallback for Windows
52
+ - cross-platform wrap — shell_command() helper, cfg(unix) signal gates, libc unix-only
53
+ - add GitHub Copilot CLI support
54
+ - add OpenCode plugin for automatic Bash compression
55
+ - add universal installer support for macOS and Linux
56
+ - expand benchmarks, edge-case tests, and README polish
57
+ - add SessionStart + PostToolUse hooks, update install.sh and README
58
+ - wrap.rs — artifact capture (files/errors/git/tests) + compact warning header
59
+ - squeez init — session start, prior memory banner, session finalization (TDD)
60
+ - squeez track — token accumulation + session event log (TDD)
61
+ - memory.rs — Summary, read_last_n, write_summary, prune_old (TDD)
62
+ - session.rs — CurrentSession, append_event, date math (TDD)
63
+ - json_util helpers + compact_threshold_tokens, memory_retention_days config
64
+ - benchmark system — all fixtures passing
65
+ - build.sh compiles + installs squeez, registers hook
66
+ - PreToolUse hook script
67
+ - fs and runtime handlers — all handler tests passing
68
+ - cloud, database, network handlers (TDD)
69
+ - typescript and build handlers (TDD)
70
+ - package_mgr and test_runner handlers (TDD)
71
+ - git and docker handlers (TDD)
72
+ - wrap subcommand — sh -c, 120s timeout, signal forwarding, bypass check
73
+ - Handler trait with cmd+config, generic handler, command router, filter_stdin
74
+ - truncation strategy (TDD) — all strategy tests passing
75
+ - grouping strategy (TDD)
76
+ - dedup strategy (TDD)
77
+ - smart_filter strategy with node_modules frame removal (TDD)
78
+ - implement config.ini parser (TDD)
79
+
80
+ ### Changed
81
+ - chore(release): bump version to 1.19.4 [squeez-release-bot]
82
+ - docs: update changelog and benchmarks for v1.19.3
83
+ - chore(release): bump version to 1.19.3 [squeez-release-bot]
84
+ - docs: update changelog and benchmarks for v1.19.2
85
+ - chore(release): bump version to 1.19.2 [squeez-release-bot]
86
+ - docs: update changelog and benchmarks for v1.19.1
87
+ - chore(release): bump version to 1.19.1 [squeez-release-bot]
88
+ - docs: update changelog and benchmarks for v1.19.0
89
+ - chore(release): bump version to 1.19.0 [squeez-release-bot]
90
+ - docs: update changelog and benchmarks for v1.18.1
91
+ - chore(release): bump version to 1.18.1 [squeez-release-bot]
92
+ - docs: update changelog and benchmarks for v1.18.0
93
+ - chore(release): bump version to 1.18.0 [squeez-release-bot]
94
+ - docs: document DCO Signed-off-by requirement in CLAUDE.md (#111)
95
+ - docs: update changelog and benchmarks for v1.17.0
96
+ - chore(release): bump version to 1.17.0 [squeez-release-bot]
97
+ - docs: update changelog and benchmarks for v1.16.0
98
+ - chore(release): bump version to 1.16.0 [squeez-release-bot]
99
+ - docs: update changelog and benchmarks for v1.15.1
100
+ - chore(release): bump version to 1.15.1 [squeez-release-bot]
101
+ - docs: update README and CLAUDE.md for new hooks and PostToolUse rewrite (#108)
102
+ - refactor(bench): unify benches/ into bench/ — single benchmark directory (#106)
103
+ - test: add missing coverage for compress-output, filter dispatch, SubagentStop, hook registration (#103)
104
+ - docs: update changelog and benchmarks for v1.15.0
105
+ - chore(release): bump version to 1.15.0 [squeez-release-bot]
106
+ - docs: update changelog and benchmarks for v1.13.0
107
+ - chore(release): bump version to 1.14.0 [squeez-release-bot]
108
+ - chore(release): bump version to 1.13.0 [squeez-release-bot]
109
+ - docs: update changelog and benchmarks for v1.12.0
110
+ - chore(release): bump version to 1.12.0 [squeez-release-bot]
111
+ - docs(codex): update adapter comments and README for 0.123.0 hook surface
112
+ - docs: update changelog and benchmarks for v1.11.2
113
+ - chore(release): bump version to 1.11.2 [squeez-release-bot]
114
+ - docs: update changelog and benchmarks for v1.11.1
115
+ - chore(release): bump version to 1.11.1 [squeez-release-bot]
116
+ - docs: update changelog and benchmarks for v1.11.0
117
+ - chore(release): bump version to 1.11.0 [squeez-release-bot]
118
+ - docs: update changelog and benchmarks for v1.10.0
119
+ - docs: update changelog and benchmarks for v1.9.0
120
+ - chore(release): bump version to 1.10.0 [squeez-release-bot]
121
+ - docs(readme): document squeez's compression scope and architectural limits (#85)
122
+ - chore(release): bump version to 1.9.0 [squeez-release-bot]
123
+ - chore(release): bump version to 1.8.0 [squeez-release-bot]
124
+ - docs: update changelog and benchmarks for v1.7.7
125
+ - chore(release): bump version to 1.7.7 [squeez-release-bot]
126
+ - docs: update changelog and benchmarks for v1.7.6
127
+ - chore(release): bump version to 1.7.6 [squeez-release-bot]
128
+ - docs: update changelog and benchmarks for v1.7.5
129
+ - chore(release): bump version to 1.7.5 [squeez-release-bot]
130
+ - docs: update changelog and benchmarks for v1.7.4
131
+ - chore(release): bump version to 1.7.4 [squeez-release-bot]
132
+ - perf: O(log n) refactor — tail read, offset index, single-pass parser
133
+ - docs: update changelog and benchmarks for v1.7.3
134
+ - chore(release): bump version to 1.7.3 [squeez-release-bot]
135
+ - chore(release): bump version to 1.7.2 [squeez-release-bot]
136
+ - restore: revert accidental deletion of auto-release.yml workflow
137
+ - docs: update changelog and benchmarks for v1.7.1
138
+ - chore(release): bump version to 1.7.1 [squeez-release-bot]
139
+ - chore: relicense to Apache 2.0 + add DCO policy + banner (#76)
140
+ - docs: update changelog and benchmarks for v1.7.0
141
+ - chore(release): bump version to 1.7.0 [squeez-release-bot]
142
+ - docs: update changelog and benchmarks for v1.6.1
143
+ - chore(release): bump version to 1.6.1 [squeez-release-bot]
144
+ - docs: update changelog and benchmarks for v1.6.0
145
+ - chore(release): bump version to 1.6.0 [squeez-release-bot]
146
+ - docs: update changelog and benchmarks for v1.5.2
147
+ - chore(release): bump version to 1.5.2 [squeez-release-bot]
148
+ - chore(release): bump version to 1.5.1 [squeez-release-bot]
149
+ - docs: five-host matrix + squeez setup/uninstall flow (#63)
150
+ - refactor(install): delegate host registration to 'squeez setup' (#60)
151
+ - chore(release): bump version to 1.5.0 [squeez-release-bot]
152
+ - chore(release): bump version to 1.4.0 [squeez-release-bot]
153
+ - chore(release): bump version to 1.3.0 [squeez-release-bot]
154
+ - chore(release): bump version to 1.2.0 [squeez-release-bot]
155
+ - chore(release): bump version to 1.1.0 [squeez-release-bot]
156
+ - chore(release): bump version to 1.0.0 [skip release]
157
+ - refactor(hosts): extract HostAdapter trait + migrate Claude Code and Copilot (#42)
158
+ - ci: conventional-commit-driven auto-release (#40)
159
+ - chore(gov): issue-form templates + refined PR template (#39)
160
+ - docs: update changelog and benchmarks for v0.4.1 [skip release] (#33)
161
+ - chore(release): bump version to 0.4.1
162
+ - chore(release): bump version to 0.4.0
163
+ - docs: update changelog and benchmarks for v0.3.2 [skip release] (#30)
164
+ - chore: bump version to 0.3.2
165
+ - docs: add shields.io badge for changelog link
166
+ - chore: bump version to 0.3.1
167
+ - chore: bump version to 0.2.3
168
+ - docs: update README with 11 MCP tools, structured memory, and advanced tunables
169
+ - chore: bump version to 0.2.2
170
+ - docs: rewrite README with full install instructions (curl/npm/cargo) and all commands
171
+ - chore: refresh bench/report.md from latest run [skip release]
172
+ - chore(ci): remove promote-develop workflow (re-adding to fix broken registration)
173
+ - chore: bump version to 0.2.1 + auto-release on merge to main [skip release]
174
+ - chore: bump version to 0.2.0; add Cargo.toml metadata
175
+ - ci: PR template, linked-issue enforcement, no-claude-trailer check
176
+ - docs: update README with PR1+PR2 features, fresh benchmarks, changelog
177
+ - ci: auto-delete branches after PR merge
178
+ - docs: update Windows installation instructions and prerequisites in README
179
+ - docs: add Windows support and Rust install instructions to README
180
+ - refactor: use session::home_dir() in config and init (Windows compat)
181
+ - ci: trigger promote workflow (test)
182
+ - ci(workflow): avoid failing promote job when PR creation is not permitted; add PR_CREATION_TOKEN guidance
183
+ - docs(readme): add changelog, contribution workflow, and benchmark notes
184
+ - ci(workflow): create/update PR from develop to main on push
185
+ - chore: add .worktrees/ to gitignore
186
+ - chore: add docs/ to gitignore (local design specs)
187
+ - docs: update README for GitHub Copilot CLI support
188
+ - security: fix remaining LOW findings in wrap.rs
189
+ - security: fix 2 follow-up findings from second audit
190
+ - security: fix all 8 findings from security audit
191
+ - ci: build and install binary before running benchmarks
192
+ - chore: add GitHub sponsor button
193
+ - chore: ignore .omc/ directory, remove from tracking
194
+ - chore: update benchmark report (7/7 passing)
195
+ - docs: update README — real benchmarks, Phase 2 config, how it works
196
+ - style: cargo fmt on session.rs and test_session.rs
197
+ - chore: open source files — README, LICENSE, CI/release workflows, install.sh
198
+ - chore: scaffold squeez Rust project
199
+
200
+ ### Fixed
201
+ - fix(claude-code): stop writing statusline.sh + remove orphans on install (#126)
202
+ - fix(claude-code): stop registering squeez statusLine + delegate install to adapter (#124)
203
+ - fix(compress-output): close PostToolUse compression gaps for Read/Edit/Write (#121)
204
+ - fix(claude-code): write hooks under settings.hooks.<event>, not at top level (#119)
205
+ - fix(opencode): shell-quote bash command before prepending `squeez wrap` (#115)
206
+ - fix(statusline): show compression % and fix Python heredoc expansion bug
207
+ - plan-mode passthrough + release description body (#95)
208
+ - fix(session-start): health check missed top-level event keys (#92)
209
+ - fix(hosts): expand PreToolUse matcher to cover Read, Grep, Glob, Agent, Task (#86)
210
+ - fix(json_util,statusline): whitespace-tolerant JSON parser + UTF-8 statusline on Windows (#81)
211
+ - fix(hosts): preserve user settings.json when existing JSON fails to parse (#83)
212
+ - prevent OOM from unbounded file reads + data integrity fixes
213
+ - fix(ci): use native ubuntu-24.04-arm runner for aarch64 build
214
+ - eliminate memory leaks causing 16 GB RAM on MCP server startup (#79)
215
+ - fix(hooks): add hookEventName to PreToolUse hookSpecificOutput (#78)
216
+ - fix(opencode): align plugin with PluginModule SDK shape (default export + server map) (#72)
217
+ - fix(ci): push release docs directly to main (loop-safe) (#68)
218
+ - back Copilot BUDGET_HARD with Read/Grep hook + update upstream refs (#65)
219
+ - fix(ci): startsWith guard for auto-release recursion (#46)
220
+ - fix(ci): tighten auto-release bump detection + fix tag push (#44)
221
+ - fix(ci): add --allow-dirty to cargo publish for Cargo.lock changes
222
+ - fix(ci): skip publish gracefully when version already exists on crates.io/npm
223
+ - fix(ci): run update-docs even if publish jobs fail (already published)
224
+ - fix(ci): continue-on-error for publish jobs so update-docs always runs
225
+ - fix(ci): add pull-requests write permission to update-docs job
226
+ - fix(update): cargo-managed self-update + Windows deferred install + session update check (#27)
227
+ - fix(ci): update-docs creates PR instead of pushing directly to protected main
228
+ - fix(npm): copy README.md into npm package before publish; add readme field
229
+ - fix(ci): add toolchain: stable to all dtolnay/rust-toolchain steps
230
+ - fix(ci): handle no previous tags in generate-changelog.sh (pipefail + grep -v)
231
+ - fix(ci): dispatch release.yml from auto-release to bypass GITHUB_TOKEN chain limit [skip release]
232
+ - fix(ci): fix flaky test tmp dir collision + simplify auto-release
233
+ - fix(bench): exclude synthetic fixtures from filter-mode bench/run.sh
234
+ - fix(ci): remove secrets in step if-conditions — check token inside script instead
235
+ - fix(ci): rename promote-develop → promote-to-main to fix broken workflow registration
236
+ - fix(ci): bump github-script to v7 in promote-develop to force workflow re-registration
237
+ - fix(compress_md): use byte slice comparison to avoid UTF-8 char boundary panic
238
+ - fix(statusline): remove Ctx% — show only squeez compression metrics
239
+ - fix(statusline): green ✓, proper capitalization, real-time context %, all metrics
240
+ - resolve gap analysis — new handlers, wider redundancy window, token budget
241
+ - install.sh — clarify PostToolUse no-matcher intent, guard version echo
242
+ - wrap.rs — safe git hex check, O(n) dedup, full cmd in event log
243
+ - use ends_with for files_committed check in init finalize
244
+ - json_util — guard extract_u64 empty digit, add json_util test coverage
245
+ - add pre-flight binary check to bench/run.sh
246
+ - atomic settings.json write + uninstall safety guards
247
+ - harden pretooluse hook (shlex.quote, error handling, single path source)
248
+ - wrap — process_group(0) for correct signal forwarding, tighten is_streaming
249
+
250
+ ## [1.19.3] - 2026-05-18
251
+
252
+ ### Added
253
+ - feat(economy): auto-curation nudges + cross-session handler stats (#118)
254
+ - feat(hosts): add Pi adapter (#116)
255
+ - feat(compress): plug Agent/Task output, HTML bash, and PreCompact telemetry gaps
256
+ - feat(bench): add pytest, jest, xcode_build scenarios — 23 → 26 scenarios
257
+ - feat(hooks): PreCompact + PostCompact lifecycle hooks (#102)
258
+ - feat(hooks): SubagentStop hook feeds sub-agent output into SessionContext (#101)
259
+ - feat(monitor): add Monitor tool to PostToolUse compress-output dispatch (#100)
260
+ - PostToolUse updatedToolOutput for Read/Grep/Glob (Claude Code v2.1.119+)
261
+ - session-analysis improvements — az JSON, vite noise, prisma generate, hook health check (#90)
262
+ - feat(fs): auto-compress cat'd markdown via compress_md pipeline (#88)
263
+ - feat(economy): compress Agent/Task prompt at PreToolUse time (#87)
264
+ - feat(handlers): xcodebuild noise filter + log-file tail detection (#84)
265
+ - feat(bench): efficiency-proof benchmark suite — quantitative savings for US-001/003/004 (#74)
266
+ - token-compression power-up — sig-mode, memory-file warn, structured summaries, hypothesis benchmark (#70)
267
+ - feat(setup): adapter-driven setup/uninstall across all hosts (#58)
268
+ - feat(hosts): Codex CLI adapter (hooks + AGENTS.md soft-budget) (#55)
269
+ - feat(hosts): Gemini CLI adapter (BeforeTool/AfterTool hooks) (#52)
270
+ - feat(hosts): full-parity OpenCode adapter + plugin rewrite (#48)
271
+ - wrangler, playwright, next build handlers + bun/drizzle routing (#34)
272
+ - feat(opus47): adapt squeez for Opus 4.7 tokenizer and xhigh effort
273
+ - feat(setup): auto-detect lang from CLAUDE.md/locale + stderr update notification (#29)
274
+ - v0.3.0 — token economy, pt-BR caveman, aggressive defaults, full hook install
275
+ - structured session memory, cross-session search, error snippets, configurable tunables
276
+ - feat(setup): create config.ini on first install
277
+ - feat(i18n): locale-aware compress-md with pt-BR support (#25)
278
+ - fuzzy dedup, adaptive intensity, benign summarize, MCP server, temporal memory, protocol payload
279
+ - Windows setup via cargo/npm + squeez update fix
280
+ - feat(benchmark): add squeez benchmark command with 19-scenario test suite
281
+ - feat(ci): re-add promote-develop workflow with correct registration
282
+ - feat(init): inject persona into ~/.claude/CLAUDE.md on every session start
283
+ - feat(npm+crates): add npm package and publish jobs to release workflow
284
+ - feat(statusline): add statusline.sh to repo; install via install.sh; show all-time stats
285
+ - compress-md, caveman persona, squeez update, track-result hook
286
+ - feat(context): adaptive intensity always picks Ultra
287
+ - feat(context): aggressive token-engine — adaptive intensity, redundancy cache, summarize fallback
288
+ - add Windows support to install.sh and release.yml
289
+ - add home_dir() helper with USERPROFILE fallback for Windows
290
+ - cross-platform wrap — shell_command() helper, cfg(unix) signal gates, libc unix-only
291
+ - add GitHub Copilot CLI support
292
+ - add OpenCode plugin for automatic Bash compression
293
+ - add universal installer support for macOS and Linux
294
+ - expand benchmarks, edge-case tests, and README polish
295
+ - add SessionStart + PostToolUse hooks, update install.sh and README
296
+ - wrap.rs — artifact capture (files/errors/git/tests) + compact warning header
297
+ - squeez init — session start, prior memory banner, session finalization (TDD)
298
+ - squeez track — token accumulation + session event log (TDD)
299
+ - memory.rs — Summary, read_last_n, write_summary, prune_old (TDD)
300
+ - session.rs — CurrentSession, append_event, date math (TDD)
301
+ - json_util helpers + compact_threshold_tokens, memory_retention_days config
302
+ - benchmark system — all fixtures passing
303
+ - build.sh compiles + installs squeez, registers hook
304
+ - PreToolUse hook script
305
+ - fs and runtime handlers — all handler tests passing
306
+ - cloud, database, network handlers (TDD)
307
+ - typescript and build handlers (TDD)
308
+ - package_mgr and test_runner handlers (TDD)
309
+ - git and docker handlers (TDD)
310
+ - wrap subcommand — sh -c, 120s timeout, signal forwarding, bypass check
311
+ - Handler trait with cmd+config, generic handler, command router, filter_stdin
312
+ - truncation strategy (TDD) — all strategy tests passing
313
+ - grouping strategy (TDD)
314
+ - dedup strategy (TDD)
315
+ - smart_filter strategy with node_modules frame removal (TDD)
316
+ - implement config.ini parser (TDD)
317
+
318
+ ### Changed
319
+ - chore(release): bump version to 1.19.3 [squeez-release-bot]
320
+ - docs: update changelog and benchmarks for v1.19.2
321
+ - chore(release): bump version to 1.19.2 [squeez-release-bot]
322
+ - docs: update changelog and benchmarks for v1.19.1
323
+ - chore(release): bump version to 1.19.1 [squeez-release-bot]
324
+ - docs: update changelog and benchmarks for v1.19.0
325
+ - chore(release): bump version to 1.19.0 [squeez-release-bot]
326
+ - docs: update changelog and benchmarks for v1.18.1
327
+ - chore(release): bump version to 1.18.1 [squeez-release-bot]
328
+ - docs: update changelog and benchmarks for v1.18.0
329
+ - chore(release): bump version to 1.18.0 [squeez-release-bot]
330
+ - docs: document DCO Signed-off-by requirement in CLAUDE.md (#111)
331
+ - docs: update changelog and benchmarks for v1.17.0
332
+ - chore(release): bump version to 1.17.0 [squeez-release-bot]
333
+ - docs: update changelog and benchmarks for v1.16.0
334
+ - chore(release): bump version to 1.16.0 [squeez-release-bot]
335
+ - docs: update changelog and benchmarks for v1.15.1
336
+ - chore(release): bump version to 1.15.1 [squeez-release-bot]
337
+ - docs: update README and CLAUDE.md for new hooks and PostToolUse rewrite (#108)
338
+ - refactor(bench): unify benches/ into bench/ — single benchmark directory (#106)
339
+ - test: add missing coverage for compress-output, filter dispatch, SubagentStop, hook registration (#103)
340
+ - docs: update changelog and benchmarks for v1.15.0
341
+ - chore(release): bump version to 1.15.0 [squeez-release-bot]
342
+ - docs: update changelog and benchmarks for v1.13.0
343
+ - chore(release): bump version to 1.14.0 [squeez-release-bot]
344
+ - chore(release): bump version to 1.13.0 [squeez-release-bot]
345
+ - docs: update changelog and benchmarks for v1.12.0
346
+ - chore(release): bump version to 1.12.0 [squeez-release-bot]
347
+ - docs(codex): update adapter comments and README for 0.123.0 hook surface
348
+ - docs: update changelog and benchmarks for v1.11.2
349
+ - chore(release): bump version to 1.11.2 [squeez-release-bot]
350
+ - docs: update changelog and benchmarks for v1.11.1
351
+ - chore(release): bump version to 1.11.1 [squeez-release-bot]
352
+ - docs: update changelog and benchmarks for v1.11.0
353
+ - chore(release): bump version to 1.11.0 [squeez-release-bot]
354
+ - docs: update changelog and benchmarks for v1.10.0
355
+ - docs: update changelog and benchmarks for v1.9.0
356
+ - chore(release): bump version to 1.10.0 [squeez-release-bot]
357
+ - docs(readme): document squeez's compression scope and architectural limits (#85)
358
+ - chore(release): bump version to 1.9.0 [squeez-release-bot]
359
+ - chore(release): bump version to 1.8.0 [squeez-release-bot]
360
+ - docs: update changelog and benchmarks for v1.7.7
361
+ - chore(release): bump version to 1.7.7 [squeez-release-bot]
362
+ - docs: update changelog and benchmarks for v1.7.6
363
+ - chore(release): bump version to 1.7.6 [squeez-release-bot]
364
+ - docs: update changelog and benchmarks for v1.7.5
365
+ - chore(release): bump version to 1.7.5 [squeez-release-bot]
366
+ - docs: update changelog and benchmarks for v1.7.4
367
+ - chore(release): bump version to 1.7.4 [squeez-release-bot]
368
+ - perf: O(log n) refactor — tail read, offset index, single-pass parser
369
+ - docs: update changelog and benchmarks for v1.7.3
370
+ - chore(release): bump version to 1.7.3 [squeez-release-bot]
371
+ - chore(release): bump version to 1.7.2 [squeez-release-bot]
372
+ - restore: revert accidental deletion of auto-release.yml workflow
373
+ - docs: update changelog and benchmarks for v1.7.1
374
+ - chore(release): bump version to 1.7.1 [squeez-release-bot]
375
+ - chore: relicense to Apache 2.0 + add DCO policy + banner (#76)
376
+ - docs: update changelog and benchmarks for v1.7.0
377
+ - chore(release): bump version to 1.7.0 [squeez-release-bot]
378
+ - docs: update changelog and benchmarks for v1.6.1
379
+ - chore(release): bump version to 1.6.1 [squeez-release-bot]
380
+ - docs: update changelog and benchmarks for v1.6.0
381
+ - chore(release): bump version to 1.6.0 [squeez-release-bot]
382
+ - docs: update changelog and benchmarks for v1.5.2
383
+ - chore(release): bump version to 1.5.2 [squeez-release-bot]
384
+ - chore(release): bump version to 1.5.1 [squeez-release-bot]
385
+ - docs: five-host matrix + squeez setup/uninstall flow (#63)
386
+ - refactor(install): delegate host registration to 'squeez setup' (#60)
387
+ - chore(release): bump version to 1.5.0 [squeez-release-bot]
388
+ - chore(release): bump version to 1.4.0 [squeez-release-bot]
389
+ - chore(release): bump version to 1.3.0 [squeez-release-bot]
390
+ - chore(release): bump version to 1.2.0 [squeez-release-bot]
391
+ - chore(release): bump version to 1.1.0 [squeez-release-bot]
392
+ - chore(release): bump version to 1.0.0 [skip release]
393
+ - refactor(hosts): extract HostAdapter trait + migrate Claude Code and Copilot (#42)
394
+ - ci: conventional-commit-driven auto-release (#40)
395
+ - chore(gov): issue-form templates + refined PR template (#39)
396
+ - docs: update changelog and benchmarks for v0.4.1 [skip release] (#33)
397
+ - chore(release): bump version to 0.4.1
398
+ - chore(release): bump version to 0.4.0
399
+ - docs: update changelog and benchmarks for v0.3.2 [skip release] (#30)
400
+ - chore: bump version to 0.3.2
401
+ - docs: add shields.io badge for changelog link
402
+ - chore: bump version to 0.3.1
403
+ - chore: bump version to 0.2.3
404
+ - docs: update README with 11 MCP tools, structured memory, and advanced tunables
405
+ - chore: bump version to 0.2.2
406
+ - docs: rewrite README with full install instructions (curl/npm/cargo) and all commands
407
+ - chore: refresh bench/report.md from latest run [skip release]
408
+ - chore(ci): remove promote-develop workflow (re-adding to fix broken registration)
409
+ - chore: bump version to 0.2.1 + auto-release on merge to main [skip release]
410
+ - chore: bump version to 0.2.0; add Cargo.toml metadata
411
+ - ci: PR template, linked-issue enforcement, no-claude-trailer check
412
+ - docs: update README with PR1+PR2 features, fresh benchmarks, changelog
413
+ - ci: auto-delete branches after PR merge
414
+ - docs: update Windows installation instructions and prerequisites in README
415
+ - docs: add Windows support and Rust install instructions to README
416
+ - refactor: use session::home_dir() in config and init (Windows compat)
417
+ - ci: trigger promote workflow (test)
418
+ - ci(workflow): avoid failing promote job when PR creation is not permitted; add PR_CREATION_TOKEN guidance
419
+ - docs(readme): add changelog, contribution workflow, and benchmark notes
420
+ - ci(workflow): create/update PR from develop to main on push
421
+ - chore: add .worktrees/ to gitignore
422
+ - chore: add docs/ to gitignore (local design specs)
423
+ - docs: update README for GitHub Copilot CLI support
424
+ - security: fix remaining LOW findings in wrap.rs
425
+ - security: fix 2 follow-up findings from second audit
426
+ - security: fix all 8 findings from security audit
427
+ - ci: build and install binary before running benchmarks
428
+ - chore: add GitHub sponsor button
429
+ - chore: ignore .omc/ directory, remove from tracking
430
+ - chore: update benchmark report (7/7 passing)
431
+ - docs: update README — real benchmarks, Phase 2 config, how it works
432
+ - style: cargo fmt on session.rs and test_session.rs
433
+ - chore: open source files — README, LICENSE, CI/release workflows, install.sh
434
+ - chore: scaffold squeez Rust project
435
+
436
+ ### Fixed
437
+ - fix(claude-code): stop registering squeez statusLine + delegate install to adapter (#124)
438
+ - fix(compress-output): close PostToolUse compression gaps for Read/Edit/Write (#121)
439
+ - fix(claude-code): write hooks under settings.hooks.<event>, not at top level (#119)
440
+ - fix(opencode): shell-quote bash command before prepending `squeez wrap` (#115)
441
+ - fix(statusline): show compression % and fix Python heredoc expansion bug
442
+ - plan-mode passthrough + release description body (#95)
443
+ - fix(session-start): health check missed top-level event keys (#92)
444
+ - fix(hosts): expand PreToolUse matcher to cover Read, Grep, Glob, Agent, Task (#86)
445
+ - fix(json_util,statusline): whitespace-tolerant JSON parser + UTF-8 statusline on Windows (#81)
446
+ - fix(hosts): preserve user settings.json when existing JSON fails to parse (#83)
447
+ - prevent OOM from unbounded file reads + data integrity fixes
448
+ - fix(ci): use native ubuntu-24.04-arm runner for aarch64 build
449
+ - eliminate memory leaks causing 16 GB RAM on MCP server startup (#79)
450
+ - fix(hooks): add hookEventName to PreToolUse hookSpecificOutput (#78)
451
+ - fix(opencode): align plugin with PluginModule SDK shape (default export + server map) (#72)
452
+ - fix(ci): push release docs directly to main (loop-safe) (#68)
453
+ - back Copilot BUDGET_HARD with Read/Grep hook + update upstream refs (#65)
454
+ - fix(ci): startsWith guard for auto-release recursion (#46)
455
+ - fix(ci): tighten auto-release bump detection + fix tag push (#44)
456
+ - fix(ci): add --allow-dirty to cargo publish for Cargo.lock changes
457
+ - fix(ci): skip publish gracefully when version already exists on crates.io/npm
458
+ - fix(ci): run update-docs even if publish jobs fail (already published)
459
+ - fix(ci): continue-on-error for publish jobs so update-docs always runs
460
+ - fix(ci): add pull-requests write permission to update-docs job
461
+ - fix(update): cargo-managed self-update + Windows deferred install + session update check (#27)
462
+ - fix(ci): update-docs creates PR instead of pushing directly to protected main
463
+ - fix(npm): copy README.md into npm package before publish; add readme field
464
+ - fix(ci): add toolchain: stable to all dtolnay/rust-toolchain steps
465
+ - fix(ci): handle no previous tags in generate-changelog.sh (pipefail + grep -v)
466
+ - fix(ci): dispatch release.yml from auto-release to bypass GITHUB_TOKEN chain limit [skip release]
467
+ - fix(ci): fix flaky test tmp dir collision + simplify auto-release
468
+ - fix(bench): exclude synthetic fixtures from filter-mode bench/run.sh
469
+ - fix(ci): remove secrets in step if-conditions — check token inside script instead
470
+ - fix(ci): rename promote-develop → promote-to-main to fix broken workflow registration
471
+ - fix(ci): bump github-script to v7 in promote-develop to force workflow re-registration
472
+ - fix(compress_md): use byte slice comparison to avoid UTF-8 char boundary panic
473
+ - fix(statusline): remove Ctx% — show only squeez compression metrics
474
+ - fix(statusline): green ✓, proper capitalization, real-time context %, all metrics
475
+ - resolve gap analysis — new handlers, wider redundancy window, token budget
476
+ - install.sh — clarify PostToolUse no-matcher intent, guard version echo
477
+ - wrap.rs — safe git hex check, O(n) dedup, full cmd in event log
478
+ - use ends_with for files_committed check in init finalize
479
+ - json_util — guard extract_u64 empty digit, add json_util test coverage
480
+ - add pre-flight binary check to bench/run.sh
481
+ - atomic settings.json write + uninstall safety guards
482
+ - harden pretooluse hook (shlex.quote, error handling, single path source)
483
+ - wrap — process_group(0) for correct signal forwarding, tighten is_streaming
484
+
12
485
  ## [1.19.2] - 2026-05-18
13
486
 
14
487
  ### Added
@@ -2869,7 +3342,7 @@ conventional commit messages on `main`.
2869
3342
  ## [1.5.1] and earlier
2870
3343
  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.
2871
3344
 
2872
- [Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.19.2...HEAD
3345
+ [Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.19.4...HEAD
2873
3346
  [1.7.0]: https://github.com/claudioemmanuel/squeez/compare/v1.6.1...v1.7.0
2874
3347
  [1.6.1]: https://github.com/claudioemmanuel/squeez/compare/v1.6.0...v1.6.1
2875
3348
  [1.6.0]: https://github.com/claudioemmanuel/squeez/compare/v1.5.2...v1.6.0
@@ -2895,3 +3368,5 @@ See the [git tag history](https://github.com/claudioemmanuel/squeez/tags) for pr
2895
3368
  [1.19.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.19.0
2896
3369
  [1.19.1]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.19.1
2897
3370
  [1.19.2]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.19.2
3371
+ [1.19.3]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.19.3
3372
+ [1.19.4]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.19.4
package/README.md CHANGED
@@ -111,6 +111,23 @@ squeez update --insecure # skip checksum (not recommended)
111
111
 
112
112
  ---
113
113
 
114
+ ## How squeez compares
115
+
116
+ There are now several token-reduction tools targeting AI coding CLIs. They make different bets — the right one depends on what you care about: zero deps, lossless filtering, structural reformatting, or task-conditioned ML.
117
+
118
+ | Tool | Approach | Hosts | Deps | Key wins | Trade-off |
119
+ |------|----------|-------|------|----------|-----------|
120
+ | **squeez** (this project) | Hook + 4-stage filter pipeline + context engine (MinHash dedup, summarize, adaptive intensity) + MCP server | Claude Code, Copilot CLI, OpenCode, Gemini CLI, Codex CLI | **Zero runtime deps** (`libc` only on Unix) | Up to 95% on bash; cross-call dedup; signature-mode for source files; TOON re-encoder for JSON outputs; 14 MCP tools; enterprise (Bedrock/Vertex) USD-saved estimate | Heuristic, not ML — no per-task understanding |
121
+ | [rtk-ai/rtk](https://github.com/rtk-ai/rtk) | Hook proxy that **rewrites bash commands** (`git status` → `rtk git status`), then compresses 100+ command outputs | Claude Code, Cursor | Zero deps (Rust) | 60-90% on 100+ commands; `rtk read -l aggressive` for signature mode | [rtk#582](https://github.com/rtk-ai/rtk/issues/582): aggressive rewriting can **increase** total cost by 18% because Claude emits +50% more output tokens to compensate for stripped context. squeez ships [a guard](https://github.com/jhonatanjunio/squeez/issues/1) against this regime. |
122
+ | [KRLabsOrg/squeez](https://github.com/KRLabsOrg/squeez) | **Task-conditioned ML** (Qwen 2B / ModernBERT 150M) — pipe tool output + task description, get back only relevant lines | Any (CLI tool) | Python, PyTorch / vLLM server | 92% compression, F1 0.80; task-aware (same log slices kept differently per query) | Requires running an LLM locally; not zero-dep. Same project name, different design. |
123
+ | [ojuschugh1/sqz](https://github.com/ojuschugh1/sqz) | CLI context compressor | Any | Python | Single-command compression | Lower coverage than the others. |
124
+ | [LLMLingua-2](https://github.com/microsoft/LLMLingua) (Microsoft) | Neural prompt compressor that removes 50-80% of a prompt while preserving meaning | API / library | Python, transformers | Strong on long static prompts | Latency + model dep; not a CLI hook. |
125
+ | [TOON](https://github.com/toon-format/toon) | Schema-aware JSON replacement (`users[100]{id,name,role}:`) — ~40% fewer tokens on arrays of uniform objects | Library, not a CLI | TypeScript SDK | Lossless on the right shape; squeez [embeds a TOON encoder](https://github.com/jhonatanjunio/squeez/pull/4) for `gh`/`kubectl`/`aws`/`gcloud`/`az` JSON outputs | Only helps on uniform JSON shapes. |
126
+
127
+ If you want a CLI hook that just works, never needs a Python runtime, and never silently inflates your output tokens, squeez is the safe default. If you can run an LLM next to your shell and want task-aware filtering, KRLabsOrg/squeez is worth a look as a complement. The two squeez projects share a name but are independent.
128
+
129
+ ---
130
+
114
131
  ## Scope & Limits
115
132
 
116
133
  squeez optimizes what it can reach — the surfaces exposed by each host's hook API. It cannot fix token leaks outside those surfaces.
@@ -162,34 +179,34 @@ Measured on macOS (Apple Silicon). Token count = `chars / 4` (matches Claude's ~
162
179
 
163
180
  | Scenario | Before | After | Reduction | Latency |
164
181
  |----------|--------|-------|-----------|---------|
165
- | `summarize_huge` | 82,257 tk | 420 tk | **-99%** | 55.6 ms |
166
- | `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 213 µs |
167
- | `xcode_build` | 1,881 tk | 17 tk | **-99%** | 75 µs |
168
- | `high_context_adaptive` | 4,418 tk | 52 tk | **-99%** | 805 µs |
169
- | `agent_directory_output` | 3,348 tk | 167 tk | **-95%** | 336 µs |
182
+ | `summarize_huge` | 82,257 tk | 420 tk | **-99%** | 55.7 ms |
183
+ | `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 227 µs |
184
+ | `xcode_build` | 1,881 tk | 17 tk | **-99%** | 73 µs |
185
+ | `high_context_adaptive` | 4,418 tk | 52 tk | **-99%** | 845 µs |
186
+ | `agent_directory_output` | 3,348 tk | 167 tk | **-95%** | 340 µs |
170
187
  | `ps_aux` | 40,373 tk | 2,338 tk | **-94%** | 2.8 ms |
171
188
  | `git_log_200` | 2,692 tk | 275 tk | **-90%** | 213 µs |
172
- | `tsc_errors` | 731 tk | 101 tk | **-86%** | 23 µs |
173
- | `cargo_build_noisy` | 2,106 tk | 439 tk | **-79%** | 256 µs |
174
- | `docker_logs` | 665 tk | 186 tk | **-72%** | 50 µs |
189
+ | `tsc_errors` | 731 tk | 101 tk | **-86%** | 24 µs |
190
+ | `cargo_build_noisy` | 2,106 tk | 439 tk | **-79%** | 262 µs |
191
+ | `docker_logs` | 665 tk | 186 tk | **-72%** | 51 µs |
175
192
  | `curl_html_response` | 2,181 tk | 626 tk | **-71%** | 46 µs |
176
- | `find_deep` | 424 tk | 134 tk | **-68%** | 150 µs |
177
- | `git_status` | 50 tk | 16 tk | **-68%** | 16 µs |
178
- | `pytest_failures` | 3,402 tk | 1,175 tk | **-65%** | 313 µs |
179
- | `verbose_app_log` | 4,957 tk | 1,978 tk | **-60%** | 295 µs |
193
+ | `find_deep` | 424 tk | 134 tk | **-68%** | 76 µs |
194
+ | `git_status` | 50 tk | 16 tk | **-68%** | 15 µs |
195
+ | `pytest_failures` | 3,402 tk | 1,175 tk | **-65%** | 322 µs |
196
+ | `verbose_app_log` | 4,957 tk | 1,978 tk | **-60%** | 300 µs |
180
197
  | `npm_install` | 524 tk | 218 tk | **-58%** | 48 µs |
181
198
  | `crosscall_redundancy_3x` | 486 tk | 237 tk | **-51%** | 51.6 ms |
182
- | `ls_la` | 1,782 tk | 872 tk | **-51%** | 212 µs |
183
- | `env_dump` | 441 tk | 287 tk | **-35%** | 25 µs |
184
- | `git_copilot` | 640 tk | 421 tk | **-34%** | 117 µs |
185
- | `agent_heavy` | 2,306 tk | 1,551 tk | **-33%** | 327 µs |
186
- | `md_prose` | 187 tk | 138 tk | **-26%** | 835 µs |
187
- | `md_claude_md` | 316 tk | 247 tk | **-22%** | 1.3 ms |
188
- | `claude_md_overhead` | 717 tk | 635 tk | **-11%** | 25 µs |
189
- | `git_diff` | 502 tk | 497 tk | **-1%** | 44 µs |
199
+ | `ls_la` | 1,782 tk | 872 tk | **-51%** | 213 µs |
200
+ | `env_dump` | 441 tk | 287 tk | **-35%** | 26 µs |
201
+ | `git_copilot` | 640 tk | 421 tk | **-34%** | 119 µs |
202
+ | `agent_heavy` | 2,306 tk | 1,551 tk | **-33%** | 344 µs |
203
+ | `md_prose` | 187 tk | 138 tk | **-26%** | 772 µs |
204
+ | `md_claude_md` | 316 tk | 247 tk | **-22%** | 1.2 ms |
205
+ | `claude_md_overhead` | 717 tk | 635 tk | **-11%** | 24 µs |
206
+ | `git_diff` | 502 tk | 497 tk | **-1%** | 45 µs |
190
207
  | `jest_failures` | 451 tk | 448 tk | **-1%** | 54 µs |
191
208
  | `state_first_simulation` | 182 tk | 181 tk | **-1%** | 5 µs |
192
- | `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** | 33 µs |
209
+ | `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** | 34 µs |
193
210
 
194
211
  ### Aggregate
195
212
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "squeez",
3
- "version": "1.19.3",
3
+ "version": "1.20.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",