squeez 1.17.0 → 1.18.1

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