squeez 1.22.1 → 1.23.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 +1040 -1
  2. package/README.md +27 -27
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -9,6 +9,1043 @@ conventional commit messages on `main`.
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [1.23.0] - 2026-06-11
13
+
14
+ ### Added
15
+ - feat(safety): workflow abuse prevention — all 8 gap items from transcript audit
16
+ - feat(context): real-context tracking, image/skill dedup, quota nudges, transcript integration
17
+ - feat(economy): enterprise-aware mode — Bedrock/Vertex/OTEL detection + USD savings (#135)
18
+ - feat(benchmark): add information-preservation guard against output-token inflation (#133)
19
+ - feat(cloud): TOON re-encoder for JSON-array outputs (gh, kubectl, aws, gcloud, az) (#134)
20
+ - feat(sig-mode): preserve attribute / decorator above kept signatures (#137)
21
+ - feat(economy): auto-curation nudges + cross-session handler stats (#118)
22
+ - feat(hosts): add Pi adapter (#116)
23
+ - feat(compress): plug Agent/Task output, HTML bash, and PreCompact telemetry gaps
24
+ - feat(bench): add pytest, jest, xcode_build scenarios — 23 → 26 scenarios
25
+ - feat(hooks): PreCompact + PostCompact lifecycle hooks (#102)
26
+ - feat(hooks): SubagentStop hook feeds sub-agent output into SessionContext (#101)
27
+ - feat(monitor): add Monitor tool to PostToolUse compress-output dispatch (#100)
28
+ - PostToolUse updatedToolOutput for Read/Grep/Glob (Claude Code v2.1.119+)
29
+ - session-analysis improvements — az JSON, vite noise, prisma generate, hook health check (#90)
30
+ - feat(fs): auto-compress cat'd markdown via compress_md pipeline (#88)
31
+ - feat(economy): compress Agent/Task prompt at PreToolUse time (#87)
32
+ - feat(handlers): xcodebuild noise filter + log-file tail detection (#84)
33
+ - feat(bench): efficiency-proof benchmark suite — quantitative savings for US-001/003/004 (#74)
34
+ - token-compression power-up — sig-mode, memory-file warn, structured summaries, hypothesis benchmark (#70)
35
+ - feat(setup): adapter-driven setup/uninstall across all hosts (#58)
36
+ - feat(hosts): Codex CLI adapter (hooks + AGENTS.md soft-budget) (#55)
37
+ - feat(hosts): Gemini CLI adapter (BeforeTool/AfterTool hooks) (#52)
38
+ - feat(hosts): full-parity OpenCode adapter + plugin rewrite (#48)
39
+ - wrangler, playwright, next build handlers + bun/drizzle routing (#34)
40
+ - feat(opus47): adapt squeez for Opus 4.7 tokenizer and xhigh effort
41
+ - feat(setup): auto-detect lang from CLAUDE.md/locale + stderr update notification (#29)
42
+ - v0.3.0 — token economy, pt-BR caveman, aggressive defaults, full hook install
43
+ - structured session memory, cross-session search, error snippets, configurable tunables
44
+ - feat(setup): create config.ini on first install
45
+ - feat(i18n): locale-aware compress-md with pt-BR support (#25)
46
+ - fuzzy dedup, adaptive intensity, benign summarize, MCP server, temporal memory, protocol payload
47
+ - Windows setup via cargo/npm + squeez update fix
48
+ - feat(benchmark): add squeez benchmark command with 19-scenario test suite
49
+ - feat(ci): re-add promote-develop workflow with correct registration
50
+ - feat(init): inject persona into ~/.claude/CLAUDE.md on every session start
51
+ - feat(npm+crates): add npm package and publish jobs to release workflow
52
+ - feat(statusline): add statusline.sh to repo; install via install.sh; show all-time stats
53
+ - compress-md, caveman persona, squeez update, track-result hook
54
+ - feat(context): adaptive intensity always picks Ultra
55
+ - feat(context): aggressive token-engine — adaptive intensity, redundancy cache, summarize fallback
56
+ - add Windows support to install.sh and release.yml
57
+ - add home_dir() helper with USERPROFILE fallback for Windows
58
+ - cross-platform wrap — shell_command() helper, cfg(unix) signal gates, libc unix-only
59
+ - add GitHub Copilot CLI support
60
+ - add OpenCode plugin for automatic Bash compression
61
+ - add universal installer support for macOS and Linux
62
+ - expand benchmarks, edge-case tests, and README polish
63
+ - add SessionStart + PostToolUse hooks, update install.sh and README
64
+ - wrap.rs — artifact capture (files/errors/git/tests) + compact warning header
65
+ - squeez init — session start, prior memory banner, session finalization (TDD)
66
+ - squeez track — token accumulation + session event log (TDD)
67
+ - memory.rs — Summary, read_last_n, write_summary, prune_old (TDD)
68
+ - session.rs — CurrentSession, append_event, date math (TDD)
69
+ - json_util helpers + compact_threshold_tokens, memory_retention_days config
70
+ - benchmark system — all fixtures passing
71
+ - build.sh compiles + installs squeez, registers hook
72
+ - PreToolUse hook script
73
+ - fs and runtime handlers — all handler tests passing
74
+ - cloud, database, network handlers (TDD)
75
+ - typescript and build handlers (TDD)
76
+ - package_mgr and test_runner handlers (TDD)
77
+ - git and docker handlers (TDD)
78
+ - wrap subcommand — sh -c, 120s timeout, signal forwarding, bypass check
79
+ - Handler trait with cmd+config, generic handler, command router, filter_stdin
80
+ - truncation strategy (TDD) — all strategy tests passing
81
+ - grouping strategy (TDD)
82
+ - dedup strategy (TDD)
83
+ - smart_filter strategy with node_modules frame removal (TDD)
84
+ - implement config.ini parser (TDD)
85
+
86
+ ### Changed
87
+ - chore(release): bump version to 1.23.0 [squeez-release-bot]
88
+ - docs: update changelog and benchmarks for v1.22.1
89
+ - docs: update changelog and benchmarks for v1.22.1
90
+ - docs: update changelog and benchmarks for v1.22.1
91
+ - chore(release): bump version to 1.22.1 [squeez-release-bot]
92
+ - docs: update changelog and benchmarks for v1.22.0
93
+ - chore(release): bump version to 1.22.0 [squeez-release-bot]
94
+ - docs: update changelog and benchmarks for v1.21.1
95
+ - chore(release): bump version to 1.21.1 [squeez-release-bot]
96
+ - refactor(skills): session-long re-injection dedup; drop lexical skill compression (#142)
97
+ - docs: update changelog and benchmarks for v1.21.0
98
+ - chore(release): bump version to 1.21.0 [squeez-release-bot]
99
+ - docs: update changelog and benchmarks for v1.20.0
100
+ - chore(release): bump version to 1.20.0 [squeez-release-bot]
101
+ - docs(readme): add "How squeez compares" table vs rtk / KRLabs squeez / sqz / LLMLingua-2 / TOON (#138)
102
+ - test(cache): lock in byte-stability of MCP and protocol payloads (#136)
103
+ - docs: update changelog and benchmarks for v1.19.4
104
+ - chore(release): bump version to 1.19.4 [squeez-release-bot]
105
+ - docs: update changelog and benchmarks for v1.19.3
106
+ - chore(release): bump version to 1.19.3 [squeez-release-bot]
107
+ - docs: update changelog and benchmarks for v1.19.2
108
+ - chore(release): bump version to 1.19.2 [squeez-release-bot]
109
+ - docs: update changelog and benchmarks for v1.19.1
110
+ - chore(release): bump version to 1.19.1 [squeez-release-bot]
111
+ - docs: update changelog and benchmarks for v1.19.0
112
+ - chore(release): bump version to 1.19.0 [squeez-release-bot]
113
+ - docs: update changelog and benchmarks for v1.18.1
114
+ - chore(release): bump version to 1.18.1 [squeez-release-bot]
115
+ - docs: update changelog and benchmarks for v1.18.0
116
+ - chore(release): bump version to 1.18.0 [squeez-release-bot]
117
+ - docs: document DCO Signed-off-by requirement in CLAUDE.md (#111)
118
+ - docs: update changelog and benchmarks for v1.17.0
119
+ - chore(release): bump version to 1.17.0 [squeez-release-bot]
120
+ - docs: update changelog and benchmarks for v1.16.0
121
+ - chore(release): bump version to 1.16.0 [squeez-release-bot]
122
+ - docs: update changelog and benchmarks for v1.15.1
123
+ - chore(release): bump version to 1.15.1 [squeez-release-bot]
124
+ - docs: update README and CLAUDE.md for new hooks and PostToolUse rewrite (#108)
125
+ - refactor(bench): unify benches/ into bench/ — single benchmark directory (#106)
126
+ - test: add missing coverage for compress-output, filter dispatch, SubagentStop, hook registration (#103)
127
+ - docs: update changelog and benchmarks for v1.15.0
128
+ - chore(release): bump version to 1.15.0 [squeez-release-bot]
129
+ - docs: update changelog and benchmarks for v1.13.0
130
+ - chore(release): bump version to 1.14.0 [squeez-release-bot]
131
+ - chore(release): bump version to 1.13.0 [squeez-release-bot]
132
+ - docs: update changelog and benchmarks for v1.12.0
133
+ - chore(release): bump version to 1.12.0 [squeez-release-bot]
134
+ - docs(codex): update adapter comments and README for 0.123.0 hook surface
135
+ - docs: update changelog and benchmarks for v1.11.2
136
+ - chore(release): bump version to 1.11.2 [squeez-release-bot]
137
+ - docs: update changelog and benchmarks for v1.11.1
138
+ - chore(release): bump version to 1.11.1 [squeez-release-bot]
139
+ - docs: update changelog and benchmarks for v1.11.0
140
+ - chore(release): bump version to 1.11.0 [squeez-release-bot]
141
+ - docs: update changelog and benchmarks for v1.10.0
142
+ - docs: update changelog and benchmarks for v1.9.0
143
+ - chore(release): bump version to 1.10.0 [squeez-release-bot]
144
+ - docs(readme): document squeez's compression scope and architectural limits (#85)
145
+ - chore(release): bump version to 1.9.0 [squeez-release-bot]
146
+ - chore(release): bump version to 1.8.0 [squeez-release-bot]
147
+ - docs: update changelog and benchmarks for v1.7.7
148
+ - chore(release): bump version to 1.7.7 [squeez-release-bot]
149
+ - docs: update changelog and benchmarks for v1.7.6
150
+ - chore(release): bump version to 1.7.6 [squeez-release-bot]
151
+ - docs: update changelog and benchmarks for v1.7.5
152
+ - chore(release): bump version to 1.7.5 [squeez-release-bot]
153
+ - docs: update changelog and benchmarks for v1.7.4
154
+ - chore(release): bump version to 1.7.4 [squeez-release-bot]
155
+ - perf: O(log n) refactor — tail read, offset index, single-pass parser
156
+ - docs: update changelog and benchmarks for v1.7.3
157
+ - chore(release): bump version to 1.7.3 [squeez-release-bot]
158
+ - chore(release): bump version to 1.7.2 [squeez-release-bot]
159
+ - restore: revert accidental deletion of auto-release.yml workflow
160
+ - docs: update changelog and benchmarks for v1.7.1
161
+ - chore(release): bump version to 1.7.1 [squeez-release-bot]
162
+ - chore: relicense to Apache 2.0 + add DCO policy + banner (#76)
163
+ - docs: update changelog and benchmarks for v1.7.0
164
+ - chore(release): bump version to 1.7.0 [squeez-release-bot]
165
+ - docs: update changelog and benchmarks for v1.6.1
166
+ - chore(release): bump version to 1.6.1 [squeez-release-bot]
167
+ - docs: update changelog and benchmarks for v1.6.0
168
+ - chore(release): bump version to 1.6.0 [squeez-release-bot]
169
+ - docs: update changelog and benchmarks for v1.5.2
170
+ - chore(release): bump version to 1.5.2 [squeez-release-bot]
171
+ - chore(release): bump version to 1.5.1 [squeez-release-bot]
172
+ - docs: five-host matrix + squeez setup/uninstall flow (#63)
173
+ - refactor(install): delegate host registration to 'squeez setup' (#60)
174
+ - chore(release): bump version to 1.5.0 [squeez-release-bot]
175
+ - chore(release): bump version to 1.4.0 [squeez-release-bot]
176
+ - chore(release): bump version to 1.3.0 [squeez-release-bot]
177
+ - chore(release): bump version to 1.2.0 [squeez-release-bot]
178
+ - chore(release): bump version to 1.1.0 [squeez-release-bot]
179
+ - chore(release): bump version to 1.0.0 [skip release]
180
+ - refactor(hosts): extract HostAdapter trait + migrate Claude Code and Copilot (#42)
181
+ - ci: conventional-commit-driven auto-release (#40)
182
+ - chore(gov): issue-form templates + refined PR template (#39)
183
+ - docs: update changelog and benchmarks for v0.4.1 [skip release] (#33)
184
+ - chore(release): bump version to 0.4.1
185
+ - chore(release): bump version to 0.4.0
186
+ - docs: update changelog and benchmarks for v0.3.2 [skip release] (#30)
187
+ - chore: bump version to 0.3.2
188
+ - docs: add shields.io badge for changelog link
189
+ - chore: bump version to 0.3.1
190
+ - chore: bump version to 0.2.3
191
+ - docs: update README with 11 MCP tools, structured memory, and advanced tunables
192
+ - chore: bump version to 0.2.2
193
+ - docs: rewrite README with full install instructions (curl/npm/cargo) and all commands
194
+ - chore: refresh bench/report.md from latest run [skip release]
195
+ - chore(ci): remove promote-develop workflow (re-adding to fix broken registration)
196
+ - chore: bump version to 0.2.1 + auto-release on merge to main [skip release]
197
+ - chore: bump version to 0.2.0; add Cargo.toml metadata
198
+ - ci: PR template, linked-issue enforcement, no-claude-trailer check
199
+ - docs: update README with PR1+PR2 features, fresh benchmarks, changelog
200
+ - ci: auto-delete branches after PR merge
201
+ - docs: update Windows installation instructions and prerequisites in README
202
+ - docs: add Windows support and Rust install instructions to README
203
+ - refactor: use session::home_dir() in config and init (Windows compat)
204
+ - ci: trigger promote workflow (test)
205
+ - ci(workflow): avoid failing promote job when PR creation is not permitted; add PR_CREATION_TOKEN guidance
206
+ - docs(readme): add changelog, contribution workflow, and benchmark notes
207
+ - ci(workflow): create/update PR from develop to main on push
208
+ - chore: add .worktrees/ to gitignore
209
+ - chore: add docs/ to gitignore (local design specs)
210
+ - docs: update README for GitHub Copilot CLI support
211
+ - security: fix remaining LOW findings in wrap.rs
212
+ - security: fix 2 follow-up findings from second audit
213
+ - security: fix all 8 findings from security audit
214
+ - ci: build and install binary before running benchmarks
215
+ - chore: add GitHub sponsor button
216
+ - chore: ignore .omc/ directory, remove from tracking
217
+ - chore: update benchmark report (7/7 passing)
218
+ - docs: update README — real benchmarks, Phase 2 config, how it works
219
+ - style: cargo fmt on session.rs and test_session.rs
220
+ - chore: open source files — README, LICENSE, CI/release workflows, install.sh
221
+ - chore: scaffold squeez Rust project
222
+
223
+ ### Fixed
224
+ - fix(release): make publish-npm non-blocking; add npm whoami diagnostic
225
+ - fix(codex): emit current PreToolUse/SessionStart hook shapes; silence PostToolUse (#143)
226
+ - fix(claude-code): stop writing statusline.sh + remove orphans on install (#126)
227
+ - fix(claude-code): stop registering squeez statusLine + delegate install to adapter (#124)
228
+ - fix(compress-output): close PostToolUse compression gaps for Read/Edit/Write (#121)
229
+ - fix(claude-code): write hooks under settings.hooks.<event>, not at top level (#119)
230
+ - fix(opencode): shell-quote bash command before prepending `squeez wrap` (#115)
231
+ - fix(statusline): show compression % and fix Python heredoc expansion bug
232
+ - plan-mode passthrough + release description body (#95)
233
+ - fix(session-start): health check missed top-level event keys (#92)
234
+ - fix(hosts): expand PreToolUse matcher to cover Read, Grep, Glob, Agent, Task (#86)
235
+ - fix(json_util,statusline): whitespace-tolerant JSON parser + UTF-8 statusline on Windows (#81)
236
+ - fix(hosts): preserve user settings.json when existing JSON fails to parse (#83)
237
+ - prevent OOM from unbounded file reads + data integrity fixes
238
+ - fix(ci): use native ubuntu-24.04-arm runner for aarch64 build
239
+ - eliminate memory leaks causing 16 GB RAM on MCP server startup (#79)
240
+ - fix(hooks): add hookEventName to PreToolUse hookSpecificOutput (#78)
241
+ - fix(opencode): align plugin with PluginModule SDK shape (default export + server map) (#72)
242
+ - fix(ci): push release docs directly to main (loop-safe) (#68)
243
+ - back Copilot BUDGET_HARD with Read/Grep hook + update upstream refs (#65)
244
+ - fix(ci): startsWith guard for auto-release recursion (#46)
245
+ - fix(ci): tighten auto-release bump detection + fix tag push (#44)
246
+ - fix(ci): add --allow-dirty to cargo publish for Cargo.lock changes
247
+ - fix(ci): skip publish gracefully when version already exists on crates.io/npm
248
+ - fix(ci): run update-docs even if publish jobs fail (already published)
249
+ - fix(ci): continue-on-error for publish jobs so update-docs always runs
250
+ - fix(ci): add pull-requests write permission to update-docs job
251
+ - fix(update): cargo-managed self-update + Windows deferred install + session update check (#27)
252
+ - fix(ci): update-docs creates PR instead of pushing directly to protected main
253
+ - fix(npm): copy README.md into npm package before publish; add readme field
254
+ - fix(ci): add toolchain: stable to all dtolnay/rust-toolchain steps
255
+ - fix(ci): handle no previous tags in generate-changelog.sh (pipefail + grep -v)
256
+ - fix(ci): dispatch release.yml from auto-release to bypass GITHUB_TOKEN chain limit [skip release]
257
+ - fix(ci): fix flaky test tmp dir collision + simplify auto-release
258
+ - fix(bench): exclude synthetic fixtures from filter-mode bench/run.sh
259
+ - fix(ci): remove secrets in step if-conditions — check token inside script instead
260
+ - fix(ci): rename promote-develop → promote-to-main to fix broken workflow registration
261
+ - fix(ci): bump github-script to v7 in promote-develop to force workflow re-registration
262
+ - fix(compress_md): use byte slice comparison to avoid UTF-8 char boundary panic
263
+ - fix(statusline): remove Ctx% — show only squeez compression metrics
264
+ - fix(statusline): green ✓, proper capitalization, real-time context %, all metrics
265
+ - resolve gap analysis — new handlers, wider redundancy window, token budget
266
+ - install.sh — clarify PostToolUse no-matcher intent, guard version echo
267
+ - wrap.rs — safe git hex check, O(n) dedup, full cmd in event log
268
+ - use ends_with for files_committed check in init finalize
269
+ - json_util — guard extract_u64 empty digit, add json_util test coverage
270
+ - add pre-flight binary check to bench/run.sh
271
+ - atomic settings.json write + uninstall safety guards
272
+ - harden pretooluse hook (shlex.quote, error handling, single path source)
273
+ - wrap — process_group(0) for correct signal forwarding, tighten is_streaming
274
+
275
+ ## [1.22.1] - 2026-06-10
276
+
277
+ ### Added
278
+ - feat(context): real-context tracking, image/skill dedup, quota nudges, transcript integration
279
+ - feat(economy): enterprise-aware mode — Bedrock/Vertex/OTEL detection + USD savings (#135)
280
+ - feat(benchmark): add information-preservation guard against output-token inflation (#133)
281
+ - feat(cloud): TOON re-encoder for JSON-array outputs (gh, kubectl, aws, gcloud, az) (#134)
282
+ - feat(sig-mode): preserve attribute / decorator above kept signatures (#137)
283
+ - feat(economy): auto-curation nudges + cross-session handler stats (#118)
284
+ - feat(hosts): add Pi adapter (#116)
285
+ - feat(compress): plug Agent/Task output, HTML bash, and PreCompact telemetry gaps
286
+ - feat(bench): add pytest, jest, xcode_build scenarios — 23 → 26 scenarios
287
+ - feat(hooks): PreCompact + PostCompact lifecycle hooks (#102)
288
+ - feat(hooks): SubagentStop hook feeds sub-agent output into SessionContext (#101)
289
+ - feat(monitor): add Monitor tool to PostToolUse compress-output dispatch (#100)
290
+ - PostToolUse updatedToolOutput for Read/Grep/Glob (Claude Code v2.1.119+)
291
+ - session-analysis improvements — az JSON, vite noise, prisma generate, hook health check (#90)
292
+ - feat(fs): auto-compress cat'd markdown via compress_md pipeline (#88)
293
+ - feat(economy): compress Agent/Task prompt at PreToolUse time (#87)
294
+ - feat(handlers): xcodebuild noise filter + log-file tail detection (#84)
295
+ - feat(bench): efficiency-proof benchmark suite — quantitative savings for US-001/003/004 (#74)
296
+ - token-compression power-up — sig-mode, memory-file warn, structured summaries, hypothesis benchmark (#70)
297
+ - feat(setup): adapter-driven setup/uninstall across all hosts (#58)
298
+ - feat(hosts): Codex CLI adapter (hooks + AGENTS.md soft-budget) (#55)
299
+ - feat(hosts): Gemini CLI adapter (BeforeTool/AfterTool hooks) (#52)
300
+ - feat(hosts): full-parity OpenCode adapter + plugin rewrite (#48)
301
+ - wrangler, playwright, next build handlers + bun/drizzle routing (#34)
302
+ - feat(opus47): adapt squeez for Opus 4.7 tokenizer and xhigh effort
303
+ - feat(setup): auto-detect lang from CLAUDE.md/locale + stderr update notification (#29)
304
+ - v0.3.0 — token economy, pt-BR caveman, aggressive defaults, full hook install
305
+ - structured session memory, cross-session search, error snippets, configurable tunables
306
+ - feat(setup): create config.ini on first install
307
+ - feat(i18n): locale-aware compress-md with pt-BR support (#25)
308
+ - fuzzy dedup, adaptive intensity, benign summarize, MCP server, temporal memory, protocol payload
309
+ - Windows setup via cargo/npm + squeez update fix
310
+ - feat(benchmark): add squeez benchmark command with 19-scenario test suite
311
+ - feat(ci): re-add promote-develop workflow with correct registration
312
+ - feat(init): inject persona into ~/.claude/CLAUDE.md on every session start
313
+ - feat(npm+crates): add npm package and publish jobs to release workflow
314
+ - feat(statusline): add statusline.sh to repo; install via install.sh; show all-time stats
315
+ - compress-md, caveman persona, squeez update, track-result hook
316
+ - feat(context): adaptive intensity always picks Ultra
317
+ - feat(context): aggressive token-engine — adaptive intensity, redundancy cache, summarize fallback
318
+ - add Windows support to install.sh and release.yml
319
+ - add home_dir() helper with USERPROFILE fallback for Windows
320
+ - cross-platform wrap — shell_command() helper, cfg(unix) signal gates, libc unix-only
321
+ - add GitHub Copilot CLI support
322
+ - add OpenCode plugin for automatic Bash compression
323
+ - add universal installer support for macOS and Linux
324
+ - expand benchmarks, edge-case tests, and README polish
325
+ - add SessionStart + PostToolUse hooks, update install.sh and README
326
+ - wrap.rs — artifact capture (files/errors/git/tests) + compact warning header
327
+ - squeez init — session start, prior memory banner, session finalization (TDD)
328
+ - squeez track — token accumulation + session event log (TDD)
329
+ - memory.rs — Summary, read_last_n, write_summary, prune_old (TDD)
330
+ - session.rs — CurrentSession, append_event, date math (TDD)
331
+ - json_util helpers + compact_threshold_tokens, memory_retention_days config
332
+ - benchmark system — all fixtures passing
333
+ - build.sh compiles + installs squeez, registers hook
334
+ - PreToolUse hook script
335
+ - fs and runtime handlers — all handler tests passing
336
+ - cloud, database, network handlers (TDD)
337
+ - typescript and build handlers (TDD)
338
+ - package_mgr and test_runner handlers (TDD)
339
+ - git and docker handlers (TDD)
340
+ - wrap subcommand — sh -c, 120s timeout, signal forwarding, bypass check
341
+ - Handler trait with cmd+config, generic handler, command router, filter_stdin
342
+ - truncation strategy (TDD) — all strategy tests passing
343
+ - grouping strategy (TDD)
344
+ - dedup strategy (TDD)
345
+ - smart_filter strategy with node_modules frame removal (TDD)
346
+ - implement config.ini parser (TDD)
347
+
348
+ ### Changed
349
+ - chore(release): bump version to 1.22.1 [squeez-release-bot]
350
+ - docs: update changelog and benchmarks for v1.22.0
351
+ - chore(release): bump version to 1.22.0 [squeez-release-bot]
352
+ - docs: update changelog and benchmarks for v1.21.1
353
+ - chore(release): bump version to 1.21.1 [squeez-release-bot]
354
+ - refactor(skills): session-long re-injection dedup; drop lexical skill compression (#142)
355
+ - docs: update changelog and benchmarks for v1.21.0
356
+ - chore(release): bump version to 1.21.0 [squeez-release-bot]
357
+ - docs: update changelog and benchmarks for v1.20.0
358
+ - chore(release): bump version to 1.20.0 [squeez-release-bot]
359
+ - docs(readme): add "How squeez compares" table vs rtk / KRLabs squeez / sqz / LLMLingua-2 / TOON (#138)
360
+ - test(cache): lock in byte-stability of MCP and protocol payloads (#136)
361
+ - docs: update changelog and benchmarks for v1.19.4
362
+ - chore(release): bump version to 1.19.4 [squeez-release-bot]
363
+ - docs: update changelog and benchmarks for v1.19.3
364
+ - chore(release): bump version to 1.19.3 [squeez-release-bot]
365
+ - docs: update changelog and benchmarks for v1.19.2
366
+ - chore(release): bump version to 1.19.2 [squeez-release-bot]
367
+ - docs: update changelog and benchmarks for v1.19.1
368
+ - chore(release): bump version to 1.19.1 [squeez-release-bot]
369
+ - docs: update changelog and benchmarks for v1.19.0
370
+ - chore(release): bump version to 1.19.0 [squeez-release-bot]
371
+ - docs: update changelog and benchmarks for v1.18.1
372
+ - chore(release): bump version to 1.18.1 [squeez-release-bot]
373
+ - docs: update changelog and benchmarks for v1.18.0
374
+ - chore(release): bump version to 1.18.0 [squeez-release-bot]
375
+ - docs: document DCO Signed-off-by requirement in CLAUDE.md (#111)
376
+ - docs: update changelog and benchmarks for v1.17.0
377
+ - chore(release): bump version to 1.17.0 [squeez-release-bot]
378
+ - docs: update changelog and benchmarks for v1.16.0
379
+ - chore(release): bump version to 1.16.0 [squeez-release-bot]
380
+ - docs: update changelog and benchmarks for v1.15.1
381
+ - chore(release): bump version to 1.15.1 [squeez-release-bot]
382
+ - docs: update README and CLAUDE.md for new hooks and PostToolUse rewrite (#108)
383
+ - refactor(bench): unify benches/ into bench/ — single benchmark directory (#106)
384
+ - test: add missing coverage for compress-output, filter dispatch, SubagentStop, hook registration (#103)
385
+ - docs: update changelog and benchmarks for v1.15.0
386
+ - chore(release): bump version to 1.15.0 [squeez-release-bot]
387
+ - docs: update changelog and benchmarks for v1.13.0
388
+ - chore(release): bump version to 1.14.0 [squeez-release-bot]
389
+ - chore(release): bump version to 1.13.0 [squeez-release-bot]
390
+ - docs: update changelog and benchmarks for v1.12.0
391
+ - chore(release): bump version to 1.12.0 [squeez-release-bot]
392
+ - docs(codex): update adapter comments and README for 0.123.0 hook surface
393
+ - docs: update changelog and benchmarks for v1.11.2
394
+ - chore(release): bump version to 1.11.2 [squeez-release-bot]
395
+ - docs: update changelog and benchmarks for v1.11.1
396
+ - chore(release): bump version to 1.11.1 [squeez-release-bot]
397
+ - docs: update changelog and benchmarks for v1.11.0
398
+ - chore(release): bump version to 1.11.0 [squeez-release-bot]
399
+ - docs: update changelog and benchmarks for v1.10.0
400
+ - docs: update changelog and benchmarks for v1.9.0
401
+ - chore(release): bump version to 1.10.0 [squeez-release-bot]
402
+ - docs(readme): document squeez's compression scope and architectural limits (#85)
403
+ - chore(release): bump version to 1.9.0 [squeez-release-bot]
404
+ - chore(release): bump version to 1.8.0 [squeez-release-bot]
405
+ - docs: update changelog and benchmarks for v1.7.7
406
+ - chore(release): bump version to 1.7.7 [squeez-release-bot]
407
+ - docs: update changelog and benchmarks for v1.7.6
408
+ - chore(release): bump version to 1.7.6 [squeez-release-bot]
409
+ - docs: update changelog and benchmarks for v1.7.5
410
+ - chore(release): bump version to 1.7.5 [squeez-release-bot]
411
+ - docs: update changelog and benchmarks for v1.7.4
412
+ - chore(release): bump version to 1.7.4 [squeez-release-bot]
413
+ - perf: O(log n) refactor — tail read, offset index, single-pass parser
414
+ - docs: update changelog and benchmarks for v1.7.3
415
+ - chore(release): bump version to 1.7.3 [squeez-release-bot]
416
+ - chore(release): bump version to 1.7.2 [squeez-release-bot]
417
+ - restore: revert accidental deletion of auto-release.yml workflow
418
+ - docs: update changelog and benchmarks for v1.7.1
419
+ - chore(release): bump version to 1.7.1 [squeez-release-bot]
420
+ - chore: relicense to Apache 2.0 + add DCO policy + banner (#76)
421
+ - docs: update changelog and benchmarks for v1.7.0
422
+ - chore(release): bump version to 1.7.0 [squeez-release-bot]
423
+ - docs: update changelog and benchmarks for v1.6.1
424
+ - chore(release): bump version to 1.6.1 [squeez-release-bot]
425
+ - docs: update changelog and benchmarks for v1.6.0
426
+ - chore(release): bump version to 1.6.0 [squeez-release-bot]
427
+ - docs: update changelog and benchmarks for v1.5.2
428
+ - chore(release): bump version to 1.5.2 [squeez-release-bot]
429
+ - chore(release): bump version to 1.5.1 [squeez-release-bot]
430
+ - docs: five-host matrix + squeez setup/uninstall flow (#63)
431
+ - refactor(install): delegate host registration to 'squeez setup' (#60)
432
+ - chore(release): bump version to 1.5.0 [squeez-release-bot]
433
+ - chore(release): bump version to 1.4.0 [squeez-release-bot]
434
+ - chore(release): bump version to 1.3.0 [squeez-release-bot]
435
+ - chore(release): bump version to 1.2.0 [squeez-release-bot]
436
+ - chore(release): bump version to 1.1.0 [squeez-release-bot]
437
+ - chore(release): bump version to 1.0.0 [skip release]
438
+ - refactor(hosts): extract HostAdapter trait + migrate Claude Code and Copilot (#42)
439
+ - ci: conventional-commit-driven auto-release (#40)
440
+ - chore(gov): issue-form templates + refined PR template (#39)
441
+ - docs: update changelog and benchmarks for v0.4.1 [skip release] (#33)
442
+ - chore(release): bump version to 0.4.1
443
+ - chore(release): bump version to 0.4.0
444
+ - docs: update changelog and benchmarks for v0.3.2 [skip release] (#30)
445
+ - chore: bump version to 0.3.2
446
+ - docs: add shields.io badge for changelog link
447
+ - chore: bump version to 0.3.1
448
+ - chore: bump version to 0.2.3
449
+ - docs: update README with 11 MCP tools, structured memory, and advanced tunables
450
+ - chore: bump version to 0.2.2
451
+ - docs: rewrite README with full install instructions (curl/npm/cargo) and all commands
452
+ - chore: refresh bench/report.md from latest run [skip release]
453
+ - chore(ci): remove promote-develop workflow (re-adding to fix broken registration)
454
+ - chore: bump version to 0.2.1 + auto-release on merge to main [skip release]
455
+ - chore: bump version to 0.2.0; add Cargo.toml metadata
456
+ - ci: PR template, linked-issue enforcement, no-claude-trailer check
457
+ - docs: update README with PR1+PR2 features, fresh benchmarks, changelog
458
+ - ci: auto-delete branches after PR merge
459
+ - docs: update Windows installation instructions and prerequisites in README
460
+ - docs: add Windows support and Rust install instructions to README
461
+ - refactor: use session::home_dir() in config and init (Windows compat)
462
+ - ci: trigger promote workflow (test)
463
+ - ci(workflow): avoid failing promote job when PR creation is not permitted; add PR_CREATION_TOKEN guidance
464
+ - docs(readme): add changelog, contribution workflow, and benchmark notes
465
+ - ci(workflow): create/update PR from develop to main on push
466
+ - chore: add .worktrees/ to gitignore
467
+ - chore: add docs/ to gitignore (local design specs)
468
+ - docs: update README for GitHub Copilot CLI support
469
+ - security: fix remaining LOW findings in wrap.rs
470
+ - security: fix 2 follow-up findings from second audit
471
+ - security: fix all 8 findings from security audit
472
+ - ci: build and install binary before running benchmarks
473
+ - chore: add GitHub sponsor button
474
+ - chore: ignore .omc/ directory, remove from tracking
475
+ - chore: update benchmark report (7/7 passing)
476
+ - docs: update README — real benchmarks, Phase 2 config, how it works
477
+ - style: cargo fmt on session.rs and test_session.rs
478
+ - chore: open source files — README, LICENSE, CI/release workflows, install.sh
479
+ - chore: scaffold squeez Rust project
480
+
481
+ ### Fixed
482
+ - fix(release): make publish-npm non-blocking; add npm whoami diagnostic
483
+ - fix(codex): emit current PreToolUse/SessionStart hook shapes; silence PostToolUse (#143)
484
+ - fix(claude-code): stop writing statusline.sh + remove orphans on install (#126)
485
+ - fix(claude-code): stop registering squeez statusLine + delegate install to adapter (#124)
486
+ - fix(compress-output): close PostToolUse compression gaps for Read/Edit/Write (#121)
487
+ - fix(claude-code): write hooks under settings.hooks.<event>, not at top level (#119)
488
+ - fix(opencode): shell-quote bash command before prepending `squeez wrap` (#115)
489
+ - fix(statusline): show compression % and fix Python heredoc expansion bug
490
+ - plan-mode passthrough + release description body (#95)
491
+ - fix(session-start): health check missed top-level event keys (#92)
492
+ - fix(hosts): expand PreToolUse matcher to cover Read, Grep, Glob, Agent, Task (#86)
493
+ - fix(json_util,statusline): whitespace-tolerant JSON parser + UTF-8 statusline on Windows (#81)
494
+ - fix(hosts): preserve user settings.json when existing JSON fails to parse (#83)
495
+ - prevent OOM from unbounded file reads + data integrity fixes
496
+ - fix(ci): use native ubuntu-24.04-arm runner for aarch64 build
497
+ - eliminate memory leaks causing 16 GB RAM on MCP server startup (#79)
498
+ - fix(hooks): add hookEventName to PreToolUse hookSpecificOutput (#78)
499
+ - fix(opencode): align plugin with PluginModule SDK shape (default export + server map) (#72)
500
+ - fix(ci): push release docs directly to main (loop-safe) (#68)
501
+ - back Copilot BUDGET_HARD with Read/Grep hook + update upstream refs (#65)
502
+ - fix(ci): startsWith guard for auto-release recursion (#46)
503
+ - fix(ci): tighten auto-release bump detection + fix tag push (#44)
504
+ - fix(ci): add --allow-dirty to cargo publish for Cargo.lock changes
505
+ - fix(ci): skip publish gracefully when version already exists on crates.io/npm
506
+ - fix(ci): run update-docs even if publish jobs fail (already published)
507
+ - fix(ci): continue-on-error for publish jobs so update-docs always runs
508
+ - fix(ci): add pull-requests write permission to update-docs job
509
+ - fix(update): cargo-managed self-update + Windows deferred install + session update check (#27)
510
+ - fix(ci): update-docs creates PR instead of pushing directly to protected main
511
+ - fix(npm): copy README.md into npm package before publish; add readme field
512
+ - fix(ci): add toolchain: stable to all dtolnay/rust-toolchain steps
513
+ - fix(ci): handle no previous tags in generate-changelog.sh (pipefail + grep -v)
514
+ - fix(ci): dispatch release.yml from auto-release to bypass GITHUB_TOKEN chain limit [skip release]
515
+ - fix(ci): fix flaky test tmp dir collision + simplify auto-release
516
+ - fix(bench): exclude synthetic fixtures from filter-mode bench/run.sh
517
+ - fix(ci): remove secrets in step if-conditions — check token inside script instead
518
+ - fix(ci): rename promote-develop → promote-to-main to fix broken workflow registration
519
+ - fix(ci): bump github-script to v7 in promote-develop to force workflow re-registration
520
+ - fix(compress_md): use byte slice comparison to avoid UTF-8 char boundary panic
521
+ - fix(statusline): remove Ctx% — show only squeez compression metrics
522
+ - fix(statusline): green ✓, proper capitalization, real-time context %, all metrics
523
+ - resolve gap analysis — new handlers, wider redundancy window, token budget
524
+ - install.sh — clarify PostToolUse no-matcher intent, guard version echo
525
+ - wrap.rs — safe git hex check, O(n) dedup, full cmd in event log
526
+ - use ends_with for files_committed check in init finalize
527
+ - json_util — guard extract_u64 empty digit, add json_util test coverage
528
+ - add pre-flight binary check to bench/run.sh
529
+ - atomic settings.json write + uninstall safety guards
530
+ - harden pretooluse hook (shlex.quote, error handling, single path source)
531
+ - wrap — process_group(0) for correct signal forwarding, tighten is_streaming
532
+
533
+ ## [1.22.1] - 2026-06-10
534
+
535
+ ### Added
536
+ - feat(context): real-context tracking, image/skill dedup, quota nudges, transcript integration
537
+ - feat(economy): enterprise-aware mode — Bedrock/Vertex/OTEL detection + USD savings (#135)
538
+ - feat(benchmark): add information-preservation guard against output-token inflation (#133)
539
+ - feat(cloud): TOON re-encoder for JSON-array outputs (gh, kubectl, aws, gcloud, az) (#134)
540
+ - feat(sig-mode): preserve attribute / decorator above kept signatures (#137)
541
+ - feat(economy): auto-curation nudges + cross-session handler stats (#118)
542
+ - feat(hosts): add Pi adapter (#116)
543
+ - feat(compress): plug Agent/Task output, HTML bash, and PreCompact telemetry gaps
544
+ - feat(bench): add pytest, jest, xcode_build scenarios — 23 → 26 scenarios
545
+ - feat(hooks): PreCompact + PostCompact lifecycle hooks (#102)
546
+ - feat(hooks): SubagentStop hook feeds sub-agent output into SessionContext (#101)
547
+ - feat(monitor): add Monitor tool to PostToolUse compress-output dispatch (#100)
548
+ - PostToolUse updatedToolOutput for Read/Grep/Glob (Claude Code v2.1.119+)
549
+ - session-analysis improvements — az JSON, vite noise, prisma generate, hook health check (#90)
550
+ - feat(fs): auto-compress cat'd markdown via compress_md pipeline (#88)
551
+ - feat(economy): compress Agent/Task prompt at PreToolUse time (#87)
552
+ - feat(handlers): xcodebuild noise filter + log-file tail detection (#84)
553
+ - feat(bench): efficiency-proof benchmark suite — quantitative savings for US-001/003/004 (#74)
554
+ - token-compression power-up — sig-mode, memory-file warn, structured summaries, hypothesis benchmark (#70)
555
+ - feat(setup): adapter-driven setup/uninstall across all hosts (#58)
556
+ - feat(hosts): Codex CLI adapter (hooks + AGENTS.md soft-budget) (#55)
557
+ - feat(hosts): Gemini CLI adapter (BeforeTool/AfterTool hooks) (#52)
558
+ - feat(hosts): full-parity OpenCode adapter + plugin rewrite (#48)
559
+ - wrangler, playwright, next build handlers + bun/drizzle routing (#34)
560
+ - feat(opus47): adapt squeez for Opus 4.7 tokenizer and xhigh effort
561
+ - feat(setup): auto-detect lang from CLAUDE.md/locale + stderr update notification (#29)
562
+ - v0.3.0 — token economy, pt-BR caveman, aggressive defaults, full hook install
563
+ - structured session memory, cross-session search, error snippets, configurable tunables
564
+ - feat(setup): create config.ini on first install
565
+ - feat(i18n): locale-aware compress-md with pt-BR support (#25)
566
+ - fuzzy dedup, adaptive intensity, benign summarize, MCP server, temporal memory, protocol payload
567
+ - Windows setup via cargo/npm + squeez update fix
568
+ - feat(benchmark): add squeez benchmark command with 19-scenario test suite
569
+ - feat(ci): re-add promote-develop workflow with correct registration
570
+ - feat(init): inject persona into ~/.claude/CLAUDE.md on every session start
571
+ - feat(npm+crates): add npm package and publish jobs to release workflow
572
+ - feat(statusline): add statusline.sh to repo; install via install.sh; show all-time stats
573
+ - compress-md, caveman persona, squeez update, track-result hook
574
+ - feat(context): adaptive intensity always picks Ultra
575
+ - feat(context): aggressive token-engine — adaptive intensity, redundancy cache, summarize fallback
576
+ - add Windows support to install.sh and release.yml
577
+ - add home_dir() helper with USERPROFILE fallback for Windows
578
+ - cross-platform wrap — shell_command() helper, cfg(unix) signal gates, libc unix-only
579
+ - add GitHub Copilot CLI support
580
+ - add OpenCode plugin for automatic Bash compression
581
+ - add universal installer support for macOS and Linux
582
+ - expand benchmarks, edge-case tests, and README polish
583
+ - add SessionStart + PostToolUse hooks, update install.sh and README
584
+ - wrap.rs — artifact capture (files/errors/git/tests) + compact warning header
585
+ - squeez init — session start, prior memory banner, session finalization (TDD)
586
+ - squeez track — token accumulation + session event log (TDD)
587
+ - memory.rs — Summary, read_last_n, write_summary, prune_old (TDD)
588
+ - session.rs — CurrentSession, append_event, date math (TDD)
589
+ - json_util helpers + compact_threshold_tokens, memory_retention_days config
590
+ - benchmark system — all fixtures passing
591
+ - build.sh compiles + installs squeez, registers hook
592
+ - PreToolUse hook script
593
+ - fs and runtime handlers — all handler tests passing
594
+ - cloud, database, network handlers (TDD)
595
+ - typescript and build handlers (TDD)
596
+ - package_mgr and test_runner handlers (TDD)
597
+ - git and docker handlers (TDD)
598
+ - wrap subcommand — sh -c, 120s timeout, signal forwarding, bypass check
599
+ - Handler trait with cmd+config, generic handler, command router, filter_stdin
600
+ - truncation strategy (TDD) — all strategy tests passing
601
+ - grouping strategy (TDD)
602
+ - dedup strategy (TDD)
603
+ - smart_filter strategy with node_modules frame removal (TDD)
604
+ - implement config.ini parser (TDD)
605
+
606
+ ### Changed
607
+ - chore(release): bump version to 1.22.1 [squeez-release-bot]
608
+ - docs: update changelog and benchmarks for v1.22.0
609
+ - chore(release): bump version to 1.22.0 [squeez-release-bot]
610
+ - docs: update changelog and benchmarks for v1.21.1
611
+ - chore(release): bump version to 1.21.1 [squeez-release-bot]
612
+ - refactor(skills): session-long re-injection dedup; drop lexical skill compression (#142)
613
+ - docs: update changelog and benchmarks for v1.21.0
614
+ - chore(release): bump version to 1.21.0 [squeez-release-bot]
615
+ - docs: update changelog and benchmarks for v1.20.0
616
+ - chore(release): bump version to 1.20.0 [squeez-release-bot]
617
+ - docs(readme): add "How squeez compares" table vs rtk / KRLabs squeez / sqz / LLMLingua-2 / TOON (#138)
618
+ - test(cache): lock in byte-stability of MCP and protocol payloads (#136)
619
+ - docs: update changelog and benchmarks for v1.19.4
620
+ - chore(release): bump version to 1.19.4 [squeez-release-bot]
621
+ - docs: update changelog and benchmarks for v1.19.3
622
+ - chore(release): bump version to 1.19.3 [squeez-release-bot]
623
+ - docs: update changelog and benchmarks for v1.19.2
624
+ - chore(release): bump version to 1.19.2 [squeez-release-bot]
625
+ - docs: update changelog and benchmarks for v1.19.1
626
+ - chore(release): bump version to 1.19.1 [squeez-release-bot]
627
+ - docs: update changelog and benchmarks for v1.19.0
628
+ - chore(release): bump version to 1.19.0 [squeez-release-bot]
629
+ - docs: update changelog and benchmarks for v1.18.1
630
+ - chore(release): bump version to 1.18.1 [squeez-release-bot]
631
+ - docs: update changelog and benchmarks for v1.18.0
632
+ - chore(release): bump version to 1.18.0 [squeez-release-bot]
633
+ - docs: document DCO Signed-off-by requirement in CLAUDE.md (#111)
634
+ - docs: update changelog and benchmarks for v1.17.0
635
+ - chore(release): bump version to 1.17.0 [squeez-release-bot]
636
+ - docs: update changelog and benchmarks for v1.16.0
637
+ - chore(release): bump version to 1.16.0 [squeez-release-bot]
638
+ - docs: update changelog and benchmarks for v1.15.1
639
+ - chore(release): bump version to 1.15.1 [squeez-release-bot]
640
+ - docs: update README and CLAUDE.md for new hooks and PostToolUse rewrite (#108)
641
+ - refactor(bench): unify benches/ into bench/ — single benchmark directory (#106)
642
+ - test: add missing coverage for compress-output, filter dispatch, SubagentStop, hook registration (#103)
643
+ - docs: update changelog and benchmarks for v1.15.0
644
+ - chore(release): bump version to 1.15.0 [squeez-release-bot]
645
+ - docs: update changelog and benchmarks for v1.13.0
646
+ - chore(release): bump version to 1.14.0 [squeez-release-bot]
647
+ - chore(release): bump version to 1.13.0 [squeez-release-bot]
648
+ - docs: update changelog and benchmarks for v1.12.0
649
+ - chore(release): bump version to 1.12.0 [squeez-release-bot]
650
+ - docs(codex): update adapter comments and README for 0.123.0 hook surface
651
+ - docs: update changelog and benchmarks for v1.11.2
652
+ - chore(release): bump version to 1.11.2 [squeez-release-bot]
653
+ - docs: update changelog and benchmarks for v1.11.1
654
+ - chore(release): bump version to 1.11.1 [squeez-release-bot]
655
+ - docs: update changelog and benchmarks for v1.11.0
656
+ - chore(release): bump version to 1.11.0 [squeez-release-bot]
657
+ - docs: update changelog and benchmarks for v1.10.0
658
+ - docs: update changelog and benchmarks for v1.9.0
659
+ - chore(release): bump version to 1.10.0 [squeez-release-bot]
660
+ - docs(readme): document squeez's compression scope and architectural limits (#85)
661
+ - chore(release): bump version to 1.9.0 [squeez-release-bot]
662
+ - chore(release): bump version to 1.8.0 [squeez-release-bot]
663
+ - docs: update changelog and benchmarks for v1.7.7
664
+ - chore(release): bump version to 1.7.7 [squeez-release-bot]
665
+ - docs: update changelog and benchmarks for v1.7.6
666
+ - chore(release): bump version to 1.7.6 [squeez-release-bot]
667
+ - docs: update changelog and benchmarks for v1.7.5
668
+ - chore(release): bump version to 1.7.5 [squeez-release-bot]
669
+ - docs: update changelog and benchmarks for v1.7.4
670
+ - chore(release): bump version to 1.7.4 [squeez-release-bot]
671
+ - perf: O(log n) refactor — tail read, offset index, single-pass parser
672
+ - docs: update changelog and benchmarks for v1.7.3
673
+ - chore(release): bump version to 1.7.3 [squeez-release-bot]
674
+ - chore(release): bump version to 1.7.2 [squeez-release-bot]
675
+ - restore: revert accidental deletion of auto-release.yml workflow
676
+ - docs: update changelog and benchmarks for v1.7.1
677
+ - chore(release): bump version to 1.7.1 [squeez-release-bot]
678
+ - chore: relicense to Apache 2.0 + add DCO policy + banner (#76)
679
+ - docs: update changelog and benchmarks for v1.7.0
680
+ - chore(release): bump version to 1.7.0 [squeez-release-bot]
681
+ - docs: update changelog and benchmarks for v1.6.1
682
+ - chore(release): bump version to 1.6.1 [squeez-release-bot]
683
+ - docs: update changelog and benchmarks for v1.6.0
684
+ - chore(release): bump version to 1.6.0 [squeez-release-bot]
685
+ - docs: update changelog and benchmarks for v1.5.2
686
+ - chore(release): bump version to 1.5.2 [squeez-release-bot]
687
+ - chore(release): bump version to 1.5.1 [squeez-release-bot]
688
+ - docs: five-host matrix + squeez setup/uninstall flow (#63)
689
+ - refactor(install): delegate host registration to 'squeez setup' (#60)
690
+ - chore(release): bump version to 1.5.0 [squeez-release-bot]
691
+ - chore(release): bump version to 1.4.0 [squeez-release-bot]
692
+ - chore(release): bump version to 1.3.0 [squeez-release-bot]
693
+ - chore(release): bump version to 1.2.0 [squeez-release-bot]
694
+ - chore(release): bump version to 1.1.0 [squeez-release-bot]
695
+ - chore(release): bump version to 1.0.0 [skip release]
696
+ - refactor(hosts): extract HostAdapter trait + migrate Claude Code and Copilot (#42)
697
+ - ci: conventional-commit-driven auto-release (#40)
698
+ - chore(gov): issue-form templates + refined PR template (#39)
699
+ - docs: update changelog and benchmarks for v0.4.1 [skip release] (#33)
700
+ - chore(release): bump version to 0.4.1
701
+ - chore(release): bump version to 0.4.0
702
+ - docs: update changelog and benchmarks for v0.3.2 [skip release] (#30)
703
+ - chore: bump version to 0.3.2
704
+ - docs: add shields.io badge for changelog link
705
+ - chore: bump version to 0.3.1
706
+ - chore: bump version to 0.2.3
707
+ - docs: update README with 11 MCP tools, structured memory, and advanced tunables
708
+ - chore: bump version to 0.2.2
709
+ - docs: rewrite README with full install instructions (curl/npm/cargo) and all commands
710
+ - chore: refresh bench/report.md from latest run [skip release]
711
+ - chore(ci): remove promote-develop workflow (re-adding to fix broken registration)
712
+ - chore: bump version to 0.2.1 + auto-release on merge to main [skip release]
713
+ - chore: bump version to 0.2.0; add Cargo.toml metadata
714
+ - ci: PR template, linked-issue enforcement, no-claude-trailer check
715
+ - docs: update README with PR1+PR2 features, fresh benchmarks, changelog
716
+ - ci: auto-delete branches after PR merge
717
+ - docs: update Windows installation instructions and prerequisites in README
718
+ - docs: add Windows support and Rust install instructions to README
719
+ - refactor: use session::home_dir() in config and init (Windows compat)
720
+ - ci: trigger promote workflow (test)
721
+ - ci(workflow): avoid failing promote job when PR creation is not permitted; add PR_CREATION_TOKEN guidance
722
+ - docs(readme): add changelog, contribution workflow, and benchmark notes
723
+ - ci(workflow): create/update PR from develop to main on push
724
+ - chore: add .worktrees/ to gitignore
725
+ - chore: add docs/ to gitignore (local design specs)
726
+ - docs: update README for GitHub Copilot CLI support
727
+ - security: fix remaining LOW findings in wrap.rs
728
+ - security: fix 2 follow-up findings from second audit
729
+ - security: fix all 8 findings from security audit
730
+ - ci: build and install binary before running benchmarks
731
+ - chore: add GitHub sponsor button
732
+ - chore: ignore .omc/ directory, remove from tracking
733
+ - chore: update benchmark report (7/7 passing)
734
+ - docs: update README — real benchmarks, Phase 2 config, how it works
735
+ - style: cargo fmt on session.rs and test_session.rs
736
+ - chore: open source files — README, LICENSE, CI/release workflows, install.sh
737
+ - chore: scaffold squeez Rust project
738
+
739
+ ### Fixed
740
+ - fix(release): make publish-npm non-blocking; add npm whoami diagnostic
741
+ - fix(codex): emit current PreToolUse/SessionStart hook shapes; silence PostToolUse (#143)
742
+ - fix(claude-code): stop writing statusline.sh + remove orphans on install (#126)
743
+ - fix(claude-code): stop registering squeez statusLine + delegate install to adapter (#124)
744
+ - fix(compress-output): close PostToolUse compression gaps for Read/Edit/Write (#121)
745
+ - fix(claude-code): write hooks under settings.hooks.<event>, not at top level (#119)
746
+ - fix(opencode): shell-quote bash command before prepending `squeez wrap` (#115)
747
+ - fix(statusline): show compression % and fix Python heredoc expansion bug
748
+ - plan-mode passthrough + release description body (#95)
749
+ - fix(session-start): health check missed top-level event keys (#92)
750
+ - fix(hosts): expand PreToolUse matcher to cover Read, Grep, Glob, Agent, Task (#86)
751
+ - fix(json_util,statusline): whitespace-tolerant JSON parser + UTF-8 statusline on Windows (#81)
752
+ - fix(hosts): preserve user settings.json when existing JSON fails to parse (#83)
753
+ - prevent OOM from unbounded file reads + data integrity fixes
754
+ - fix(ci): use native ubuntu-24.04-arm runner for aarch64 build
755
+ - eliminate memory leaks causing 16 GB RAM on MCP server startup (#79)
756
+ - fix(hooks): add hookEventName to PreToolUse hookSpecificOutput (#78)
757
+ - fix(opencode): align plugin with PluginModule SDK shape (default export + server map) (#72)
758
+ - fix(ci): push release docs directly to main (loop-safe) (#68)
759
+ - back Copilot BUDGET_HARD with Read/Grep hook + update upstream refs (#65)
760
+ - fix(ci): startsWith guard for auto-release recursion (#46)
761
+ - fix(ci): tighten auto-release bump detection + fix tag push (#44)
762
+ - fix(ci): add --allow-dirty to cargo publish for Cargo.lock changes
763
+ - fix(ci): skip publish gracefully when version already exists on crates.io/npm
764
+ - fix(ci): run update-docs even if publish jobs fail (already published)
765
+ - fix(ci): continue-on-error for publish jobs so update-docs always runs
766
+ - fix(ci): add pull-requests write permission to update-docs job
767
+ - fix(update): cargo-managed self-update + Windows deferred install + session update check (#27)
768
+ - fix(ci): update-docs creates PR instead of pushing directly to protected main
769
+ - fix(npm): copy README.md into npm package before publish; add readme field
770
+ - fix(ci): add toolchain: stable to all dtolnay/rust-toolchain steps
771
+ - fix(ci): handle no previous tags in generate-changelog.sh (pipefail + grep -v)
772
+ - fix(ci): dispatch release.yml from auto-release to bypass GITHUB_TOKEN chain limit [skip release]
773
+ - fix(ci): fix flaky test tmp dir collision + simplify auto-release
774
+ - fix(bench): exclude synthetic fixtures from filter-mode bench/run.sh
775
+ - fix(ci): remove secrets in step if-conditions — check token inside script instead
776
+ - fix(ci): rename promote-develop → promote-to-main to fix broken workflow registration
777
+ - fix(ci): bump github-script to v7 in promote-develop to force workflow re-registration
778
+ - fix(compress_md): use byte slice comparison to avoid UTF-8 char boundary panic
779
+ - fix(statusline): remove Ctx% — show only squeez compression metrics
780
+ - fix(statusline): green ✓, proper capitalization, real-time context %, all metrics
781
+ - resolve gap analysis — new handlers, wider redundancy window, token budget
782
+ - install.sh — clarify PostToolUse no-matcher intent, guard version echo
783
+ - wrap.rs — safe git hex check, O(n) dedup, full cmd in event log
784
+ - use ends_with for files_committed check in init finalize
785
+ - json_util — guard extract_u64 empty digit, add json_util test coverage
786
+ - add pre-flight binary check to bench/run.sh
787
+ - atomic settings.json write + uninstall safety guards
788
+ - harden pretooluse hook (shlex.quote, error handling, single path source)
789
+ - wrap — process_group(0) for correct signal forwarding, tighten is_streaming
790
+
791
+ ## [1.22.1] - 2026-06-10
792
+
793
+ ### Added
794
+ - feat(context): real-context tracking, image/skill dedup, quota nudges, transcript integration
795
+ - feat(economy): enterprise-aware mode — Bedrock/Vertex/OTEL detection + USD savings (#135)
796
+ - feat(benchmark): add information-preservation guard against output-token inflation (#133)
797
+ - feat(cloud): TOON re-encoder for JSON-array outputs (gh, kubectl, aws, gcloud, az) (#134)
798
+ - feat(sig-mode): preserve attribute / decorator above kept signatures (#137)
799
+ - feat(economy): auto-curation nudges + cross-session handler stats (#118)
800
+ - feat(hosts): add Pi adapter (#116)
801
+ - feat(compress): plug Agent/Task output, HTML bash, and PreCompact telemetry gaps
802
+ - feat(bench): add pytest, jest, xcode_build scenarios — 23 → 26 scenarios
803
+ - feat(hooks): PreCompact + PostCompact lifecycle hooks (#102)
804
+ - feat(hooks): SubagentStop hook feeds sub-agent output into SessionContext (#101)
805
+ - feat(monitor): add Monitor tool to PostToolUse compress-output dispatch (#100)
806
+ - PostToolUse updatedToolOutput for Read/Grep/Glob (Claude Code v2.1.119+)
807
+ - session-analysis improvements — az JSON, vite noise, prisma generate, hook health check (#90)
808
+ - feat(fs): auto-compress cat'd markdown via compress_md pipeline (#88)
809
+ - feat(economy): compress Agent/Task prompt at PreToolUse time (#87)
810
+ - feat(handlers): xcodebuild noise filter + log-file tail detection (#84)
811
+ - feat(bench): efficiency-proof benchmark suite — quantitative savings for US-001/003/004 (#74)
812
+ - token-compression power-up — sig-mode, memory-file warn, structured summaries, hypothesis benchmark (#70)
813
+ - feat(setup): adapter-driven setup/uninstall across all hosts (#58)
814
+ - feat(hosts): Codex CLI adapter (hooks + AGENTS.md soft-budget) (#55)
815
+ - feat(hosts): Gemini CLI adapter (BeforeTool/AfterTool hooks) (#52)
816
+ - feat(hosts): full-parity OpenCode adapter + plugin rewrite (#48)
817
+ - wrangler, playwright, next build handlers + bun/drizzle routing (#34)
818
+ - feat(opus47): adapt squeez for Opus 4.7 tokenizer and xhigh effort
819
+ - feat(setup): auto-detect lang from CLAUDE.md/locale + stderr update notification (#29)
820
+ - v0.3.0 — token economy, pt-BR caveman, aggressive defaults, full hook install
821
+ - structured session memory, cross-session search, error snippets, configurable tunables
822
+ - feat(setup): create config.ini on first install
823
+ - feat(i18n): locale-aware compress-md with pt-BR support (#25)
824
+ - fuzzy dedup, adaptive intensity, benign summarize, MCP server, temporal memory, protocol payload
825
+ - Windows setup via cargo/npm + squeez update fix
826
+ - feat(benchmark): add squeez benchmark command with 19-scenario test suite
827
+ - feat(ci): re-add promote-develop workflow with correct registration
828
+ - feat(init): inject persona into ~/.claude/CLAUDE.md on every session start
829
+ - feat(npm+crates): add npm package and publish jobs to release workflow
830
+ - feat(statusline): add statusline.sh to repo; install via install.sh; show all-time stats
831
+ - compress-md, caveman persona, squeez update, track-result hook
832
+ - feat(context): adaptive intensity always picks Ultra
833
+ - feat(context): aggressive token-engine — adaptive intensity, redundancy cache, summarize fallback
834
+ - add Windows support to install.sh and release.yml
835
+ - add home_dir() helper with USERPROFILE fallback for Windows
836
+ - cross-platform wrap — shell_command() helper, cfg(unix) signal gates, libc unix-only
837
+ - add GitHub Copilot CLI support
838
+ - add OpenCode plugin for automatic Bash compression
839
+ - add universal installer support for macOS and Linux
840
+ - expand benchmarks, edge-case tests, and README polish
841
+ - add SessionStart + PostToolUse hooks, update install.sh and README
842
+ - wrap.rs — artifact capture (files/errors/git/tests) + compact warning header
843
+ - squeez init — session start, prior memory banner, session finalization (TDD)
844
+ - squeez track — token accumulation + session event log (TDD)
845
+ - memory.rs — Summary, read_last_n, write_summary, prune_old (TDD)
846
+ - session.rs — CurrentSession, append_event, date math (TDD)
847
+ - json_util helpers + compact_threshold_tokens, memory_retention_days config
848
+ - benchmark system — all fixtures passing
849
+ - build.sh compiles + installs squeez, registers hook
850
+ - PreToolUse hook script
851
+ - fs and runtime handlers — all handler tests passing
852
+ - cloud, database, network handlers (TDD)
853
+ - typescript and build handlers (TDD)
854
+ - package_mgr and test_runner handlers (TDD)
855
+ - git and docker handlers (TDD)
856
+ - wrap subcommand — sh -c, 120s timeout, signal forwarding, bypass check
857
+ - Handler trait with cmd+config, generic handler, command router, filter_stdin
858
+ - truncation strategy (TDD) — all strategy tests passing
859
+ - grouping strategy (TDD)
860
+ - dedup strategy (TDD)
861
+ - smart_filter strategy with node_modules frame removal (TDD)
862
+ - implement config.ini parser (TDD)
863
+
864
+ ### Changed
865
+ - chore(release): bump version to 1.22.1 [squeez-release-bot]
866
+ - docs: update changelog and benchmarks for v1.22.0
867
+ - chore(release): bump version to 1.22.0 [squeez-release-bot]
868
+ - docs: update changelog and benchmarks for v1.21.1
869
+ - chore(release): bump version to 1.21.1 [squeez-release-bot]
870
+ - refactor(skills): session-long re-injection dedup; drop lexical skill compression (#142)
871
+ - docs: update changelog and benchmarks for v1.21.0
872
+ - chore(release): bump version to 1.21.0 [squeez-release-bot]
873
+ - docs: update changelog and benchmarks for v1.20.0
874
+ - chore(release): bump version to 1.20.0 [squeez-release-bot]
875
+ - docs(readme): add "How squeez compares" table vs rtk / KRLabs squeez / sqz / LLMLingua-2 / TOON (#138)
876
+ - test(cache): lock in byte-stability of MCP and protocol payloads (#136)
877
+ - docs: update changelog and benchmarks for v1.19.4
878
+ - chore(release): bump version to 1.19.4 [squeez-release-bot]
879
+ - docs: update changelog and benchmarks for v1.19.3
880
+ - chore(release): bump version to 1.19.3 [squeez-release-bot]
881
+ - docs: update changelog and benchmarks for v1.19.2
882
+ - chore(release): bump version to 1.19.2 [squeez-release-bot]
883
+ - docs: update changelog and benchmarks for v1.19.1
884
+ - chore(release): bump version to 1.19.1 [squeez-release-bot]
885
+ - docs: update changelog and benchmarks for v1.19.0
886
+ - chore(release): bump version to 1.19.0 [squeez-release-bot]
887
+ - docs: update changelog and benchmarks for v1.18.1
888
+ - chore(release): bump version to 1.18.1 [squeez-release-bot]
889
+ - docs: update changelog and benchmarks for v1.18.0
890
+ - chore(release): bump version to 1.18.0 [squeez-release-bot]
891
+ - docs: document DCO Signed-off-by requirement in CLAUDE.md (#111)
892
+ - docs: update changelog and benchmarks for v1.17.0
893
+ - chore(release): bump version to 1.17.0 [squeez-release-bot]
894
+ - docs: update changelog and benchmarks for v1.16.0
895
+ - chore(release): bump version to 1.16.0 [squeez-release-bot]
896
+ - docs: update changelog and benchmarks for v1.15.1
897
+ - chore(release): bump version to 1.15.1 [squeez-release-bot]
898
+ - docs: update README and CLAUDE.md for new hooks and PostToolUse rewrite (#108)
899
+ - refactor(bench): unify benches/ into bench/ — single benchmark directory (#106)
900
+ - test: add missing coverage for compress-output, filter dispatch, SubagentStop, hook registration (#103)
901
+ - docs: update changelog and benchmarks for v1.15.0
902
+ - chore(release): bump version to 1.15.0 [squeez-release-bot]
903
+ - docs: update changelog and benchmarks for v1.13.0
904
+ - chore(release): bump version to 1.14.0 [squeez-release-bot]
905
+ - chore(release): bump version to 1.13.0 [squeez-release-bot]
906
+ - docs: update changelog and benchmarks for v1.12.0
907
+ - chore(release): bump version to 1.12.0 [squeez-release-bot]
908
+ - docs(codex): update adapter comments and README for 0.123.0 hook surface
909
+ - docs: update changelog and benchmarks for v1.11.2
910
+ - chore(release): bump version to 1.11.2 [squeez-release-bot]
911
+ - docs: update changelog and benchmarks for v1.11.1
912
+ - chore(release): bump version to 1.11.1 [squeez-release-bot]
913
+ - docs: update changelog and benchmarks for v1.11.0
914
+ - chore(release): bump version to 1.11.0 [squeez-release-bot]
915
+ - docs: update changelog and benchmarks for v1.10.0
916
+ - docs: update changelog and benchmarks for v1.9.0
917
+ - chore(release): bump version to 1.10.0 [squeez-release-bot]
918
+ - docs(readme): document squeez's compression scope and architectural limits (#85)
919
+ - chore(release): bump version to 1.9.0 [squeez-release-bot]
920
+ - chore(release): bump version to 1.8.0 [squeez-release-bot]
921
+ - docs: update changelog and benchmarks for v1.7.7
922
+ - chore(release): bump version to 1.7.7 [squeez-release-bot]
923
+ - docs: update changelog and benchmarks for v1.7.6
924
+ - chore(release): bump version to 1.7.6 [squeez-release-bot]
925
+ - docs: update changelog and benchmarks for v1.7.5
926
+ - chore(release): bump version to 1.7.5 [squeez-release-bot]
927
+ - docs: update changelog and benchmarks for v1.7.4
928
+ - chore(release): bump version to 1.7.4 [squeez-release-bot]
929
+ - perf: O(log n) refactor — tail read, offset index, single-pass parser
930
+ - docs: update changelog and benchmarks for v1.7.3
931
+ - chore(release): bump version to 1.7.3 [squeez-release-bot]
932
+ - chore(release): bump version to 1.7.2 [squeez-release-bot]
933
+ - restore: revert accidental deletion of auto-release.yml workflow
934
+ - docs: update changelog and benchmarks for v1.7.1
935
+ - chore(release): bump version to 1.7.1 [squeez-release-bot]
936
+ - chore: relicense to Apache 2.0 + add DCO policy + banner (#76)
937
+ - docs: update changelog and benchmarks for v1.7.0
938
+ - chore(release): bump version to 1.7.0 [squeez-release-bot]
939
+ - docs: update changelog and benchmarks for v1.6.1
940
+ - chore(release): bump version to 1.6.1 [squeez-release-bot]
941
+ - docs: update changelog and benchmarks for v1.6.0
942
+ - chore(release): bump version to 1.6.0 [squeez-release-bot]
943
+ - docs: update changelog and benchmarks for v1.5.2
944
+ - chore(release): bump version to 1.5.2 [squeez-release-bot]
945
+ - chore(release): bump version to 1.5.1 [squeez-release-bot]
946
+ - docs: five-host matrix + squeez setup/uninstall flow (#63)
947
+ - refactor(install): delegate host registration to 'squeez setup' (#60)
948
+ - chore(release): bump version to 1.5.0 [squeez-release-bot]
949
+ - chore(release): bump version to 1.4.0 [squeez-release-bot]
950
+ - chore(release): bump version to 1.3.0 [squeez-release-bot]
951
+ - chore(release): bump version to 1.2.0 [squeez-release-bot]
952
+ - chore(release): bump version to 1.1.0 [squeez-release-bot]
953
+ - chore(release): bump version to 1.0.0 [skip release]
954
+ - refactor(hosts): extract HostAdapter trait + migrate Claude Code and Copilot (#42)
955
+ - ci: conventional-commit-driven auto-release (#40)
956
+ - chore(gov): issue-form templates + refined PR template (#39)
957
+ - docs: update changelog and benchmarks for v0.4.1 [skip release] (#33)
958
+ - chore(release): bump version to 0.4.1
959
+ - chore(release): bump version to 0.4.0
960
+ - docs: update changelog and benchmarks for v0.3.2 [skip release] (#30)
961
+ - chore: bump version to 0.3.2
962
+ - docs: add shields.io badge for changelog link
963
+ - chore: bump version to 0.3.1
964
+ - chore: bump version to 0.2.3
965
+ - docs: update README with 11 MCP tools, structured memory, and advanced tunables
966
+ - chore: bump version to 0.2.2
967
+ - docs: rewrite README with full install instructions (curl/npm/cargo) and all commands
968
+ - chore: refresh bench/report.md from latest run [skip release]
969
+ - chore(ci): remove promote-develop workflow (re-adding to fix broken registration)
970
+ - chore: bump version to 0.2.1 + auto-release on merge to main [skip release]
971
+ - chore: bump version to 0.2.0; add Cargo.toml metadata
972
+ - ci: PR template, linked-issue enforcement, no-claude-trailer check
973
+ - docs: update README with PR1+PR2 features, fresh benchmarks, changelog
974
+ - ci: auto-delete branches after PR merge
975
+ - docs: update Windows installation instructions and prerequisites in README
976
+ - docs: add Windows support and Rust install instructions to README
977
+ - refactor: use session::home_dir() in config and init (Windows compat)
978
+ - ci: trigger promote workflow (test)
979
+ - ci(workflow): avoid failing promote job when PR creation is not permitted; add PR_CREATION_TOKEN guidance
980
+ - docs(readme): add changelog, contribution workflow, and benchmark notes
981
+ - ci(workflow): create/update PR from develop to main on push
982
+ - chore: add .worktrees/ to gitignore
983
+ - chore: add docs/ to gitignore (local design specs)
984
+ - docs: update README for GitHub Copilot CLI support
985
+ - security: fix remaining LOW findings in wrap.rs
986
+ - security: fix 2 follow-up findings from second audit
987
+ - security: fix all 8 findings from security audit
988
+ - ci: build and install binary before running benchmarks
989
+ - chore: add GitHub sponsor button
990
+ - chore: ignore .omc/ directory, remove from tracking
991
+ - chore: update benchmark report (7/7 passing)
992
+ - docs: update README — real benchmarks, Phase 2 config, how it works
993
+ - style: cargo fmt on session.rs and test_session.rs
994
+ - chore: open source files — README, LICENSE, CI/release workflows, install.sh
995
+ - chore: scaffold squeez Rust project
996
+
997
+ ### Fixed
998
+ - fix(release): make publish-npm non-blocking; add npm whoami diagnostic
999
+ - fix(codex): emit current PreToolUse/SessionStart hook shapes; silence PostToolUse (#143)
1000
+ - fix(claude-code): stop writing statusline.sh + remove orphans on install (#126)
1001
+ - fix(claude-code): stop registering squeez statusLine + delegate install to adapter (#124)
1002
+ - fix(compress-output): close PostToolUse compression gaps for Read/Edit/Write (#121)
1003
+ - fix(claude-code): write hooks under settings.hooks.<event>, not at top level (#119)
1004
+ - fix(opencode): shell-quote bash command before prepending `squeez wrap` (#115)
1005
+ - fix(statusline): show compression % and fix Python heredoc expansion bug
1006
+ - plan-mode passthrough + release description body (#95)
1007
+ - fix(session-start): health check missed top-level event keys (#92)
1008
+ - fix(hosts): expand PreToolUse matcher to cover Read, Grep, Glob, Agent, Task (#86)
1009
+ - fix(json_util,statusline): whitespace-tolerant JSON parser + UTF-8 statusline on Windows (#81)
1010
+ - fix(hosts): preserve user settings.json when existing JSON fails to parse (#83)
1011
+ - prevent OOM from unbounded file reads + data integrity fixes
1012
+ - fix(ci): use native ubuntu-24.04-arm runner for aarch64 build
1013
+ - eliminate memory leaks causing 16 GB RAM on MCP server startup (#79)
1014
+ - fix(hooks): add hookEventName to PreToolUse hookSpecificOutput (#78)
1015
+ - fix(opencode): align plugin with PluginModule SDK shape (default export + server map) (#72)
1016
+ - fix(ci): push release docs directly to main (loop-safe) (#68)
1017
+ - back Copilot BUDGET_HARD with Read/Grep hook + update upstream refs (#65)
1018
+ - fix(ci): startsWith guard for auto-release recursion (#46)
1019
+ - fix(ci): tighten auto-release bump detection + fix tag push (#44)
1020
+ - fix(ci): add --allow-dirty to cargo publish for Cargo.lock changes
1021
+ - fix(ci): skip publish gracefully when version already exists on crates.io/npm
1022
+ - fix(ci): run update-docs even if publish jobs fail (already published)
1023
+ - fix(ci): continue-on-error for publish jobs so update-docs always runs
1024
+ - fix(ci): add pull-requests write permission to update-docs job
1025
+ - fix(update): cargo-managed self-update + Windows deferred install + session update check (#27)
1026
+ - fix(ci): update-docs creates PR instead of pushing directly to protected main
1027
+ - fix(npm): copy README.md into npm package before publish; add readme field
1028
+ - fix(ci): add toolchain: stable to all dtolnay/rust-toolchain steps
1029
+ - fix(ci): handle no previous tags in generate-changelog.sh (pipefail + grep -v)
1030
+ - fix(ci): dispatch release.yml from auto-release to bypass GITHUB_TOKEN chain limit [skip release]
1031
+ - fix(ci): fix flaky test tmp dir collision + simplify auto-release
1032
+ - fix(bench): exclude synthetic fixtures from filter-mode bench/run.sh
1033
+ - fix(ci): remove secrets in step if-conditions — check token inside script instead
1034
+ - fix(ci): rename promote-develop → promote-to-main to fix broken workflow registration
1035
+ - fix(ci): bump github-script to v7 in promote-develop to force workflow re-registration
1036
+ - fix(compress_md): use byte slice comparison to avoid UTF-8 char boundary panic
1037
+ - fix(statusline): remove Ctx% — show only squeez compression metrics
1038
+ - fix(statusline): green ✓, proper capitalization, real-time context %, all metrics
1039
+ - resolve gap analysis — new handlers, wider redundancy window, token budget
1040
+ - install.sh — clarify PostToolUse no-matcher intent, guard version echo
1041
+ - wrap.rs — safe git hex check, O(n) dedup, full cmd in event log
1042
+ - use ends_with for files_committed check in init finalize
1043
+ - json_util — guard extract_u64 empty digit, add json_util test coverage
1044
+ - add pre-flight binary check to bench/run.sh
1045
+ - atomic settings.json write + uninstall safety guards
1046
+ - harden pretooluse hook (shlex.quote, error handling, single path source)
1047
+ - wrap — process_group(0) for correct signal forwarding, tighten is_streaming
1048
+
12
1049
  ## [1.22.0] - 2026-06-10
13
1050
 
14
1051
  ### Added
@@ -4342,7 +5379,7 @@ conventional commit messages on `main`.
4342
5379
  ## [1.5.1] and earlier
4343
5380
  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.
4344
5381
 
4345
- [Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.22.0...HEAD
5382
+ [Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.23.0...HEAD
4346
5383
  [1.7.0]: https://github.com/claudioemmanuel/squeez/compare/v1.6.1...v1.7.0
4347
5384
  [1.6.1]: https://github.com/claudioemmanuel/squeez/compare/v1.6.0...v1.6.1
4348
5385
  [1.6.0]: https://github.com/claudioemmanuel/squeez/compare/v1.5.2...v1.6.0
@@ -4374,3 +5411,5 @@ See the [git tag history](https://github.com/claudioemmanuel/squeez/tags) for pr
4374
5411
  [1.21.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.21.0
4375
5412
  [1.21.1]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.21.1
4376
5413
  [1.22.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.22.0
5414
+ [1.22.1]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.22.1
5415
+ [1.23.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.23.0
package/README.md CHANGED
@@ -180,34 +180,34 @@ Measured on macOS (Apple Silicon). Token count = `chars / 4` (matches Claude's ~
180
180
 
181
181
  | Scenario | Before | After | Reduction | Latency |
182
182
  |----------|--------|-------|-----------|---------|
183
- | `summarize_huge` | 82,257 tk | 420 tk | **-99%** | 56.4 ms |
184
- | `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 208 µs |
185
- | `xcode_build` | 1,881 tk | 17 tk | **-99%** | 53 µs |
186
- | `high_context_adaptive` | 4,418 tk | 52 tk | **-99%** | 833 µs |
187
- | `agent_directory_output` | 3,348 tk | 167 tk | **-95%** | 303 µs |
188
- | `ps_aux` | 40,373 tk | 2,338 tk | **-94%** | 2.1 ms |
189
- | `git_log_200` | 2,692 tk | 275 tk | **-90%** | 160 µs |
183
+ | `summarize_huge` | 82,257 tk | 420 tk | **-99%** | 57.2 ms |
184
+ | `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 221 µs |
185
+ | `xcode_build` | 1,881 tk | 17 tk | **-99%** | 63 µs |
186
+ | `high_context_adaptive` | 4,418 tk | 52 tk | **-99%** | 908 µs |
187
+ | `agent_directory_output` | 3,348 tk | 167 tk | **-95%** | 347 µs |
188
+ | `ps_aux` | 40,373 tk | 2,338 tk | **-94%** | 2.8 ms |
189
+ | `git_log_200` | 2,692 tk | 275 tk | **-90%** | 211 µs |
190
190
  | `tsc_errors` | 731 tk | 101 tk | **-86%** | 25 µs |
191
- | `cargo_build_noisy` | 2,106 tk | 439 tk | **-79%** | 223 µs |
192
- | `docker_logs` | 665 tk | 186 tk | **-72%** | 40 µs |
193
- | `curl_html_response` | 2,181 tk | 626 tk | **-71%** | 39 µs |
194
- | `find_deep` | 424 tk | 134 tk | **-68%** | 71 µs |
195
- | `git_status` | 50 tk | 16 tk | **-68%** | 12 µs |
196
- | `pytest_failures` | 3,402 tk | 1,175 tk | **-65%** | 271 µs |
197
- | `verbose_app_log` | 4,957 tk | 1,978 tk | **-60%** | 253 µs |
198
- | `npm_install` | 524 tk | 218 tk | **-58%** | 39 µs |
199
- | `crosscall_redundancy_3x` | 486 tk | 237 tk | **-51%** | 51.5 ms |
200
- | `ls_la` | 1,782 tk | 872 tk | **-51%** | 181 µs |
201
- | `env_dump` | 441 tk | 287 tk | **-35%** | 22 µs |
202
- | `git_copilot` | 640 tk | 421 tk | **-34%** | 98 µs |
203
- | `agent_heavy` | 2,306 tk | 1,551 tk | **-33%** | 303 µs |
204
- | `md_prose` | 187 tk | 138 tk | **-26%** | 691 µs |
205
- | `md_claude_md` | 316 tk | 247 tk | **-22%** | 869 µs |
191
+ | `cargo_build_noisy` | 2,106 tk | 439 tk | **-79%** | 255 µs |
192
+ | `docker_logs` | 665 tk | 186 tk | **-72%** | 52 µs |
193
+ | `curl_html_response` | 2,181 tk | 626 tk | **-71%** | 49 µs |
194
+ | `find_deep` | 424 tk | 134 tk | **-68%** | 79 µs |
195
+ | `git_status` | 50 tk | 16 tk | **-68%** | 15 µs |
196
+ | `pytest_failures` | 3,402 tk | 1,175 tk | **-65%** | 315 µs |
197
+ | `verbose_app_log` | 4,957 tk | 1,978 tk | **-60%** | 302 µs |
198
+ | `npm_install` | 524 tk | 218 tk | **-58%** | 51 µs |
199
+ | `crosscall_redundancy_3x` | 486 tk | 237 tk | **-51%** | 51.9 ms |
200
+ | `ls_la` | 1,782 tk | 872 tk | **-51%** | 207 µs |
201
+ | `env_dump` | 441 tk | 287 tk | **-35%** | 27 µs |
202
+ | `git_copilot` | 640 tk | 421 tk | **-34%** | 109 µs |
203
+ | `agent_heavy` | 2,306 tk | 1,551 tk | **-33%** | 357 µs |
204
+ | `md_prose` | 187 tk | 138 tk | **-26%** | 895 µs |
205
+ | `md_claude_md` | 316 tk | 247 tk | **-22%** | 1.1 ms |
206
206
  | `claude_md_overhead` | 717 tk | 635 tk | **-11%** | 23 µs |
207
- | `git_diff` | 502 tk | 497 tk | **-1%** | 38 µs |
208
- | `jest_failures` | 451 tk | 448 tk | **-1%** | 43 µs |
209
- | `state_first_simulation` | 182 tk | 181 tk | **-1%** | 6 µs |
210
- | `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** | 31 µs |
207
+ | `git_diff` | 502 tk | 497 tk | **-1%** | 53 µs |
208
+ | `jest_failures` | 451 tk | 448 tk | **-1%** | 57 µs |
209
+ | `state_first_simulation` | 182 tk | 181 tk | **-1%** | 5 µs |
210
+ | `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** | 33 µs |
211
211
 
212
212
  ### Aggregate
213
213
 
@@ -218,7 +218,7 @@ Measured on macOS (Apple Silicon). Token count = `chars / 4` (matches Claude's ~
218
218
  | Markdown / context files | **-23.5%** |
219
219
  | Wrap / cross-call engine | **-99.2%** |
220
220
  | Quality (signal terms preserved) | **28 / 28 pass** |
221
- | Latency p50 (filter mode) | **4.1 ms** |
221
+ | Latency p50 (filter mode) | **4.2 ms** |
222
222
  | Latency p95 (incl. wrap/summarize) | **52 ms** |
223
223
 
224
224
  ### Estimated cost savings — Claude Sonnet 4.6 · $3.00 / MTok input
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "squeez",
3
- "version": "1.22.1",
3
+ "version": "1.23.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",