squeez 1.16.0 → 1.18.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 +432 -1
  2. package/README.md +45 -29
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -9,6 +9,435 @@ conventional commit messages on `main`.
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [1.17.0] - 2026-05-06
13
+
14
+ ### Added
15
+ - feat(compress): plug Agent/Task output, HTML bash, and PreCompact telemetry gaps
16
+ - feat(bench): add pytest, jest, xcode_build scenarios — 23 → 26 scenarios
17
+ - feat(hooks): PreCompact + PostCompact lifecycle hooks (#102)
18
+ - feat(hooks): SubagentStop hook feeds sub-agent output into SessionContext (#101)
19
+ - feat(monitor): add Monitor tool to PostToolUse compress-output dispatch (#100)
20
+ - PostToolUse updatedToolOutput for Read/Grep/Glob (Claude Code v2.1.119+)
21
+ - session-analysis improvements — az JSON, vite noise, prisma generate, hook health check (#90)
22
+ - feat(fs): auto-compress cat'd markdown via compress_md pipeline (#88)
23
+ - feat(economy): compress Agent/Task prompt at PreToolUse time (#87)
24
+ - feat(handlers): xcodebuild noise filter + log-file tail detection (#84)
25
+ - feat(bench): efficiency-proof benchmark suite — quantitative savings for US-001/003/004 (#74)
26
+ - token-compression power-up — sig-mode, memory-file warn, structured summaries, hypothesis benchmark (#70)
27
+ - feat(setup): adapter-driven setup/uninstall across all hosts (#58)
28
+ - feat(hosts): Codex CLI adapter (hooks + AGENTS.md soft-budget) (#55)
29
+ - feat(hosts): Gemini CLI adapter (BeforeTool/AfterTool hooks) (#52)
30
+ - feat(hosts): full-parity OpenCode adapter + plugin rewrite (#48)
31
+ - wrangler, playwright, next build handlers + bun/drizzle routing (#34)
32
+ - feat(opus47): adapt squeez for Opus 4.7 tokenizer and xhigh effort
33
+ - feat(setup): auto-detect lang from CLAUDE.md/locale + stderr update notification (#29)
34
+ - v0.3.0 — token economy, pt-BR caveman, aggressive defaults, full hook install
35
+ - structured session memory, cross-session search, error snippets, configurable tunables
36
+ - feat(setup): create config.ini on first install
37
+ - feat(i18n): locale-aware compress-md with pt-BR support (#25)
38
+ - fuzzy dedup, adaptive intensity, benign summarize, MCP server, temporal memory, protocol payload
39
+ - Windows setup via cargo/npm + squeez update fix
40
+ - feat(benchmark): add squeez benchmark command with 19-scenario test suite
41
+ - feat(ci): re-add promote-develop workflow with correct registration
42
+ - feat(init): inject persona into ~/.claude/CLAUDE.md on every session start
43
+ - feat(npm+crates): add npm package and publish jobs to release workflow
44
+ - feat(statusline): add statusline.sh to repo; install via install.sh; show all-time stats
45
+ - compress-md, caveman persona, squeez update, track-result hook
46
+ - feat(context): adaptive intensity always picks Ultra
47
+ - feat(context): aggressive token-engine — adaptive intensity, redundancy cache, summarize fallback
48
+ - add Windows support to install.sh and release.yml
49
+ - add home_dir() helper with USERPROFILE fallback for Windows
50
+ - cross-platform wrap — shell_command() helper, cfg(unix) signal gates, libc unix-only
51
+ - add GitHub Copilot CLI support
52
+ - add OpenCode plugin for automatic Bash compression
53
+ - add universal installer support for macOS and Linux
54
+ - expand benchmarks, edge-case tests, and README polish
55
+ - add SessionStart + PostToolUse hooks, update install.sh and README
56
+ - wrap.rs — artifact capture (files/errors/git/tests) + compact warning header
57
+ - squeez init — session start, prior memory banner, session finalization (TDD)
58
+ - squeez track — token accumulation + session event log (TDD)
59
+ - memory.rs — Summary, read_last_n, write_summary, prune_old (TDD)
60
+ - session.rs — CurrentSession, append_event, date math (TDD)
61
+ - json_util helpers + compact_threshold_tokens, memory_retention_days config
62
+ - benchmark system — all fixtures passing
63
+ - build.sh compiles + installs squeez, registers hook
64
+ - PreToolUse hook script
65
+ - fs and runtime handlers — all handler tests passing
66
+ - cloud, database, network handlers (TDD)
67
+ - typescript and build handlers (TDD)
68
+ - package_mgr and test_runner handlers (TDD)
69
+ - git and docker handlers (TDD)
70
+ - wrap subcommand — sh -c, 120s timeout, signal forwarding, bypass check
71
+ - Handler trait with cmd+config, generic handler, command router, filter_stdin
72
+ - truncation strategy (TDD) — all strategy tests passing
73
+ - grouping strategy (TDD)
74
+ - dedup strategy (TDD)
75
+ - smart_filter strategy with node_modules frame removal (TDD)
76
+ - implement config.ini parser (TDD)
77
+
78
+ ### Changed
79
+ - chore(release): bump version to 1.17.0 [squeez-release-bot]
80
+ - docs: update changelog and benchmarks for v1.16.0
81
+ - chore(release): bump version to 1.16.0 [squeez-release-bot]
82
+ - docs: update changelog and benchmarks for v1.15.1
83
+ - chore(release): bump version to 1.15.1 [squeez-release-bot]
84
+ - docs: update README and CLAUDE.md for new hooks and PostToolUse rewrite (#108)
85
+ - refactor(bench): unify benches/ into bench/ — single benchmark directory (#106)
86
+ - test: add missing coverage for compress-output, filter dispatch, SubagentStop, hook registration (#103)
87
+ - docs: update changelog and benchmarks for v1.15.0
88
+ - chore(release): bump version to 1.15.0 [squeez-release-bot]
89
+ - docs: update changelog and benchmarks for v1.13.0
90
+ - chore(release): bump version to 1.14.0 [squeez-release-bot]
91
+ - chore(release): bump version to 1.13.0 [squeez-release-bot]
92
+ - docs: update changelog and benchmarks for v1.12.0
93
+ - chore(release): bump version to 1.12.0 [squeez-release-bot]
94
+ - docs(codex): update adapter comments and README for 0.123.0 hook surface
95
+ - docs: update changelog and benchmarks for v1.11.2
96
+ - chore(release): bump version to 1.11.2 [squeez-release-bot]
97
+ - docs: update changelog and benchmarks for v1.11.1
98
+ - chore(release): bump version to 1.11.1 [squeez-release-bot]
99
+ - docs: update changelog and benchmarks for v1.11.0
100
+ - chore(release): bump version to 1.11.0 [squeez-release-bot]
101
+ - docs: update changelog and benchmarks for v1.10.0
102
+ - docs: update changelog and benchmarks for v1.9.0
103
+ - chore(release): bump version to 1.10.0 [squeez-release-bot]
104
+ - docs(readme): document squeez's compression scope and architectural limits (#85)
105
+ - chore(release): bump version to 1.9.0 [squeez-release-bot]
106
+ - chore(release): bump version to 1.8.0 [squeez-release-bot]
107
+ - docs: update changelog and benchmarks for v1.7.7
108
+ - chore(release): bump version to 1.7.7 [squeez-release-bot]
109
+ - docs: update changelog and benchmarks for v1.7.6
110
+ - chore(release): bump version to 1.7.6 [squeez-release-bot]
111
+ - docs: update changelog and benchmarks for v1.7.5
112
+ - chore(release): bump version to 1.7.5 [squeez-release-bot]
113
+ - docs: update changelog and benchmarks for v1.7.4
114
+ - chore(release): bump version to 1.7.4 [squeez-release-bot]
115
+ - perf: O(log n) refactor — tail read, offset index, single-pass parser
116
+ - docs: update changelog and benchmarks for v1.7.3
117
+ - chore(release): bump version to 1.7.3 [squeez-release-bot]
118
+ - chore(release): bump version to 1.7.2 [squeez-release-bot]
119
+ - restore: revert accidental deletion of auto-release.yml workflow
120
+ - docs: update changelog and benchmarks for v1.7.1
121
+ - chore(release): bump version to 1.7.1 [squeez-release-bot]
122
+ - chore: relicense to Apache 2.0 + add DCO policy + banner (#76)
123
+ - docs: update changelog and benchmarks for v1.7.0
124
+ - chore(release): bump version to 1.7.0 [squeez-release-bot]
125
+ - docs: update changelog and benchmarks for v1.6.1
126
+ - chore(release): bump version to 1.6.1 [squeez-release-bot]
127
+ - docs: update changelog and benchmarks for v1.6.0
128
+ - chore(release): bump version to 1.6.0 [squeez-release-bot]
129
+ - docs: update changelog and benchmarks for v1.5.2
130
+ - chore(release): bump version to 1.5.2 [squeez-release-bot]
131
+ - chore(release): bump version to 1.5.1 [squeez-release-bot]
132
+ - docs: five-host matrix + squeez setup/uninstall flow (#63)
133
+ - refactor(install): delegate host registration to 'squeez setup' (#60)
134
+ - chore(release): bump version to 1.5.0 [squeez-release-bot]
135
+ - chore(release): bump version to 1.4.0 [squeez-release-bot]
136
+ - chore(release): bump version to 1.3.0 [squeez-release-bot]
137
+ - chore(release): bump version to 1.2.0 [squeez-release-bot]
138
+ - chore(release): bump version to 1.1.0 [squeez-release-bot]
139
+ - chore(release): bump version to 1.0.0 [skip release]
140
+ - refactor(hosts): extract HostAdapter trait + migrate Claude Code and Copilot (#42)
141
+ - ci: conventional-commit-driven auto-release (#40)
142
+ - chore(gov): issue-form templates + refined PR template (#39)
143
+ - docs: update changelog and benchmarks for v0.4.1 [skip release] (#33)
144
+ - chore(release): bump version to 0.4.1
145
+ - chore(release): bump version to 0.4.0
146
+ - docs: update changelog and benchmarks for v0.3.2 [skip release] (#30)
147
+ - chore: bump version to 0.3.2
148
+ - docs: add shields.io badge for changelog link
149
+ - chore: bump version to 0.3.1
150
+ - chore: bump version to 0.2.3
151
+ - docs: update README with 11 MCP tools, structured memory, and advanced tunables
152
+ - chore: bump version to 0.2.2
153
+ - docs: rewrite README with full install instructions (curl/npm/cargo) and all commands
154
+ - chore: refresh bench/report.md from latest run [skip release]
155
+ - chore(ci): remove promote-develop workflow (re-adding to fix broken registration)
156
+ - chore: bump version to 0.2.1 + auto-release on merge to main [skip release]
157
+ - chore: bump version to 0.2.0; add Cargo.toml metadata
158
+ - ci: PR template, linked-issue enforcement, no-claude-trailer check
159
+ - docs: update README with PR1+PR2 features, fresh benchmarks, changelog
160
+ - ci: auto-delete branches after PR merge
161
+ - docs: update Windows installation instructions and prerequisites in README
162
+ - docs: add Windows support and Rust install instructions to README
163
+ - refactor: use session::home_dir() in config and init (Windows compat)
164
+ - ci: trigger promote workflow (test)
165
+ - ci(workflow): avoid failing promote job when PR creation is not permitted; add PR_CREATION_TOKEN guidance
166
+ - docs(readme): add changelog, contribution workflow, and benchmark notes
167
+ - ci(workflow): create/update PR from develop to main on push
168
+ - chore: add .worktrees/ to gitignore
169
+ - chore: add docs/ to gitignore (local design specs)
170
+ - docs: update README for GitHub Copilot CLI support
171
+ - security: fix remaining LOW findings in wrap.rs
172
+ - security: fix 2 follow-up findings from second audit
173
+ - security: fix all 8 findings from security audit
174
+ - ci: build and install binary before running benchmarks
175
+ - chore: add GitHub sponsor button
176
+ - chore: ignore .omc/ directory, remove from tracking
177
+ - chore: update benchmark report (7/7 passing)
178
+ - docs: update README — real benchmarks, Phase 2 config, how it works
179
+ - style: cargo fmt on session.rs and test_session.rs
180
+ - chore: open source files — README, LICENSE, CI/release workflows, install.sh
181
+ - chore: scaffold squeez Rust project
182
+
183
+ ### Fixed
184
+ - fix(statusline): show compression % and fix Python heredoc expansion bug
185
+ - plan-mode passthrough + release description body (#95)
186
+ - fix(session-start): health check missed top-level event keys (#92)
187
+ - fix(hosts): expand PreToolUse matcher to cover Read, Grep, Glob, Agent, Task (#86)
188
+ - fix(json_util,statusline): whitespace-tolerant JSON parser + UTF-8 statusline on Windows (#81)
189
+ - fix(hosts): preserve user settings.json when existing JSON fails to parse (#83)
190
+ - prevent OOM from unbounded file reads + data integrity fixes
191
+ - fix(ci): use native ubuntu-24.04-arm runner for aarch64 build
192
+ - eliminate memory leaks causing 16 GB RAM on MCP server startup (#79)
193
+ - fix(hooks): add hookEventName to PreToolUse hookSpecificOutput (#78)
194
+ - fix(opencode): align plugin with PluginModule SDK shape (default export + server map) (#72)
195
+ - fix(ci): push release docs directly to main (loop-safe) (#68)
196
+ - back Copilot BUDGET_HARD with Read/Grep hook + update upstream refs (#65)
197
+ - fix(ci): startsWith guard for auto-release recursion (#46)
198
+ - fix(ci): tighten auto-release bump detection + fix tag push (#44)
199
+ - fix(ci): add --allow-dirty to cargo publish for Cargo.lock changes
200
+ - fix(ci): skip publish gracefully when version already exists on crates.io/npm
201
+ - fix(ci): run update-docs even if publish jobs fail (already published)
202
+ - fix(ci): continue-on-error for publish jobs so update-docs always runs
203
+ - fix(ci): add pull-requests write permission to update-docs job
204
+ - fix(update): cargo-managed self-update + Windows deferred install + session update check (#27)
205
+ - fix(ci): update-docs creates PR instead of pushing directly to protected main
206
+ - fix(npm): copy README.md into npm package before publish; add readme field
207
+ - fix(ci): add toolchain: stable to all dtolnay/rust-toolchain steps
208
+ - fix(ci): handle no previous tags in generate-changelog.sh (pipefail + grep -v)
209
+ - fix(ci): dispatch release.yml from auto-release to bypass GITHUB_TOKEN chain limit [skip release]
210
+ - fix(ci): fix flaky test tmp dir collision + simplify auto-release
211
+ - fix(bench): exclude synthetic fixtures from filter-mode bench/run.sh
212
+ - fix(ci): remove secrets in step if-conditions — check token inside script instead
213
+ - fix(ci): rename promote-develop → promote-to-main to fix broken workflow registration
214
+ - fix(ci): bump github-script to v7 in promote-develop to force workflow re-registration
215
+ - fix(compress_md): use byte slice comparison to avoid UTF-8 char boundary panic
216
+ - fix(statusline): remove Ctx% — show only squeez compression metrics
217
+ - fix(statusline): green ✓, proper capitalization, real-time context %, all metrics
218
+ - resolve gap analysis — new handlers, wider redundancy window, token budget
219
+ - install.sh — clarify PostToolUse no-matcher intent, guard version echo
220
+ - wrap.rs — safe git hex check, O(n) dedup, full cmd in event log
221
+ - use ends_with for files_committed check in init finalize
222
+ - json_util — guard extract_u64 empty digit, add json_util test coverage
223
+ - add pre-flight binary check to bench/run.sh
224
+ - atomic settings.json write + uninstall safety guards
225
+ - harden pretooluse hook (shlex.quote, error handling, single path source)
226
+ - wrap — process_group(0) for correct signal forwarding, tighten is_streaming
227
+
228
+ ## [1.16.0] - 2026-05-06
229
+
230
+ ### Added
231
+ - feat(bench): add pytest, jest, xcode_build scenarios — 23 → 26 scenarios
232
+ - feat(hooks): PreCompact + PostCompact lifecycle hooks (#102)
233
+ - feat(hooks): SubagentStop hook feeds sub-agent output into SessionContext (#101)
234
+ - feat(monitor): add Monitor tool to PostToolUse compress-output dispatch (#100)
235
+ - PostToolUse updatedToolOutput for Read/Grep/Glob (Claude Code v2.1.119+)
236
+ - session-analysis improvements — az JSON, vite noise, prisma generate, hook health check (#90)
237
+ - feat(fs): auto-compress cat'd markdown via compress_md pipeline (#88)
238
+ - feat(economy): compress Agent/Task prompt at PreToolUse time (#87)
239
+ - feat(handlers): xcodebuild noise filter + log-file tail detection (#84)
240
+ - feat(bench): efficiency-proof benchmark suite — quantitative savings for US-001/003/004 (#74)
241
+ - token-compression power-up — sig-mode, memory-file warn, structured summaries, hypothesis benchmark (#70)
242
+ - feat(setup): adapter-driven setup/uninstall across all hosts (#58)
243
+ - feat(hosts): Codex CLI adapter (hooks + AGENTS.md soft-budget) (#55)
244
+ - feat(hosts): Gemini CLI adapter (BeforeTool/AfterTool hooks) (#52)
245
+ - feat(hosts): full-parity OpenCode adapter + plugin rewrite (#48)
246
+ - wrangler, playwright, next build handlers + bun/drizzle routing (#34)
247
+ - feat(opus47): adapt squeez for Opus 4.7 tokenizer and xhigh effort
248
+ - feat(setup): auto-detect lang from CLAUDE.md/locale + stderr update notification (#29)
249
+ - v0.3.0 — token economy, pt-BR caveman, aggressive defaults, full hook install
250
+ - structured session memory, cross-session search, error snippets, configurable tunables
251
+ - feat(setup): create config.ini on first install
252
+ - feat(i18n): locale-aware compress-md with pt-BR support (#25)
253
+ - fuzzy dedup, adaptive intensity, benign summarize, MCP server, temporal memory, protocol payload
254
+ - Windows setup via cargo/npm + squeez update fix
255
+ - feat(benchmark): add squeez benchmark command with 19-scenario test suite
256
+ - feat(ci): re-add promote-develop workflow with correct registration
257
+ - feat(init): inject persona into ~/.claude/CLAUDE.md on every session start
258
+ - feat(npm+crates): add npm package and publish jobs to release workflow
259
+ - feat(statusline): add statusline.sh to repo; install via install.sh; show all-time stats
260
+ - compress-md, caveman persona, squeez update, track-result hook
261
+ - feat(context): adaptive intensity always picks Ultra
262
+ - feat(context): aggressive token-engine — adaptive intensity, redundancy cache, summarize fallback
263
+ - add Windows support to install.sh and release.yml
264
+ - add home_dir() helper with USERPROFILE fallback for Windows
265
+ - cross-platform wrap — shell_command() helper, cfg(unix) signal gates, libc unix-only
266
+ - add GitHub Copilot CLI support
267
+ - add OpenCode plugin for automatic Bash compression
268
+ - add universal installer support for macOS and Linux
269
+ - expand benchmarks, edge-case tests, and README polish
270
+ - add SessionStart + PostToolUse hooks, update install.sh and README
271
+ - wrap.rs — artifact capture (files/errors/git/tests) + compact warning header
272
+ - squeez init — session start, prior memory banner, session finalization (TDD)
273
+ - squeez track — token accumulation + session event log (TDD)
274
+ - memory.rs — Summary, read_last_n, write_summary, prune_old (TDD)
275
+ - session.rs — CurrentSession, append_event, date math (TDD)
276
+ - json_util helpers + compact_threshold_tokens, memory_retention_days config
277
+ - benchmark system — all fixtures passing
278
+ - build.sh compiles + installs squeez, registers hook
279
+ - PreToolUse hook script
280
+ - fs and runtime handlers — all handler tests passing
281
+ - cloud, database, network handlers (TDD)
282
+ - typescript and build handlers (TDD)
283
+ - package_mgr and test_runner handlers (TDD)
284
+ - git and docker handlers (TDD)
285
+ - wrap subcommand — sh -c, 120s timeout, signal forwarding, bypass check
286
+ - Handler trait with cmd+config, generic handler, command router, filter_stdin
287
+ - truncation strategy (TDD) — all strategy tests passing
288
+ - grouping strategy (TDD)
289
+ - dedup strategy (TDD)
290
+ - smart_filter strategy with node_modules frame removal (TDD)
291
+ - implement config.ini parser (TDD)
292
+
293
+ ### Changed
294
+ - chore(release): bump version to 1.16.0 [squeez-release-bot]
295
+ - docs: update changelog and benchmarks for v1.15.1
296
+ - chore(release): bump version to 1.15.1 [squeez-release-bot]
297
+ - docs: update README and CLAUDE.md for new hooks and PostToolUse rewrite (#108)
298
+ - refactor(bench): unify benches/ into bench/ — single benchmark directory (#106)
299
+ - test: add missing coverage for compress-output, filter dispatch, SubagentStop, hook registration (#103)
300
+ - docs: update changelog and benchmarks for v1.15.0
301
+ - chore(release): bump version to 1.15.0 [squeez-release-bot]
302
+ - docs: update changelog and benchmarks for v1.13.0
303
+ - chore(release): bump version to 1.14.0 [squeez-release-bot]
304
+ - chore(release): bump version to 1.13.0 [squeez-release-bot]
305
+ - docs: update changelog and benchmarks for v1.12.0
306
+ - chore(release): bump version to 1.12.0 [squeez-release-bot]
307
+ - docs(codex): update adapter comments and README for 0.123.0 hook surface
308
+ - docs: update changelog and benchmarks for v1.11.2
309
+ - chore(release): bump version to 1.11.2 [squeez-release-bot]
310
+ - docs: update changelog and benchmarks for v1.11.1
311
+ - chore(release): bump version to 1.11.1 [squeez-release-bot]
312
+ - docs: update changelog and benchmarks for v1.11.0
313
+ - chore(release): bump version to 1.11.0 [squeez-release-bot]
314
+ - docs: update changelog and benchmarks for v1.10.0
315
+ - docs: update changelog and benchmarks for v1.9.0
316
+ - chore(release): bump version to 1.10.0 [squeez-release-bot]
317
+ - docs(readme): document squeez's compression scope and architectural limits (#85)
318
+ - chore(release): bump version to 1.9.0 [squeez-release-bot]
319
+ - chore(release): bump version to 1.8.0 [squeez-release-bot]
320
+ - docs: update changelog and benchmarks for v1.7.7
321
+ - chore(release): bump version to 1.7.7 [squeez-release-bot]
322
+ - docs: update changelog and benchmarks for v1.7.6
323
+ - chore(release): bump version to 1.7.6 [squeez-release-bot]
324
+ - docs: update changelog and benchmarks for v1.7.5
325
+ - chore(release): bump version to 1.7.5 [squeez-release-bot]
326
+ - docs: update changelog and benchmarks for v1.7.4
327
+ - chore(release): bump version to 1.7.4 [squeez-release-bot]
328
+ - perf: O(log n) refactor — tail read, offset index, single-pass parser
329
+ - docs: update changelog and benchmarks for v1.7.3
330
+ - chore(release): bump version to 1.7.3 [squeez-release-bot]
331
+ - chore(release): bump version to 1.7.2 [squeez-release-bot]
332
+ - restore: revert accidental deletion of auto-release.yml workflow
333
+ - docs: update changelog and benchmarks for v1.7.1
334
+ - chore(release): bump version to 1.7.1 [squeez-release-bot]
335
+ - chore: relicense to Apache 2.0 + add DCO policy + banner (#76)
336
+ - docs: update changelog and benchmarks for v1.7.0
337
+ - chore(release): bump version to 1.7.0 [squeez-release-bot]
338
+ - docs: update changelog and benchmarks for v1.6.1
339
+ - chore(release): bump version to 1.6.1 [squeez-release-bot]
340
+ - docs: update changelog and benchmarks for v1.6.0
341
+ - chore(release): bump version to 1.6.0 [squeez-release-bot]
342
+ - docs: update changelog and benchmarks for v1.5.2
343
+ - chore(release): bump version to 1.5.2 [squeez-release-bot]
344
+ - chore(release): bump version to 1.5.1 [squeez-release-bot]
345
+ - docs: five-host matrix + squeez setup/uninstall flow (#63)
346
+ - refactor(install): delegate host registration to 'squeez setup' (#60)
347
+ - chore(release): bump version to 1.5.0 [squeez-release-bot]
348
+ - chore(release): bump version to 1.4.0 [squeez-release-bot]
349
+ - chore(release): bump version to 1.3.0 [squeez-release-bot]
350
+ - chore(release): bump version to 1.2.0 [squeez-release-bot]
351
+ - chore(release): bump version to 1.1.0 [squeez-release-bot]
352
+ - chore(release): bump version to 1.0.0 [skip release]
353
+ - refactor(hosts): extract HostAdapter trait + migrate Claude Code and Copilot (#42)
354
+ - ci: conventional-commit-driven auto-release (#40)
355
+ - chore(gov): issue-form templates + refined PR template (#39)
356
+ - docs: update changelog and benchmarks for v0.4.1 [skip release] (#33)
357
+ - chore(release): bump version to 0.4.1
358
+ - chore(release): bump version to 0.4.0
359
+ - docs: update changelog and benchmarks for v0.3.2 [skip release] (#30)
360
+ - chore: bump version to 0.3.2
361
+ - docs: add shields.io badge for changelog link
362
+ - chore: bump version to 0.3.1
363
+ - chore: bump version to 0.2.3
364
+ - docs: update README with 11 MCP tools, structured memory, and advanced tunables
365
+ - chore: bump version to 0.2.2
366
+ - docs: rewrite README with full install instructions (curl/npm/cargo) and all commands
367
+ - chore: refresh bench/report.md from latest run [skip release]
368
+ - chore(ci): remove promote-develop workflow (re-adding to fix broken registration)
369
+ - chore: bump version to 0.2.1 + auto-release on merge to main [skip release]
370
+ - chore: bump version to 0.2.0; add Cargo.toml metadata
371
+ - ci: PR template, linked-issue enforcement, no-claude-trailer check
372
+ - docs: update README with PR1+PR2 features, fresh benchmarks, changelog
373
+ - ci: auto-delete branches after PR merge
374
+ - docs: update Windows installation instructions and prerequisites in README
375
+ - docs: add Windows support and Rust install instructions to README
376
+ - refactor: use session::home_dir() in config and init (Windows compat)
377
+ - ci: trigger promote workflow (test)
378
+ - ci(workflow): avoid failing promote job when PR creation is not permitted; add PR_CREATION_TOKEN guidance
379
+ - docs(readme): add changelog, contribution workflow, and benchmark notes
380
+ - ci(workflow): create/update PR from develop to main on push
381
+ - chore: add .worktrees/ to gitignore
382
+ - chore: add docs/ to gitignore (local design specs)
383
+ - docs: update README for GitHub Copilot CLI support
384
+ - security: fix remaining LOW findings in wrap.rs
385
+ - security: fix 2 follow-up findings from second audit
386
+ - security: fix all 8 findings from security audit
387
+ - ci: build and install binary before running benchmarks
388
+ - chore: add GitHub sponsor button
389
+ - chore: ignore .omc/ directory, remove from tracking
390
+ - chore: update benchmark report (7/7 passing)
391
+ - docs: update README — real benchmarks, Phase 2 config, how it works
392
+ - style: cargo fmt on session.rs and test_session.rs
393
+ - chore: open source files — README, LICENSE, CI/release workflows, install.sh
394
+ - chore: scaffold squeez Rust project
395
+
396
+ ### Fixed
397
+ - fix(statusline): show compression % and fix Python heredoc expansion bug
398
+ - plan-mode passthrough + release description body (#95)
399
+ - fix(session-start): health check missed top-level event keys (#92)
400
+ - fix(hosts): expand PreToolUse matcher to cover Read, Grep, Glob, Agent, Task (#86)
401
+ - fix(json_util,statusline): whitespace-tolerant JSON parser + UTF-8 statusline on Windows (#81)
402
+ - fix(hosts): preserve user settings.json when existing JSON fails to parse (#83)
403
+ - prevent OOM from unbounded file reads + data integrity fixes
404
+ - fix(ci): use native ubuntu-24.04-arm runner for aarch64 build
405
+ - eliminate memory leaks causing 16 GB RAM on MCP server startup (#79)
406
+ - fix(hooks): add hookEventName to PreToolUse hookSpecificOutput (#78)
407
+ - fix(opencode): align plugin with PluginModule SDK shape (default export + server map) (#72)
408
+ - fix(ci): push release docs directly to main (loop-safe) (#68)
409
+ - back Copilot BUDGET_HARD with Read/Grep hook + update upstream refs (#65)
410
+ - fix(ci): startsWith guard for auto-release recursion (#46)
411
+ - fix(ci): tighten auto-release bump detection + fix tag push (#44)
412
+ - fix(ci): add --allow-dirty to cargo publish for Cargo.lock changes
413
+ - fix(ci): skip publish gracefully when version already exists on crates.io/npm
414
+ - fix(ci): run update-docs even if publish jobs fail (already published)
415
+ - fix(ci): continue-on-error for publish jobs so update-docs always runs
416
+ - fix(ci): add pull-requests write permission to update-docs job
417
+ - fix(update): cargo-managed self-update + Windows deferred install + session update check (#27)
418
+ - fix(ci): update-docs creates PR instead of pushing directly to protected main
419
+ - fix(npm): copy README.md into npm package before publish; add readme field
420
+ - fix(ci): add toolchain: stable to all dtolnay/rust-toolchain steps
421
+ - fix(ci): handle no previous tags in generate-changelog.sh (pipefail + grep -v)
422
+ - fix(ci): dispatch release.yml from auto-release to bypass GITHUB_TOKEN chain limit [skip release]
423
+ - fix(ci): fix flaky test tmp dir collision + simplify auto-release
424
+ - fix(bench): exclude synthetic fixtures from filter-mode bench/run.sh
425
+ - fix(ci): remove secrets in step if-conditions — check token inside script instead
426
+ - fix(ci): rename promote-develop → promote-to-main to fix broken workflow registration
427
+ - fix(ci): bump github-script to v7 in promote-develop to force workflow re-registration
428
+ - fix(compress_md): use byte slice comparison to avoid UTF-8 char boundary panic
429
+ - fix(statusline): remove Ctx% — show only squeez compression metrics
430
+ - fix(statusline): green ✓, proper capitalization, real-time context %, all metrics
431
+ - resolve gap analysis — new handlers, wider redundancy window, token budget
432
+ - install.sh — clarify PostToolUse no-matcher intent, guard version echo
433
+ - wrap.rs — safe git hex check, O(n) dedup, full cmd in event log
434
+ - use ends_with for files_committed check in init finalize
435
+ - json_util — guard extract_u64 empty digit, add json_util test coverage
436
+ - add pre-flight binary check to bench/run.sh
437
+ - atomic settings.json write + uninstall safety guards
438
+ - harden pretooluse hook (shlex.quote, error handling, single path source)
439
+ - wrap — process_group(0) for correct signal forwarding, tighten is_streaming
440
+
12
441
  ## [1.15.1] - 2026-05-06
13
442
 
14
443
  ### Added
@@ -1310,7 +1739,7 @@ conventional commit messages on `main`.
1310
1739
  ## [1.5.1] and earlier
1311
1740
  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.
1312
1741
 
1313
- [Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.15.1...HEAD
1742
+ [Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.17.0...HEAD
1314
1743
  [1.7.0]: https://github.com/claudioemmanuel/squeez/compare/v1.6.1...v1.7.0
1315
1744
  [1.6.1]: https://github.com/claudioemmanuel/squeez/compare/v1.6.0...v1.6.1
1316
1745
  [1.6.0]: https://github.com/claudioemmanuel/squeez/compare/v1.5.2...v1.6.0
@@ -1329,3 +1758,5 @@ See the [git tag history](https://github.com/claudioemmanuel/squeez/tags) for pr
1329
1758
  [1.13.0]: https://github.com/claudioemmanuel/squeez/compare/v1.14.0...v1.13.0
1330
1759
  [1.15.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.15.0
1331
1760
  [1.15.1]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.15.1
1761
+ [1.16.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.16.0
1762
+ [1.17.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.17.0
package/README.md CHANGED
@@ -60,6 +60,7 @@ Builds from [crates.io](https://crates.io/crates/squeez). Requires Rust stable.
60
60
  | **OpenCode** | `~/.config/opencode/AGENTS.md` | ✅ native | ✅ native | ✅ native | Plugin at `~/.config/opencode/plugins/squeez.js`; MCP tool calls skip hooks (upstream sst/opencode#2319) |
61
61
  | **Gemini CLI** | `~/.gemini/GEMINI.md` | ✅ native | ✅ native | 🟡 soft via `GEMINI.md` | `BeforeTool` rewrite schema pending upstream docs ([google-gemini/gemini-cli#25629](https://github.com/google-gemini/gemini-cli/issues/25629)) |
62
62
  | **Codex CLI** | `~/.codex/AGENTS.md` | ✅ native | ✅ native | 🟡 soft via `AGENTS.md` | `apply_patch` hooks landed in 0.123.0 ([#18391](https://github.com/openai/codex/pull/18391)); `updatedInput` + `read_file`/`grep` hook surface still pending ([openai/codex#18491](https://github.com/openai/codex/issues/18491)) |
63
+ | **Pi** | `~/.pi/agent/skills/squeez/SKILL.md` | ✅ native | ✅ via skill | ✅ native | TypeScript extension at `~/.pi/agent/extensions/squeez/index.ts`; restart Pi after setup |
63
64
 
64
65
  ### Manage
65
66
 
@@ -70,7 +71,7 @@ squeez uninstall # remove squeez entries from every detected host
70
71
  squeez uninstall --host=<slug>
71
72
  ```
72
73
 
73
- Slugs: `claude-code` / `copilot` / `opencode` / `gemini` / `codex`.
74
+ Slugs: `claude-code` / `copilot` / `opencode` / `gemini` / `codex` / `pi`.
74
75
 
75
76
  After install, restart the CLI you use to pick up the new hooks.
76
77
 
@@ -157,53 +158,58 @@ squeez cannot automate these, but you can:
157
158
  <!-- BENCHMARK:START -->
158
159
  Measured on macOS (Apple Silicon). Token count = `chars / 4` (matches Claude's ~4 chars/token). Run `squeez benchmark` to reproduce.
159
160
 
160
- ### Per-scenario results — 23 scenarios × 5 iterations
161
+ ### Per-scenario results — 28 scenarios × 5 iterations
161
162
 
162
163
  | Scenario | Before | After | Reduction | Latency |
163
164
  |----------|--------|-------|-----------|---------|
164
- | `summarize_huge` | 82,257 tk | 420 tk | **-99%** | 55.5 ms |
165
- | `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 204 µs |
166
- | `high_context_adaptive` | 4,418 tk | 52 tk | **-99%** | 787 µs |
165
+ | `summarize_huge` | 82,257 tk | 420 tk | **-99%** | 55.6 ms |
166
+ | `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 211 µs |
167
+ | `xcode_build` | 1,881 tk | 17 tk | **-99%** | 78 µs |
168
+ | `high_context_adaptive` | 4,418 tk | 52 tk | **-99%** | 812 µs |
169
+ | `agent_directory_output` | 3,348 tk | 167 tk | **-95%** | 334 µs |
167
170
  | `ps_aux` | 40,373 tk | 2,352 tk | **-94%** | 2.7 ms |
168
- | `git_log_200` | 2,692 tk | 289 tk | **-89%** | 207 µs |
169
- | `tsc_errors` | 731 tk | 101 tk | **-86%** | 27 µs |
170
- | `cargo_build_noisy` | 2,106 tk | 452 tk | **-79%** | 246 µs |
171
- | `docker_logs` | 665 tk | 186 tk | **-72%** | 46 µs |
172
- | `find_deep` | 424 tk | 134 tk | **-68%** | 82 µs |
173
- | `git_status` | 50 tk | 16 tk | **-68%** | 11 µs |
174
- | `verbose_app_log` | 4,957 tk | 1,991 tk | **-60%** | 288 µs |
171
+ | `git_log_200` | 2,692 tk | 289 tk | **-89%** | 217 µs |
172
+ | `tsc_errors` | 731 tk | 101 tk | **-86%** | 23 µs |
173
+ | `cargo_build_noisy` | 2,106 tk | 452 tk | **-79%** | 247 µs |
174
+ | `docker_logs` | 665 tk | 186 tk | **-72%** | 48 µs |
175
+ | `curl_html_response` | 2,181 tk | 626 tk | **-71%** | 47 µs |
176
+ | `find_deep` | 424 tk | 134 tk | **-68%** | 79 µs |
177
+ | `git_status` | 50 tk | 16 tk | **-68%** | 14 µs |
178
+ | `pytest_failures` | 3,402 tk | 1,189 tk | **-65%** | 312 µs |
179
+ | `verbose_app_log` | 4,957 tk | 1,991 tk | **-60%** | 295 µs |
175
180
  | `npm_install` | 524 tk | 232 tk | **-56%** | 47 µs |
176
181
  | `crosscall_redundancy_3x` | 486 tk | 241 tk | **-50%** | 51.5 ms |
177
- | `ls_la` | 1,782 tk | 886 tk | **-50%** | 213 µs |
178
- | `env_dump` | 441 tk | 287 tk | **-35%** | 23 µs |
179
- | `git_copilot` | 640 tk | 421 tk | **-34%** | 114 µs |
180
- | `agent_heavy` | 2,306 tk | 1,564 tk | **-32%** | 373 µs |
181
- | `md_prose` | 187 tk | 138 tk | **-26%** | 619 µs |
182
- | `md_claude_md` | 316 tk | 247 tk | **-22%** | 1.1 ms |
183
- | `claude_md_overhead` | 717 tk | 649 tk | **-9%** | 22 µs |
184
- | `git_diff` | 502 tk | 497 tk | **-1%** | 43 µs |
182
+ | `ls_la` | 1,782 tk | 886 tk | **-50%** | 207 µs |
183
+ | `env_dump` | 441 tk | 287 tk | **-35%** | 25 µs |
184
+ | `git_copilot` | 640 tk | 421 tk | **-34%** | 123 µs |
185
+ | `agent_heavy` | 2,306 tk | 1,564 tk | **-32%** | 321 µs |
186
+ | `md_prose` | 187 tk | 138 tk | **-26%** | 755 µs |
187
+ | `md_claude_md` | 316 tk | 247 tk | **-22%** | 1.2 ms |
188
+ | `claude_md_overhead` | 717 tk | 649 tk | **-9%** | 24 µs |
189
+ | `git_diff` | 502 tk | 497 tk | **-1%** | 44 µs |
190
+ | `jest_failures` | 451 tk | 448 tk | **-1%** | 54 µs |
185
191
  | `state_first_simulation` | 182 tk | 181 tk | **-1%** | 5 µs |
186
- | `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** | 28 µs |
192
+ | `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** | 33 µs |
187
193
 
188
194
  ### Aggregate
189
195
 
190
196
  | Metric | Value |
191
197
  |--------|-------|
192
- | **Total token reduction** | **91.6%** — 152,961 tk → 12,886 tk |
193
- | Bash output | **-84.9%** |
198
+ | **Total token reduction** | **90.7%** — 164,224 tk → 15,333 tk |
199
+ | Bash output | **-83.9%** |
194
200
  | Markdown / context files | **-23.5%** |
195
201
  | Wrap / cross-call engine | **-99.2%** |
196
- | Quality (signal terms preserved) | **23 / 23 pass** |
197
- | Latency p50 (filter mode) | **5.0 ms** |
198
- | Latency p95 (incl. wrap/summarize) | **52 ms** |
202
+ | Quality (signal terms preserved) | **28 / 28 pass** |
203
+ | Latency p50 (filter mode) | **4.1 ms** |
204
+ | Latency p95 (incl. wrap/summarize) | **51 ms** |
199
205
 
200
206
  ### Estimated cost savings — Claude Sonnet 4.6 · $3.00 / MTok input
201
207
 
202
208
  | Usage | Baseline / month | Saved / month |
203
209
  |-------|-----------------|---------------|
204
- | 100 calls / day | $18.00 | **$16.48 (92%)** |
205
- | 1,000 calls / day | $180.00 | **$164.84 (92%)** |
206
- | 10,000 calls / day | $1800.00 | **$1648.44 (92%)** |
210
+ | 100 calls / day | $18.00 | **$16.32 (91%)** |
211
+ | 1,000 calls / day | $180.00 | **$163.19 (91%)** |
212
+ | 10,000 calls / day | $1800.00 | **$1631.88 (91%)** |
207
213
  <!-- BENCHMARK:END -->
208
214
 
209
215
  ---
@@ -486,6 +492,10 @@ Refresh memory manually:
486
492
  SQUEEZ_DIR=~/.copilot/squeez ~/.claude/squeez/bin/squeez init --copilot
487
493
  ```
488
494
 
495
+ ### Pi
496
+
497
+ TypeScript extension installed at `~/.pi/agent/extensions/squeez/index.ts`. Pi auto-discovers extensions from that directory — no settings patching needed. Session memory is injected via a skill at `~/.pi/agent/skills/squeez/SKILL.md`; Pi includes the skill description in every system prompt and loads full instructions on demand. Unlike other hosts, Pi achieves `BUDGET_HARD` output compression via the `tool_result` event (return-patch API), not just soft hints.
498
+
489
499
  ---
490
500
 
491
501
  ## Local development
@@ -525,6 +535,12 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for coding standards.
525
535
 
526
536
  ---
527
537
 
538
+ ## Similar projects
539
+
540
+ There is an unrelated project with the same name at [KRLabsOrg/squeez](https://github.com/KRLabsOrg/squeez). This project (claudioemmanuel/squeez) is a hook-based token compressor for AI coding CLIs.
541
+
542
+ ---
543
+
528
544
  ## License
529
545
 
530
546
  Licensed under the **Apache License 2.0** — see [LICENSE](LICENSE) + [NOTICE](NOTICE).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "squeez",
3
- "version": "1.16.0",
3
+ "version": "1.18.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",