squeez 1.11.2 → 1.13.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 +391 -1
  2. package/README.md +23 -23
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -9,6 +9,394 @@ conventional commit messages on `main`.
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [1.12.0] - 2026-05-05
13
+
14
+ ### Added
15
+ - PostToolUse updatedToolOutput for Read/Grep/Glob (Claude Code v2.1.119+)
16
+ - session-analysis improvements — az JSON, vite noise, prisma generate, hook health check (#90)
17
+ - feat(fs): auto-compress cat'd markdown via compress_md pipeline (#88)
18
+ - feat(economy): compress Agent/Task prompt at PreToolUse time (#87)
19
+ - feat(handlers): xcodebuild noise filter + log-file tail detection (#84)
20
+ - feat(bench): efficiency-proof benchmark suite — quantitative savings for US-001/003/004 (#74)
21
+ - token-compression power-up — sig-mode, memory-file warn, structured summaries, hypothesis benchmark (#70)
22
+ - feat(setup): adapter-driven setup/uninstall across all hosts (#58)
23
+ - feat(hosts): Codex CLI adapter (hooks + AGENTS.md soft-budget) (#55)
24
+ - feat(hosts): Gemini CLI adapter (BeforeTool/AfterTool hooks) (#52)
25
+ - feat(hosts): full-parity OpenCode adapter + plugin rewrite (#48)
26
+ - wrangler, playwright, next build handlers + bun/drizzle routing (#34)
27
+ - feat(opus47): adapt squeez for Opus 4.7 tokenizer and xhigh effort
28
+ - feat(setup): auto-detect lang from CLAUDE.md/locale + stderr update notification (#29)
29
+ - v0.3.0 — token economy, pt-BR caveman, aggressive defaults, full hook install
30
+ - structured session memory, cross-session search, error snippets, configurable tunables
31
+ - feat(setup): create config.ini on first install
32
+ - feat(i18n): locale-aware compress-md with pt-BR support (#25)
33
+ - fuzzy dedup, adaptive intensity, benign summarize, MCP server, temporal memory, protocol payload
34
+ - Windows setup via cargo/npm + squeez update fix
35
+ - feat(benchmark): add squeez benchmark command with 19-scenario test suite
36
+ - feat(ci): re-add promote-develop workflow with correct registration
37
+ - feat(init): inject persona into ~/.claude/CLAUDE.md on every session start
38
+ - feat(npm+crates): add npm package and publish jobs to release workflow
39
+ - feat(statusline): add statusline.sh to repo; install via install.sh; show all-time stats
40
+ - compress-md, caveman persona, squeez update, track-result hook
41
+ - feat(context): adaptive intensity always picks Ultra
42
+ - feat(context): aggressive token-engine — adaptive intensity, redundancy cache, summarize fallback
43
+ - add Windows support to install.sh and release.yml
44
+ - add home_dir() helper with USERPROFILE fallback for Windows
45
+ - cross-platform wrap — shell_command() helper, cfg(unix) signal gates, libc unix-only
46
+ - add GitHub Copilot CLI support
47
+ - add OpenCode plugin for automatic Bash compression
48
+ - add universal installer support for macOS and Linux
49
+ - expand benchmarks, edge-case tests, and README polish
50
+ - add SessionStart + PostToolUse hooks, update install.sh and README
51
+ - wrap.rs — artifact capture (files/errors/git/tests) + compact warning header
52
+ - squeez init — session start, prior memory banner, session finalization (TDD)
53
+ - squeez track — token accumulation + session event log (TDD)
54
+ - memory.rs — Summary, read_last_n, write_summary, prune_old (TDD)
55
+ - session.rs — CurrentSession, append_event, date math (TDD)
56
+ - json_util helpers + compact_threshold_tokens, memory_retention_days config
57
+ - benchmark system — all fixtures passing
58
+ - build.sh compiles + installs squeez, registers hook
59
+ - PreToolUse hook script
60
+ - fs and runtime handlers — all handler tests passing
61
+ - cloud, database, network handlers (TDD)
62
+ - typescript and build handlers (TDD)
63
+ - package_mgr and test_runner handlers (TDD)
64
+ - git and docker handlers (TDD)
65
+ - wrap subcommand — sh -c, 120s timeout, signal forwarding, bypass check
66
+ - Handler trait with cmd+config, generic handler, command router, filter_stdin
67
+ - truncation strategy (TDD) — all strategy tests passing
68
+ - grouping strategy (TDD)
69
+ - dedup strategy (TDD)
70
+ - smart_filter strategy with node_modules frame removal (TDD)
71
+ - implement config.ini parser (TDD)
72
+
73
+ ### Changed
74
+ - chore(release): bump version to 1.12.0 [squeez-release-bot]
75
+ - docs(codex): update adapter comments and README for 0.123.0 hook surface
76
+ - docs: update changelog and benchmarks for v1.11.2
77
+ - chore(release): bump version to 1.11.2 [squeez-release-bot]
78
+ - docs: update changelog and benchmarks for v1.11.1
79
+ - chore(release): bump version to 1.11.1 [squeez-release-bot]
80
+ - docs: update changelog and benchmarks for v1.11.0
81
+ - chore(release): bump version to 1.11.0 [squeez-release-bot]
82
+ - docs: update changelog and benchmarks for v1.10.0
83
+ - docs: update changelog and benchmarks for v1.9.0
84
+ - chore(release): bump version to 1.10.0 [squeez-release-bot]
85
+ - docs(readme): document squeez's compression scope and architectural limits (#85)
86
+ - chore(release): bump version to 1.9.0 [squeez-release-bot]
87
+ - chore(release): bump version to 1.8.0 [squeez-release-bot]
88
+ - docs: update changelog and benchmarks for v1.7.7
89
+ - chore(release): bump version to 1.7.7 [squeez-release-bot]
90
+ - docs: update changelog and benchmarks for v1.7.6
91
+ - chore(release): bump version to 1.7.6 [squeez-release-bot]
92
+ - docs: update changelog and benchmarks for v1.7.5
93
+ - chore(release): bump version to 1.7.5 [squeez-release-bot]
94
+ - docs: update changelog and benchmarks for v1.7.4
95
+ - chore(release): bump version to 1.7.4 [squeez-release-bot]
96
+ - perf: O(log n) refactor — tail read, offset index, single-pass parser
97
+ - docs: update changelog and benchmarks for v1.7.3
98
+ - chore(release): bump version to 1.7.3 [squeez-release-bot]
99
+ - chore(release): bump version to 1.7.2 [squeez-release-bot]
100
+ - restore: revert accidental deletion of auto-release.yml workflow
101
+ - docs: update changelog and benchmarks for v1.7.1
102
+ - chore(release): bump version to 1.7.1 [squeez-release-bot]
103
+ - chore: relicense to Apache 2.0 + add DCO policy + banner (#76)
104
+ - docs: update changelog and benchmarks for v1.7.0
105
+ - chore(release): bump version to 1.7.0 [squeez-release-bot]
106
+ - docs: update changelog and benchmarks for v1.6.1
107
+ - chore(release): bump version to 1.6.1 [squeez-release-bot]
108
+ - docs: update changelog and benchmarks for v1.6.0
109
+ - chore(release): bump version to 1.6.0 [squeez-release-bot]
110
+ - docs: update changelog and benchmarks for v1.5.2
111
+ - chore(release): bump version to 1.5.2 [squeez-release-bot]
112
+ - chore(release): bump version to 1.5.1 [squeez-release-bot]
113
+ - docs: five-host matrix + squeez setup/uninstall flow (#63)
114
+ - refactor(install): delegate host registration to 'squeez setup' (#60)
115
+ - chore(release): bump version to 1.5.0 [squeez-release-bot]
116
+ - chore(release): bump version to 1.4.0 [squeez-release-bot]
117
+ - chore(release): bump version to 1.3.0 [squeez-release-bot]
118
+ - chore(release): bump version to 1.2.0 [squeez-release-bot]
119
+ - chore(release): bump version to 1.1.0 [squeez-release-bot]
120
+ - chore(release): bump version to 1.0.0 [skip release]
121
+ - refactor(hosts): extract HostAdapter trait + migrate Claude Code and Copilot (#42)
122
+ - ci: conventional-commit-driven auto-release (#40)
123
+ - chore(gov): issue-form templates + refined PR template (#39)
124
+ - docs: update changelog and benchmarks for v0.4.1 [skip release] (#33)
125
+ - chore(release): bump version to 0.4.1
126
+ - chore(release): bump version to 0.4.0
127
+ - docs: update changelog and benchmarks for v0.3.2 [skip release] (#30)
128
+ - chore: bump version to 0.3.2
129
+ - docs: add shields.io badge for changelog link
130
+ - chore: bump version to 0.3.1
131
+ - chore: bump version to 0.2.3
132
+ - docs: update README with 11 MCP tools, structured memory, and advanced tunables
133
+ - chore: bump version to 0.2.2
134
+ - docs: rewrite README with full install instructions (curl/npm/cargo) and all commands
135
+ - chore: refresh bench/report.md from latest run [skip release]
136
+ - chore(ci): remove promote-develop workflow (re-adding to fix broken registration)
137
+ - chore: bump version to 0.2.1 + auto-release on merge to main [skip release]
138
+ - chore: bump version to 0.2.0; add Cargo.toml metadata
139
+ - ci: PR template, linked-issue enforcement, no-claude-trailer check
140
+ - docs: update README with PR1+PR2 features, fresh benchmarks, changelog
141
+ - ci: auto-delete branches after PR merge
142
+ - docs: update Windows installation instructions and prerequisites in README
143
+ - docs: add Windows support and Rust install instructions to README
144
+ - refactor: use session::home_dir() in config and init (Windows compat)
145
+ - ci: trigger promote workflow (test)
146
+ - ci(workflow): avoid failing promote job when PR creation is not permitted; add PR_CREATION_TOKEN guidance
147
+ - docs(readme): add changelog, contribution workflow, and benchmark notes
148
+ - ci(workflow): create/update PR from develop to main on push
149
+ - chore: add .worktrees/ to gitignore
150
+ - chore: add docs/ to gitignore (local design specs)
151
+ - docs: update README for GitHub Copilot CLI support
152
+ - security: fix remaining LOW findings in wrap.rs
153
+ - security: fix 2 follow-up findings from second audit
154
+ - security: fix all 8 findings from security audit
155
+ - ci: build and install binary before running benchmarks
156
+ - chore: add GitHub sponsor button
157
+ - chore: ignore .omc/ directory, remove from tracking
158
+ - chore: update benchmark report (7/7 passing)
159
+ - docs: update README — real benchmarks, Phase 2 config, how it works
160
+ - style: cargo fmt on session.rs and test_session.rs
161
+ - chore: open source files — README, LICENSE, CI/release workflows, install.sh
162
+ - chore: scaffold squeez Rust project
163
+
164
+ ### Fixed
165
+ - plan-mode passthrough + release description body (#95)
166
+ - fix(session-start): health check missed top-level event keys (#92)
167
+ - fix(hosts): expand PreToolUse matcher to cover Read, Grep, Glob, Agent, Task (#86)
168
+ - fix(json_util,statusline): whitespace-tolerant JSON parser + UTF-8 statusline on Windows (#81)
169
+ - fix(hosts): preserve user settings.json when existing JSON fails to parse (#83)
170
+ - prevent OOM from unbounded file reads + data integrity fixes
171
+ - fix(ci): use native ubuntu-24.04-arm runner for aarch64 build
172
+ - eliminate memory leaks causing 16 GB RAM on MCP server startup (#79)
173
+ - fix(hooks): add hookEventName to PreToolUse hookSpecificOutput (#78)
174
+ - fix(opencode): align plugin with PluginModule SDK shape (default export + server map) (#72)
175
+ - fix(ci): push release docs directly to main (loop-safe) (#68)
176
+ - back Copilot BUDGET_HARD with Read/Grep hook + update upstream refs (#65)
177
+ - fix(ci): startsWith guard for auto-release recursion (#46)
178
+ - fix(ci): tighten auto-release bump detection + fix tag push (#44)
179
+ - fix(ci): add --allow-dirty to cargo publish for Cargo.lock changes
180
+ - fix(ci): skip publish gracefully when version already exists on crates.io/npm
181
+ - fix(ci): run update-docs even if publish jobs fail (already published)
182
+ - fix(ci): continue-on-error for publish jobs so update-docs always runs
183
+ - fix(ci): add pull-requests write permission to update-docs job
184
+ - fix(update): cargo-managed self-update + Windows deferred install + session update check (#27)
185
+ - fix(ci): update-docs creates PR instead of pushing directly to protected main
186
+ - fix(npm): copy README.md into npm package before publish; add readme field
187
+ - fix(ci): add toolchain: stable to all dtolnay/rust-toolchain steps
188
+ - fix(ci): handle no previous tags in generate-changelog.sh (pipefail + grep -v)
189
+ - fix(ci): dispatch release.yml from auto-release to bypass GITHUB_TOKEN chain limit [skip release]
190
+ - fix(ci): fix flaky test tmp dir collision + simplify auto-release
191
+ - fix(bench): exclude synthetic fixtures from filter-mode bench/run.sh
192
+ - fix(ci): remove secrets in step if-conditions — check token inside script instead
193
+ - fix(ci): rename promote-develop → promote-to-main to fix broken workflow registration
194
+ - fix(ci): bump github-script to v7 in promote-develop to force workflow re-registration
195
+ - fix(compress_md): use byte slice comparison to avoid UTF-8 char boundary panic
196
+ - fix(statusline): remove Ctx% — show only squeez compression metrics
197
+ - fix(statusline): green ✓, proper capitalization, real-time context %, all metrics
198
+ - resolve gap analysis — new handlers, wider redundancy window, token budget
199
+ - install.sh — clarify PostToolUse no-matcher intent, guard version echo
200
+ - wrap.rs — safe git hex check, O(n) dedup, full cmd in event log
201
+ - use ends_with for files_committed check in init finalize
202
+ - json_util — guard extract_u64 empty digit, add json_util test coverage
203
+ - add pre-flight binary check to bench/run.sh
204
+ - atomic settings.json write + uninstall safety guards
205
+ - harden pretooluse hook (shlex.quote, error handling, single path source)
206
+ - wrap — process_group(0) for correct signal forwarding, tighten is_streaming
207
+
208
+ ## [1.11.2] - 2026-04-30
209
+
210
+ ### Added
211
+ - session-analysis improvements — az JSON, vite noise, prisma generate, hook health check (#90)
212
+ - feat(fs): auto-compress cat'd markdown via compress_md pipeline (#88)
213
+ - feat(economy): compress Agent/Task prompt at PreToolUse time (#87)
214
+ - feat(handlers): xcodebuild noise filter + log-file tail detection (#84)
215
+ - feat(bench): efficiency-proof benchmark suite — quantitative savings for US-001/003/004 (#74)
216
+ - token-compression power-up — sig-mode, memory-file warn, structured summaries, hypothesis benchmark (#70)
217
+ - feat(setup): adapter-driven setup/uninstall across all hosts (#58)
218
+ - feat(hosts): Codex CLI adapter (hooks + AGENTS.md soft-budget) (#55)
219
+ - feat(hosts): Gemini CLI adapter (BeforeTool/AfterTool hooks) (#52)
220
+ - feat(hosts): full-parity OpenCode adapter + plugin rewrite (#48)
221
+ - wrangler, playwright, next build handlers + bun/drizzle routing (#34)
222
+ - feat(opus47): adapt squeez for Opus 4.7 tokenizer and xhigh effort
223
+ - feat(setup): auto-detect lang from CLAUDE.md/locale + stderr update notification (#29)
224
+ - v0.3.0 — token economy, pt-BR caveman, aggressive defaults, full hook install
225
+ - structured session memory, cross-session search, error snippets, configurable tunables
226
+ - feat(setup): create config.ini on first install
227
+ - feat(i18n): locale-aware compress-md with pt-BR support (#25)
228
+ - fuzzy dedup, adaptive intensity, benign summarize, MCP server, temporal memory, protocol payload
229
+ - Windows setup via cargo/npm + squeez update fix
230
+ - feat(benchmark): add squeez benchmark command with 19-scenario test suite
231
+ - feat(ci): re-add promote-develop workflow with correct registration
232
+ - feat(init): inject persona into ~/.claude/CLAUDE.md on every session start
233
+ - feat(npm+crates): add npm package and publish jobs to release workflow
234
+ - feat(statusline): add statusline.sh to repo; install via install.sh; show all-time stats
235
+ - compress-md, caveman persona, squeez update, track-result hook
236
+ - feat(context): adaptive intensity always picks Ultra
237
+ - feat(context): aggressive token-engine — adaptive intensity, redundancy cache, summarize fallback
238
+ - add Windows support to install.sh and release.yml
239
+ - add home_dir() helper with USERPROFILE fallback for Windows
240
+ - cross-platform wrap — shell_command() helper, cfg(unix) signal gates, libc unix-only
241
+ - add GitHub Copilot CLI support
242
+ - add OpenCode plugin for automatic Bash compression
243
+ - add universal installer support for macOS and Linux
244
+ - expand benchmarks, edge-case tests, and README polish
245
+ - add SessionStart + PostToolUse hooks, update install.sh and README
246
+ - wrap.rs — artifact capture (files/errors/git/tests) + compact warning header
247
+ - squeez init — session start, prior memory banner, session finalization (TDD)
248
+ - squeez track — token accumulation + session event log (TDD)
249
+ - memory.rs — Summary, read_last_n, write_summary, prune_old (TDD)
250
+ - session.rs — CurrentSession, append_event, date math (TDD)
251
+ - json_util helpers + compact_threshold_tokens, memory_retention_days config
252
+ - benchmark system — all fixtures passing
253
+ - build.sh compiles + installs squeez, registers hook
254
+ - PreToolUse hook script
255
+ - fs and runtime handlers — all handler tests passing
256
+ - cloud, database, network handlers (TDD)
257
+ - typescript and build handlers (TDD)
258
+ - package_mgr and test_runner handlers (TDD)
259
+ - git and docker handlers (TDD)
260
+ - wrap subcommand — sh -c, 120s timeout, signal forwarding, bypass check
261
+ - Handler trait with cmd+config, generic handler, command router, filter_stdin
262
+ - truncation strategy (TDD) — all strategy tests passing
263
+ - grouping strategy (TDD)
264
+ - dedup strategy (TDD)
265
+ - smart_filter strategy with node_modules frame removal (TDD)
266
+ - implement config.ini parser (TDD)
267
+
268
+ ### Changed
269
+ - chore(release): bump version to 1.11.2 [squeez-release-bot]
270
+ - docs: update changelog and benchmarks for v1.11.1
271
+ - chore(release): bump version to 1.11.1 [squeez-release-bot]
272
+ - docs: update changelog and benchmarks for v1.11.0
273
+ - chore(release): bump version to 1.11.0 [squeez-release-bot]
274
+ - docs: update changelog and benchmarks for v1.10.0
275
+ - docs: update changelog and benchmarks for v1.9.0
276
+ - chore(release): bump version to 1.10.0 [squeez-release-bot]
277
+ - docs(readme): document squeez's compression scope and architectural limits (#85)
278
+ - chore(release): bump version to 1.9.0 [squeez-release-bot]
279
+ - chore(release): bump version to 1.8.0 [squeez-release-bot]
280
+ - docs: update changelog and benchmarks for v1.7.7
281
+ - chore(release): bump version to 1.7.7 [squeez-release-bot]
282
+ - docs: update changelog and benchmarks for v1.7.6
283
+ - chore(release): bump version to 1.7.6 [squeez-release-bot]
284
+ - docs: update changelog and benchmarks for v1.7.5
285
+ - chore(release): bump version to 1.7.5 [squeez-release-bot]
286
+ - docs: update changelog and benchmarks for v1.7.4
287
+ - chore(release): bump version to 1.7.4 [squeez-release-bot]
288
+ - perf: O(log n) refactor — tail read, offset index, single-pass parser
289
+ - docs: update changelog and benchmarks for v1.7.3
290
+ - chore(release): bump version to 1.7.3 [squeez-release-bot]
291
+ - chore(release): bump version to 1.7.2 [squeez-release-bot]
292
+ - restore: revert accidental deletion of auto-release.yml workflow
293
+ - docs: update changelog and benchmarks for v1.7.1
294
+ - chore(release): bump version to 1.7.1 [squeez-release-bot]
295
+ - chore: relicense to Apache 2.0 + add DCO policy + banner (#76)
296
+ - docs: update changelog and benchmarks for v1.7.0
297
+ - chore(release): bump version to 1.7.0 [squeez-release-bot]
298
+ - docs: update changelog and benchmarks for v1.6.1
299
+ - chore(release): bump version to 1.6.1 [squeez-release-bot]
300
+ - docs: update changelog and benchmarks for v1.6.0
301
+ - chore(release): bump version to 1.6.0 [squeez-release-bot]
302
+ - docs: update changelog and benchmarks for v1.5.2
303
+ - chore(release): bump version to 1.5.2 [squeez-release-bot]
304
+ - chore(release): bump version to 1.5.1 [squeez-release-bot]
305
+ - docs: five-host matrix + squeez setup/uninstall flow (#63)
306
+ - refactor(install): delegate host registration to 'squeez setup' (#60)
307
+ - chore(release): bump version to 1.5.0 [squeez-release-bot]
308
+ - chore(release): bump version to 1.4.0 [squeez-release-bot]
309
+ - chore(release): bump version to 1.3.0 [squeez-release-bot]
310
+ - chore(release): bump version to 1.2.0 [squeez-release-bot]
311
+ - chore(release): bump version to 1.1.0 [squeez-release-bot]
312
+ - chore(release): bump version to 1.0.0 [skip release]
313
+ - refactor(hosts): extract HostAdapter trait + migrate Claude Code and Copilot (#42)
314
+ - ci: conventional-commit-driven auto-release (#40)
315
+ - chore(gov): issue-form templates + refined PR template (#39)
316
+ - docs: update changelog and benchmarks for v0.4.1 [skip release] (#33)
317
+ - chore(release): bump version to 0.4.1
318
+ - chore(release): bump version to 0.4.0
319
+ - docs: update changelog and benchmarks for v0.3.2 [skip release] (#30)
320
+ - chore: bump version to 0.3.2
321
+ - docs: add shields.io badge for changelog link
322
+ - chore: bump version to 0.3.1
323
+ - chore: bump version to 0.2.3
324
+ - docs: update README with 11 MCP tools, structured memory, and advanced tunables
325
+ - chore: bump version to 0.2.2
326
+ - docs: rewrite README with full install instructions (curl/npm/cargo) and all commands
327
+ - chore: refresh bench/report.md from latest run [skip release]
328
+ - chore(ci): remove promote-develop workflow (re-adding to fix broken registration)
329
+ - chore: bump version to 0.2.1 + auto-release on merge to main [skip release]
330
+ - chore: bump version to 0.2.0; add Cargo.toml metadata
331
+ - ci: PR template, linked-issue enforcement, no-claude-trailer check
332
+ - docs: update README with PR1+PR2 features, fresh benchmarks, changelog
333
+ - ci: auto-delete branches after PR merge
334
+ - docs: update Windows installation instructions and prerequisites in README
335
+ - docs: add Windows support and Rust install instructions to README
336
+ - refactor: use session::home_dir() in config and init (Windows compat)
337
+ - ci: trigger promote workflow (test)
338
+ - ci(workflow): avoid failing promote job when PR creation is not permitted; add PR_CREATION_TOKEN guidance
339
+ - docs(readme): add changelog, contribution workflow, and benchmark notes
340
+ - ci(workflow): create/update PR from develop to main on push
341
+ - chore: add .worktrees/ to gitignore
342
+ - chore: add docs/ to gitignore (local design specs)
343
+ - docs: update README for GitHub Copilot CLI support
344
+ - security: fix remaining LOW findings in wrap.rs
345
+ - security: fix 2 follow-up findings from second audit
346
+ - security: fix all 8 findings from security audit
347
+ - ci: build and install binary before running benchmarks
348
+ - chore: add GitHub sponsor button
349
+ - chore: ignore .omc/ directory, remove from tracking
350
+ - chore: update benchmark report (7/7 passing)
351
+ - docs: update README — real benchmarks, Phase 2 config, how it works
352
+ - style: cargo fmt on session.rs and test_session.rs
353
+ - chore: open source files — README, LICENSE, CI/release workflows, install.sh
354
+ - chore: scaffold squeez Rust project
355
+
356
+ ### Fixed
357
+ - plan-mode passthrough + release description body (#95)
358
+ - fix(session-start): health check missed top-level event keys (#92)
359
+ - fix(hosts): expand PreToolUse matcher to cover Read, Grep, Glob, Agent, Task (#86)
360
+ - fix(json_util,statusline): whitespace-tolerant JSON parser + UTF-8 statusline on Windows (#81)
361
+ - fix(hosts): preserve user settings.json when existing JSON fails to parse (#83)
362
+ - prevent OOM from unbounded file reads + data integrity fixes
363
+ - fix(ci): use native ubuntu-24.04-arm runner for aarch64 build
364
+ - eliminate memory leaks causing 16 GB RAM on MCP server startup (#79)
365
+ - fix(hooks): add hookEventName to PreToolUse hookSpecificOutput (#78)
366
+ - fix(opencode): align plugin with PluginModule SDK shape (default export + server map) (#72)
367
+ - fix(ci): push release docs directly to main (loop-safe) (#68)
368
+ - back Copilot BUDGET_HARD with Read/Grep hook + update upstream refs (#65)
369
+ - fix(ci): startsWith guard for auto-release recursion (#46)
370
+ - fix(ci): tighten auto-release bump detection + fix tag push (#44)
371
+ - fix(ci): add --allow-dirty to cargo publish for Cargo.lock changes
372
+ - fix(ci): skip publish gracefully when version already exists on crates.io/npm
373
+ - fix(ci): run update-docs even if publish jobs fail (already published)
374
+ - fix(ci): continue-on-error for publish jobs so update-docs always runs
375
+ - fix(ci): add pull-requests write permission to update-docs job
376
+ - fix(update): cargo-managed self-update + Windows deferred install + session update check (#27)
377
+ - fix(ci): update-docs creates PR instead of pushing directly to protected main
378
+ - fix(npm): copy README.md into npm package before publish; add readme field
379
+ - fix(ci): add toolchain: stable to all dtolnay/rust-toolchain steps
380
+ - fix(ci): handle no previous tags in generate-changelog.sh (pipefail + grep -v)
381
+ - fix(ci): dispatch release.yml from auto-release to bypass GITHUB_TOKEN chain limit [skip release]
382
+ - fix(ci): fix flaky test tmp dir collision + simplify auto-release
383
+ - fix(bench): exclude synthetic fixtures from filter-mode bench/run.sh
384
+ - fix(ci): remove secrets in step if-conditions — check token inside script instead
385
+ - fix(ci): rename promote-develop → promote-to-main to fix broken workflow registration
386
+ - fix(ci): bump github-script to v7 in promote-develop to force workflow re-registration
387
+ - fix(compress_md): use byte slice comparison to avoid UTF-8 char boundary panic
388
+ - fix(statusline): remove Ctx% — show only squeez compression metrics
389
+ - fix(statusline): green ✓, proper capitalization, real-time context %, all metrics
390
+ - resolve gap analysis — new handlers, wider redundancy window, token budget
391
+ - install.sh — clarify PostToolUse no-matcher intent, guard version echo
392
+ - wrap.rs — safe git hex check, O(n) dedup, full cmd in event log
393
+ - use ends_with for files_committed check in init finalize
394
+ - json_util — guard extract_u64 empty digit, add json_util test coverage
395
+ - add pre-flight binary check to bench/run.sh
396
+ - atomic settings.json write + uninstall safety guards
397
+ - harden pretooluse hook (shlex.quote, error handling, single path source)
398
+ - wrap — process_group(0) for correct signal forwarding, tighten is_streaming
399
+
12
400
  ## [1.11.1] - 2026-04-28
13
401
 
14
402
  ### Added
@@ -506,7 +894,7 @@ conventional commit messages on `main`.
506
894
  ## [1.5.1] and earlier
507
895
  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.
508
896
 
509
- [Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.11.1...HEAD
897
+ [Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.12.0...HEAD
510
898
  [1.7.0]: https://github.com/claudioemmanuel/squeez/compare/v1.6.1...v1.7.0
511
899
  [1.6.1]: https://github.com/claudioemmanuel/squeez/compare/v1.6.0...v1.6.1
512
900
  [1.6.0]: https://github.com/claudioemmanuel/squeez/compare/v1.5.2...v1.6.0
@@ -520,3 +908,5 @@ See the [git tag history](https://github.com/claudioemmanuel/squeez/tags) for pr
520
908
  [1.10.0]: https://github.com/claudioemmanuel/squeez/compare/v1.7.2...v1.10.0
521
909
  [1.11.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.11.0
522
910
  [1.11.1]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.11.1
911
+ [1.11.2]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.11.2
912
+ [1.12.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.12.0
package/README.md CHANGED
@@ -59,7 +59,7 @@ Builds from [crates.io](https://crates.io/crates/squeez). Requires Rust stable.
59
59
  | **Copilot CLI** | `~/.copilot/copilot-instructions.md` | ✅ native | ✅ native | ✅ native | Restart Copilot CLI after setup |
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
- | **Codex CLI** | `~/.codex/AGENTS.md` | ✅ native | ✅ native | 🟡 soft via `AGENTS.md` | Codex `PreToolUse` is Bash-only until upstream expands ([openai/codex#18491](https://github.com/openai/codex/issues/18491)) |
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
63
 
64
64
  ### Manage
65
65
 
@@ -132,7 +132,7 @@ squeez optimizes what it can reach — the surfaces exposed by each host's hook
132
132
 
133
133
  **User's top-level prompt.** squeez runs per tool call, not on user turns.
134
134
 
135
- **Tools whose host doesn't expose PreToolUse / BeforeTool.** E.g. Codex `PreToolUse` today only fires on Bash (tracked upstream at [openai/codex#18491](https://github.com/openai/codex/issues/18491)), so Read/Grep caps for Codex are soft hints in AGENTS.md, not hard injections.
135
+ **Tools whose host doesn't expose PreToolUse / BeforeTool.** E.g. Codex `apply_patch` hooks landed in 0.123.0, but `updatedInput` is explicitly unsupported and `read_file`/`grep` still have no hook surface ([openai/codex#18491](https://github.com/openai/codex/issues/18491)) so Read/Grep caps for Codex are soft hints in AGENTS.md, not hard injections.
136
136
 
137
137
  ### Secondary wins (not compression, but token-saving)
138
138
 
@@ -158,27 +158,27 @@ Measured on macOS (Apple Silicon). Token count = `chars / 4` (matches Claude's ~
158
158
 
159
159
  | Scenario | Before | After | Reduction | Latency |
160
160
  |----------|--------|-------|-----------|---------|
161
- | `summarize_huge` | 82,257 tk | 420 tk | **-99%** | 56.0 ms |
162
- | `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 205 µs |
163
- | `high_context_adaptive` | 4,418 tk | 52 tk | **-99%** | 797 µs |
164
- | `ps_aux` | 40,373 tk | 2,352 tk | **-94%** | 2.8 ms |
165
- | `git_log_200` | 2,692 tk | 289 tk | **-89%** | 208 µs |
166
- | `tsc_errors` | 731 tk | 101 tk | **-86%** | 31 µs |
167
- | `cargo_build_noisy` | 2,106 tk | 452 tk | **-79%** | 242 µs |
168
- | `docker_logs` | 665 tk | 186 tk | **-72%** | 47 µs |
169
- | `find_deep` | 424 tk | 134 tk | **-68%** | 87 µs |
170
- | `git_status` | 50 tk | 16 tk | **-68%** | 11 µs |
171
- | `verbose_app_log` | 4,957 tk | 1,991 tk | **-60%** | 291 µs |
172
- | `npm_install` | 524 tk | 232 tk | **-56%** | 47 µs |
173
- | `crosscall_redundancy_3x` | 486 tk | 241 tk | **-50%** | 51.9 ms |
174
- | `ls_la` | 1,782 tk | 886 tk | **-50%** | 212 µs |
175
- | `env_dump` | 441 tk | 287 tk | **-35%** | 23 µs |
176
- | `git_copilot` | 640 tk | 421 tk | **-34%** | 117 µs |
177
- | `agent_heavy` | 2,306 tk | 1,564 tk | **-32%** | 390 µs |
178
- | `md_prose` | 187 tk | 138 tk | **-26%** | 777 µs |
179
- | `md_claude_md` | 316 tk | 247 tk | **-22%** | 1.1 ms |
180
- | `claude_md_overhead` | 717 tk | 649 tk | **-9%** | 24 µs |
181
- | `git_diff` | 502 tk | 497 tk | **-1%** | 42 µs |
161
+ | `summarize_huge` | 82,257 tk | 420 tk | **-99%** | 55.9 ms |
162
+ | `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 212 µs |
163
+ | `high_context_adaptive` | 4,418 tk | 52 tk | **-99%** | 848 µs |
164
+ | `ps_aux` | 40,373 tk | 2,352 tk | **-94%** | 2.9 ms |
165
+ | `git_log_200` | 2,692 tk | 289 tk | **-89%** | 231 µs |
166
+ | `tsc_errors` | 731 tk | 101 tk | **-86%** | 48 µs |
167
+ | `cargo_build_noisy` | 2,106 tk | 452 tk | **-79%** | 432 µs |
168
+ | `docker_logs` | 665 tk | 186 tk | **-72%** | 45 µs |
169
+ | `find_deep` | 424 tk | 134 tk | **-68%** | 85 µs |
170
+ | `git_status` | 50 tk | 16 tk | **-68%** | 12 µs |
171
+ | `verbose_app_log` | 4,957 tk | 1,991 tk | **-60%** | 302 µs |
172
+ | `npm_install` | 524 tk | 232 tk | **-56%** | 48 µs |
173
+ | `crosscall_redundancy_3x` | 486 tk | 241 tk | **-50%** | 51.6 ms |
174
+ | `ls_la` | 1,782 tk | 886 tk | **-50%** | 325 µs |
175
+ | `env_dump` | 441 tk | 287 tk | **-35%** | 40 µs |
176
+ | `git_copilot` | 640 tk | 421 tk | **-34%** | 167 µs |
177
+ | `agent_heavy` | 2,306 tk | 1,564 tk | **-32%** | 410 µs |
178
+ | `md_prose` | 187 tk | 138 tk | **-26%** | 666 µs |
179
+ | `md_claude_md` | 316 tk | 247 tk | **-22%** | 1.2 ms |
180
+ | `claude_md_overhead` | 717 tk | 649 tk | **-9%** | 21 µs |
181
+ | `git_diff` | 502 tk | 497 tk | **-1%** | 44 µs |
182
182
  | `state_first_simulation` | 182 tk | 181 tk | **-1%** | 5 µs |
183
183
  | `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** | 27 µs |
184
184
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "squeez",
3
- "version": "1.11.2",
3
+ "version": "1.13.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",