squeez 1.7.0 → 1.7.3

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 +309 -1
  2. package/README.md +33 -26
  3. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -7,6 +7,312 @@ This project uses [Semantic Versioning](https://semver.org/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.7.1] - 2026-04-19
11
+
12
+ ### Added
13
+ - feat(bench): efficiency-proof benchmark suite — quantitative savings for US-001/003/004 (#74)
14
+ - token-compression power-up — sig-mode, memory-file warn, structured summaries, hypothesis benchmark (#70)
15
+ - feat(setup): adapter-driven setup/uninstall across all hosts (#58)
16
+ - feat(hosts): Codex CLI adapter (hooks + AGENTS.md soft-budget) (#55)
17
+ - feat(hosts): Gemini CLI adapter (BeforeTool/AfterTool hooks) (#52)
18
+ - feat(hosts): full-parity OpenCode adapter + plugin rewrite (#48)
19
+ - wrangler, playwright, next build handlers + bun/drizzle routing (#34)
20
+ - feat(opus47): adapt squeez for Opus 4.7 tokenizer and xhigh effort
21
+ - feat(setup): auto-detect lang from CLAUDE.md/locale + stderr update notification (#29)
22
+ - v0.3.0 — token economy, pt-BR caveman, aggressive defaults, full hook install
23
+ - structured session memory, cross-session search, error snippets, configurable tunables
24
+ - feat(setup): create config.ini on first install
25
+ - feat(i18n): locale-aware compress-md with pt-BR support (#25)
26
+ - fuzzy dedup, adaptive intensity, benign summarize, MCP server, temporal memory, protocol payload
27
+ - Windows setup via cargo/npm + squeez update fix
28
+ - feat(benchmark): add squeez benchmark command with 19-scenario test suite
29
+ - feat(ci): re-add promote-develop workflow with correct registration
30
+ - feat(init): inject persona into ~/.claude/CLAUDE.md on every session start
31
+ - feat(npm+crates): add npm package and publish jobs to release workflow
32
+ - feat(statusline): add statusline.sh to repo; install via install.sh; show all-time stats
33
+ - compress-md, caveman persona, squeez update, track-result hook
34
+ - feat(context): adaptive intensity always picks Ultra
35
+ - feat(context): aggressive token-engine — adaptive intensity, redundancy cache, summarize fallback
36
+ - add Windows support to install.sh and release.yml
37
+ - add home_dir() helper with USERPROFILE fallback for Windows
38
+ - cross-platform wrap — shell_command() helper, cfg(unix) signal gates, libc unix-only
39
+ - add GitHub Copilot CLI support
40
+ - add OpenCode plugin for automatic Bash compression
41
+ - add universal installer support for macOS and Linux
42
+ - expand benchmarks, edge-case tests, and README polish
43
+ - add SessionStart + PostToolUse hooks, update install.sh and README
44
+ - wrap.rs — artifact capture (files/errors/git/tests) + compact warning header
45
+ - squeez init — session start, prior memory banner, session finalization (TDD)
46
+ - squeez track — token accumulation + session event log (TDD)
47
+ - memory.rs — Summary, read_last_n, write_summary, prune_old (TDD)
48
+ - session.rs — CurrentSession, append_event, date math (TDD)
49
+ - json_util helpers + compact_threshold_tokens, memory_retention_days config
50
+ - benchmark system — all fixtures passing
51
+ - build.sh compiles + installs squeez, registers hook
52
+ - PreToolUse hook script
53
+ - fs and runtime handlers — all handler tests passing
54
+ - cloud, database, network handlers (TDD)
55
+ - typescript and build handlers (TDD)
56
+ - package_mgr and test_runner handlers (TDD)
57
+ - git and docker handlers (TDD)
58
+ - wrap subcommand — sh -c, 120s timeout, signal forwarding, bypass check
59
+ - Handler trait with cmd+config, generic handler, command router, filter_stdin
60
+ - truncation strategy (TDD) — all strategy tests passing
61
+ - grouping strategy (TDD)
62
+ - dedup strategy (TDD)
63
+ - smart_filter strategy with node_modules frame removal (TDD)
64
+ - implement config.ini parser (TDD)
65
+
66
+ ### Changed
67
+ - chore(release): bump version to 1.7.1 [squeez-release-bot]
68
+ - chore: relicense to Apache 2.0 + add DCO policy + banner (#76)
69
+ - docs: update changelog and benchmarks for v1.7.0
70
+ - chore(release): bump version to 1.7.0 [squeez-release-bot]
71
+ - docs: update changelog and benchmarks for v1.6.1
72
+ - chore(release): bump version to 1.6.1 [squeez-release-bot]
73
+ - docs: update changelog and benchmarks for v1.6.0
74
+ - chore(release): bump version to 1.6.0 [squeez-release-bot]
75
+ - docs: update changelog and benchmarks for v1.5.2
76
+ - chore(release): bump version to 1.5.2 [squeez-release-bot]
77
+ - chore(release): bump version to 1.5.1 [squeez-release-bot]
78
+ - docs: five-host matrix + squeez setup/uninstall flow (#63)
79
+ - refactor(install): delegate host registration to 'squeez setup' (#60)
80
+ - chore(release): bump version to 1.5.0 [squeez-release-bot]
81
+ - chore(release): bump version to 1.4.0 [squeez-release-bot]
82
+ - chore(release): bump version to 1.3.0 [squeez-release-bot]
83
+ - chore(release): bump version to 1.2.0 [squeez-release-bot]
84
+ - chore(release): bump version to 1.1.0 [squeez-release-bot]
85
+ - chore(release): bump version to 1.0.0 [skip release]
86
+ - refactor(hosts): extract HostAdapter trait + migrate Claude Code and Copilot (#42)
87
+ - ci: conventional-commit-driven auto-release (#40)
88
+ - chore(gov): issue-form templates + refined PR template (#39)
89
+ - docs: update changelog and benchmarks for v0.4.1 [skip release] (#33)
90
+ - chore(release): bump version to 0.4.1
91
+ - chore(release): bump version to 0.4.0
92
+ - docs: update changelog and benchmarks for v0.3.2 [skip release] (#30)
93
+ - chore: bump version to 0.3.2
94
+ - docs: add shields.io badge for changelog link
95
+ - chore: bump version to 0.3.1
96
+ - chore: bump version to 0.2.3
97
+ - docs: update README with 11 MCP tools, structured memory, and advanced tunables
98
+ - chore: bump version to 0.2.2
99
+ - docs: rewrite README with full install instructions (curl/npm/cargo) and all commands
100
+ - chore: refresh bench/report.md from latest run [skip release]
101
+ - chore(ci): remove promote-develop workflow (re-adding to fix broken registration)
102
+ - chore: bump version to 0.2.1 + auto-release on merge to main [skip release]
103
+ - chore: bump version to 0.2.0; add Cargo.toml metadata
104
+ - ci: PR template, linked-issue enforcement, no-claude-trailer check
105
+ - docs: update README with PR1+PR2 features, fresh benchmarks, changelog
106
+ - ci: auto-delete branches after PR merge
107
+ - docs: update Windows installation instructions and prerequisites in README
108
+ - docs: add Windows support and Rust install instructions to README
109
+ - refactor: use session::home_dir() in config and init (Windows compat)
110
+ - ci: trigger promote workflow (test)
111
+ - ci(workflow): avoid failing promote job when PR creation is not permitted; add PR_CREATION_TOKEN guidance
112
+ - docs(readme): add changelog, contribution workflow, and benchmark notes
113
+ - ci(workflow): create/update PR from develop to main on push
114
+ - chore: add .worktrees/ to gitignore
115
+ - chore: add docs/ to gitignore (local design specs)
116
+ - docs: update README for GitHub Copilot CLI support
117
+ - security: fix remaining LOW findings in wrap.rs
118
+ - security: fix 2 follow-up findings from second audit
119
+ - security: fix all 8 findings from security audit
120
+ - ci: build and install binary before running benchmarks
121
+ - chore: add GitHub sponsor button
122
+ - chore: ignore .omc/ directory, remove from tracking
123
+ - chore: update benchmark report (7/7 passing)
124
+ - docs: update README — real benchmarks, Phase 2 config, how it works
125
+ - style: cargo fmt on session.rs and test_session.rs
126
+ - chore: open source files — README, LICENSE, CI/release workflows, install.sh
127
+ - chore: scaffold squeez Rust project
128
+
129
+ ### Fixed
130
+ - fix(hooks): add hookEventName to PreToolUse hookSpecificOutput (#78)
131
+ - fix(opencode): align plugin with PluginModule SDK shape (default export + server map) (#72)
132
+ - fix(ci): push release docs directly to main (loop-safe) (#68)
133
+ - back Copilot BUDGET_HARD with Read/Grep hook + update upstream refs (#65)
134
+ - fix(ci): startsWith guard for auto-release recursion (#46)
135
+ - fix(ci): tighten auto-release bump detection + fix tag push (#44)
136
+ - fix(ci): add --allow-dirty to cargo publish for Cargo.lock changes
137
+ - fix(ci): skip publish gracefully when version already exists on crates.io/npm
138
+ - fix(ci): run update-docs even if publish jobs fail (already published)
139
+ - fix(ci): continue-on-error for publish jobs so update-docs always runs
140
+ - fix(ci): add pull-requests write permission to update-docs job
141
+ - fix(update): cargo-managed self-update + Windows deferred install + session update check (#27)
142
+ - fix(ci): update-docs creates PR instead of pushing directly to protected main
143
+ - fix(npm): copy README.md into npm package before publish; add readme field
144
+ - fix(ci): add toolchain: stable to all dtolnay/rust-toolchain steps
145
+ - fix(ci): handle no previous tags in generate-changelog.sh (pipefail + grep -v)
146
+ - fix(ci): dispatch release.yml from auto-release to bypass GITHUB_TOKEN chain limit [skip release]
147
+ - fix(ci): fix flaky test tmp dir collision + simplify auto-release
148
+ - fix(bench): exclude synthetic fixtures from filter-mode bench/run.sh
149
+ - fix(ci): remove secrets in step if-conditions — check token inside script instead
150
+ - fix(ci): rename promote-develop → promote-to-main to fix broken workflow registration
151
+ - fix(ci): bump github-script to v7 in promote-develop to force workflow re-registration
152
+ - fix(compress_md): use byte slice comparison to avoid UTF-8 char boundary panic
153
+ - fix(statusline): remove Ctx% — show only squeez compression metrics
154
+ - fix(statusline): green ✓, proper capitalization, real-time context %, all metrics
155
+ - resolve gap analysis — new handlers, wider redundancy window, token budget
156
+ - install.sh — clarify PostToolUse no-matcher intent, guard version echo
157
+ - wrap.rs — safe git hex check, O(n) dedup, full cmd in event log
158
+ - use ends_with for files_committed check in init finalize
159
+ - json_util — guard extract_u64 empty digit, add json_util test coverage
160
+ - add pre-flight binary check to bench/run.sh
161
+ - atomic settings.json write + uninstall safety guards
162
+ - harden pretooluse hook (shlex.quote, error handling, single path source)
163
+ - wrap — process_group(0) for correct signal forwarding, tighten is_streaming
164
+
165
+ ## [1.7.0] - 2026-04-19
166
+
167
+ ### Added
168
+ - feat(bench): efficiency-proof benchmark suite — quantitative savings for US-001/003/004 (#74)
169
+ - token-compression power-up — sig-mode, memory-file warn, structured summaries, hypothesis benchmark (#70)
170
+ - feat(setup): adapter-driven setup/uninstall across all hosts (#58)
171
+ - feat(hosts): Codex CLI adapter (hooks + AGENTS.md soft-budget) (#55)
172
+ - feat(hosts): Gemini CLI adapter (BeforeTool/AfterTool hooks) (#52)
173
+ - feat(hosts): full-parity OpenCode adapter + plugin rewrite (#48)
174
+ - wrangler, playwright, next build handlers + bun/drizzle routing (#34)
175
+ - feat(opus47): adapt squeez for Opus 4.7 tokenizer and xhigh effort
176
+ - feat(setup): auto-detect lang from CLAUDE.md/locale + stderr update notification (#29)
177
+ - v0.3.0 — token economy, pt-BR caveman, aggressive defaults, full hook install
178
+ - structured session memory, cross-session search, error snippets, configurable tunables
179
+ - feat(setup): create config.ini on first install
180
+ - feat(i18n): locale-aware compress-md with pt-BR support (#25)
181
+ - fuzzy dedup, adaptive intensity, benign summarize, MCP server, temporal memory, protocol payload
182
+ - Windows setup via cargo/npm + squeez update fix
183
+ - feat(benchmark): add squeez benchmark command with 19-scenario test suite
184
+ - feat(ci): re-add promote-develop workflow with correct registration
185
+ - feat(init): inject persona into ~/.claude/CLAUDE.md on every session start
186
+ - feat(npm+crates): add npm package and publish jobs to release workflow
187
+ - feat(statusline): add statusline.sh to repo; install via install.sh; show all-time stats
188
+ - compress-md, caveman persona, squeez update, track-result hook
189
+ - feat(context): adaptive intensity always picks Ultra
190
+ - feat(context): aggressive token-engine — adaptive intensity, redundancy cache, summarize fallback
191
+ - add Windows support to install.sh and release.yml
192
+ - add home_dir() helper with USERPROFILE fallback for Windows
193
+ - cross-platform wrap — shell_command() helper, cfg(unix) signal gates, libc unix-only
194
+ - add GitHub Copilot CLI support
195
+ - add OpenCode plugin for automatic Bash compression
196
+ - add universal installer support for macOS and Linux
197
+ - expand benchmarks, edge-case tests, and README polish
198
+ - add SessionStart + PostToolUse hooks, update install.sh and README
199
+ - wrap.rs — artifact capture (files/errors/git/tests) + compact warning header
200
+ - squeez init — session start, prior memory banner, session finalization (TDD)
201
+ - squeez track — token accumulation + session event log (TDD)
202
+ - memory.rs — Summary, read_last_n, write_summary, prune_old (TDD)
203
+ - session.rs — CurrentSession, append_event, date math (TDD)
204
+ - json_util helpers + compact_threshold_tokens, memory_retention_days config
205
+ - benchmark system — all fixtures passing
206
+ - build.sh compiles + installs squeez, registers hook
207
+ - PreToolUse hook script
208
+ - fs and runtime handlers — all handler tests passing
209
+ - cloud, database, network handlers (TDD)
210
+ - typescript and build handlers (TDD)
211
+ - package_mgr and test_runner handlers (TDD)
212
+ - git and docker handlers (TDD)
213
+ - wrap subcommand — sh -c, 120s timeout, signal forwarding, bypass check
214
+ - Handler trait with cmd+config, generic handler, command router, filter_stdin
215
+ - truncation strategy (TDD) — all strategy tests passing
216
+ - grouping strategy (TDD)
217
+ - dedup strategy (TDD)
218
+ - smart_filter strategy with node_modules frame removal (TDD)
219
+ - implement config.ini parser (TDD)
220
+
221
+ ### Changed
222
+ - chore(release): bump version to 1.7.0 [squeez-release-bot]
223
+ - docs: update changelog and benchmarks for v1.6.1
224
+ - chore(release): bump version to 1.6.1 [squeez-release-bot]
225
+ - docs: update changelog and benchmarks for v1.6.0
226
+ - chore(release): bump version to 1.6.0 [squeez-release-bot]
227
+ - docs: update changelog and benchmarks for v1.5.2
228
+ - chore(release): bump version to 1.5.2 [squeez-release-bot]
229
+ - chore(release): bump version to 1.5.1 [squeez-release-bot]
230
+ - docs: five-host matrix + squeez setup/uninstall flow (#63)
231
+ - refactor(install): delegate host registration to 'squeez setup' (#60)
232
+ - chore(release): bump version to 1.5.0 [squeez-release-bot]
233
+ - chore(release): bump version to 1.4.0 [squeez-release-bot]
234
+ - chore(release): bump version to 1.3.0 [squeez-release-bot]
235
+ - chore(release): bump version to 1.2.0 [squeez-release-bot]
236
+ - chore(release): bump version to 1.1.0 [squeez-release-bot]
237
+ - chore(release): bump version to 1.0.0 [skip release]
238
+ - refactor(hosts): extract HostAdapter trait + migrate Claude Code and Copilot (#42)
239
+ - ci: conventional-commit-driven auto-release (#40)
240
+ - chore(gov): issue-form templates + refined PR template (#39)
241
+ - docs: update changelog and benchmarks for v0.4.1 [skip release] (#33)
242
+ - chore(release): bump version to 0.4.1
243
+ - chore(release): bump version to 0.4.0
244
+ - docs: update changelog and benchmarks for v0.3.2 [skip release] (#30)
245
+ - chore: bump version to 0.3.2
246
+ - docs: add shields.io badge for changelog link
247
+ - chore: bump version to 0.3.1
248
+ - chore: bump version to 0.2.3
249
+ - docs: update README with 11 MCP tools, structured memory, and advanced tunables
250
+ - chore: bump version to 0.2.2
251
+ - docs: rewrite README with full install instructions (curl/npm/cargo) and all commands
252
+ - chore: refresh bench/report.md from latest run [skip release]
253
+ - chore(ci): remove promote-develop workflow (re-adding to fix broken registration)
254
+ - chore: bump version to 0.2.1 + auto-release on merge to main [skip release]
255
+ - chore: bump version to 0.2.0; add Cargo.toml metadata
256
+ - ci: PR template, linked-issue enforcement, no-claude-trailer check
257
+ - docs: update README with PR1+PR2 features, fresh benchmarks, changelog
258
+ - ci: auto-delete branches after PR merge
259
+ - docs: update Windows installation instructions and prerequisites in README
260
+ - docs: add Windows support and Rust install instructions to README
261
+ - refactor: use session::home_dir() in config and init (Windows compat)
262
+ - ci: trigger promote workflow (test)
263
+ - ci(workflow): avoid failing promote job when PR creation is not permitted; add PR_CREATION_TOKEN guidance
264
+ - docs(readme): add changelog, contribution workflow, and benchmark notes
265
+ - ci(workflow): create/update PR from develop to main on push
266
+ - chore: add .worktrees/ to gitignore
267
+ - chore: add docs/ to gitignore (local design specs)
268
+ - docs: update README for GitHub Copilot CLI support
269
+ - security: fix remaining LOW findings in wrap.rs
270
+ - security: fix 2 follow-up findings from second audit
271
+ - security: fix all 8 findings from security audit
272
+ - ci: build and install binary before running benchmarks
273
+ - chore: add GitHub sponsor button
274
+ - chore: ignore .omc/ directory, remove from tracking
275
+ - chore: update benchmark report (7/7 passing)
276
+ - docs: update README — real benchmarks, Phase 2 config, how it works
277
+ - style: cargo fmt on session.rs and test_session.rs
278
+ - chore: open source files — README, LICENSE, CI/release workflows, install.sh
279
+ - chore: scaffold squeez Rust project
280
+
281
+ ### Fixed
282
+ - fix(opencode): align plugin with PluginModule SDK shape (default export + server map) (#72)
283
+ - fix(ci): push release docs directly to main (loop-safe) (#68)
284
+ - back Copilot BUDGET_HARD with Read/Grep hook + update upstream refs (#65)
285
+ - fix(ci): startsWith guard for auto-release recursion (#46)
286
+ - fix(ci): tighten auto-release bump detection + fix tag push (#44)
287
+ - fix(ci): add --allow-dirty to cargo publish for Cargo.lock changes
288
+ - fix(ci): skip publish gracefully when version already exists on crates.io/npm
289
+ - fix(ci): run update-docs even if publish jobs fail (already published)
290
+ - fix(ci): continue-on-error for publish jobs so update-docs always runs
291
+ - fix(ci): add pull-requests write permission to update-docs job
292
+ - fix(update): cargo-managed self-update + Windows deferred install + session update check (#27)
293
+ - fix(ci): update-docs creates PR instead of pushing directly to protected main
294
+ - fix(npm): copy README.md into npm package before publish; add readme field
295
+ - fix(ci): add toolchain: stable to all dtolnay/rust-toolchain steps
296
+ - fix(ci): handle no previous tags in generate-changelog.sh (pipefail + grep -v)
297
+ - fix(ci): dispatch release.yml from auto-release to bypass GITHUB_TOKEN chain limit [skip release]
298
+ - fix(ci): fix flaky test tmp dir collision + simplify auto-release
299
+ - fix(bench): exclude synthetic fixtures from filter-mode bench/run.sh
300
+ - fix(ci): remove secrets in step if-conditions — check token inside script instead
301
+ - fix(ci): rename promote-develop → promote-to-main to fix broken workflow registration
302
+ - fix(ci): bump github-script to v7 in promote-develop to force workflow re-registration
303
+ - fix(compress_md): use byte slice comparison to avoid UTF-8 char boundary panic
304
+ - fix(statusline): remove Ctx% — show only squeez compression metrics
305
+ - fix(statusline): green ✓, proper capitalization, real-time context %, all metrics
306
+ - resolve gap analysis — new handlers, wider redundancy window, token budget
307
+ - install.sh — clarify PostToolUse no-matcher intent, guard version echo
308
+ - wrap.rs — safe git hex check, O(n) dedup, full cmd in event log
309
+ - use ends_with for files_committed check in init finalize
310
+ - json_util — guard extract_u64 empty digit, add json_util test coverage
311
+ - add pre-flight binary check to bench/run.sh
312
+ - atomic settings.json write + uninstall safety guards
313
+ - harden pretooluse hook (shlex.quote, error handling, single path source)
314
+ - wrap — process_group(0) for correct signal forwarding, tighten is_streaming
315
+
10
316
  ## [1.6.1] - 2026-04-19
11
317
 
12
318
  ### Added
@@ -781,7 +1087,7 @@ This project uses [Semantic Versioning](https://semver.org/).
781
1087
  - Wider redundancy window, token budget improvements
782
1088
  - CI: PR template, linked-issue enforcement
783
1089
 
784
- [Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.6.1...HEAD
1090
+ [Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.7.1...HEAD
785
1091
  [0.3.0]: https://github.com/claudioemmanuel/squeez/compare/v0.2.3...v0.3.0
786
1092
  [0.2.3]: https://github.com/claudioemmanuel/squeez/compare/v0.2.2...v0.2.3
787
1093
  [0.2.2]: https://github.com/claudioemmanuel/squeez/compare/v0.2.1...v0.2.2
@@ -792,3 +1098,5 @@ This project uses [Semantic Versioning](https://semver.org/).
792
1098
  [1.5.2]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.5.2
793
1099
  [1.6.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.6.0
794
1100
  [1.6.1]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.6.1
1101
+ [1.7.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.7.0
1102
+ [1.7.1]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.7.1
package/README.md CHANGED
@@ -1,9 +1,14 @@
1
+ <p align="center">
2
+ <img src="assets/banner.png" alt="squeez — hook-based token compressor for AI CLIs" width="100%">
3
+ </p>
4
+
1
5
  # squeez
2
6
 
3
7
  [![CI](https://github.com/claudioemmanuel/squeez/actions/workflows/ci.yml/badge.svg)](https://github.com/claudioemmanuel/squeez/actions/workflows/ci.yml)
4
8
  [![npm](https://img.shields.io/npm/v/squeez.svg)](https://www.npmjs.com/package/squeez)
5
9
  [![Crates.io](https://img.shields.io/crates/v/squeez.svg)](https://crates.io/crates/squeez)
6
- [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
10
+ [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
11
+ [![DCO](https://img.shields.io/badge/contributions-DCO_signed--off-green.svg)](CONTRIBUTING.md#license--contributor-sign-off)
7
12
  [![Changelog](https://img.shields.io/badge/changelog-📋-blue.svg)](CHANGELOG.md)
8
13
 
9
14
  End-to-end token optimizer for Claude Code, GitHub Copilot CLI, OpenCode, Gemini CLI, and OpenAI Codex CLI. Compresses bash output up to **95%**, collapses redundant calls, and injects a terse prompt persona — automatically, with zero new runtime dependencies.
@@ -114,29 +119,29 @@ Measured on macOS (Apple Silicon). Token count = `chars / 4` (matches Claude's ~
114
119
 
115
120
  | Scenario | Before | After | Reduction | Latency |
116
121
  |----------|--------|-------|-----------|---------|
117
- | `summarize_huge` | 82,257 tk | 420 tk | **-99%** | 55.6 ms |
118
- | `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 206 µs |
119
- | `high_context_adaptive` | 4,418 tk | 52 tk | **-99%** | 824 µs |
120
- | `ps_aux` | 40,373 tk | 2,352 tk | **-94%** | 2.7 ms |
121
- | `git_log_200` | 2,692 tk | 289 tk | **-89%** | 213 µs |
122
- | `tsc_errors` | 731 tk | 101 tk | **-86%** | 27 µs |
123
- | `cargo_build_noisy` | 2,106 tk | 452 tk | **-79%** | 240 µs |
124
- | `docker_logs` | 665 tk | 186 tk | **-72%** | 46 µs |
125
- | `find_deep` | 424 tk | 134 tk | **-68%** | 79 µs |
126
- | `git_status` | 50 tk | 16 tk | **-68%** | 11 µs |
127
- | `state_first_simulation` | 182 tk | 69 tk | **-62%** | 12 µs |
128
- | `verbose_app_log` | 4,957 tk | 1,991 tk | **-60%** | 304 µs |
129
- | `npm_install` | 524 tk | 232 tk | **-56%** | 47 µs |
130
- | `claude_md_overhead` | 717 tk | 318 tk | **-56%** | 353 µs |
131
- | `crosscall_redundancy_3x` | 486 tk | 241 tk | **-50%** | 51.5 ms |
132
- | `ls_la` | 1,782 tk | 886 tk | **-50%** | 201 µs |
133
- | `env_dump` | 441 tk | 287 tk | **-35%** | 24 µs |
134
- | `git_copilot` | 640 tk | 421 tk | **-34%** | 100 µs |
135
- | `agent_heavy` | 2,306 tk | 1,564 tk | **-32%** | 377 µs |
136
- | `md_prose` | 187 tk | 138 tk | **-26%** | 660 µs |
137
- | `md_claude_md` | 316 tk | 247 tk | **-22%** | 1.1 ms |
138
- | `git_diff` | 502 tk | 497 tk | **-1%** | 43 µs |
139
- | `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** | 28 µs |
122
+ | `summarize_huge` | 82,257 tk | 420 tk | **-99%** | 54.6 ms |
123
+ | `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 164 µs |
124
+ | `high_context_adaptive` | 4,418 tk | 52 tk | **-99%** | 637 µs |
125
+ | `ps_aux` | 40,373 tk | 2,352 tk | **-94%** | 2.2 ms |
126
+ | `git_log_200` | 2,692 tk | 289 tk | **-89%** | 179 µs |
127
+ | `tsc_errors` | 731 tk | 101 tk | **-86%** | 20 µs |
128
+ | `cargo_build_noisy` | 2,106 tk | 452 tk | **-79%** | 201 µs |
129
+ | `docker_logs` | 665 tk | 186 tk | **-72%** | 36 µs |
130
+ | `find_deep` | 424 tk | 134 tk | **-68%** | 61 µs |
131
+ | `git_status` | 50 tk | 16 tk | **-68%** | 9 µs |
132
+ | `state_first_simulation` | 182 tk | 69 tk | **-62%** | 9 µs |
133
+ | `verbose_app_log` | 4,957 tk | 1,991 tk | **-60%** | 235 µs |
134
+ | `npm_install` | 524 tk | 232 tk | **-56%** | 38 µs |
135
+ | `claude_md_overhead` | 717 tk | 318 tk | **-56%** | 272 µs |
136
+ | `crosscall_redundancy_3x` | 486 tk | 241 tk | **-50%** | 51.2 ms |
137
+ | `ls_la` | 1,782 tk | 886 tk | **-50%** | 168 µs |
138
+ | `env_dump` | 441 tk | 287 tk | **-35%** | 19 µs |
139
+ | `git_copilot` | 640 tk | 421 tk | **-34%** | 88 µs |
140
+ | `agent_heavy` | 2,306 tk | 1,564 tk | **-32%** | 310 µs |
141
+ | `md_prose` | 187 tk | 138 tk | **-26%** | 505 µs |
142
+ | `md_claude_md` | 316 tk | 247 tk | **-22%** | 938 µs |
143
+ | `git_diff` | 502 tk | 497 tk | **-1%** | 35 µs |
144
+ | `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** | 20 µs |
140
145
 
141
146
  ### Aggregate
142
147
 
@@ -147,7 +152,7 @@ Measured on macOS (Apple Silicon). Token count = `chars / 4` (matches Claude's ~
147
152
  | Markdown / context files | **-23.5%** |
148
153
  | Wrap / cross-call engine | **-99.2%** |
149
154
  | Quality (signal terms preserved) | **23 / 23 pass** |
150
- | Latency p50 (filter mode) | **5.0 ms** |
155
+ | Latency p50 (filter mode) | **4.9 ms** |
151
156
  | Latency p95 (incl. wrap/summarize) | **51 ms** |
152
157
 
153
158
  ### Estimated cost savings — Claude Sonnet 4.6 · $3.00 / MTok input
@@ -477,4 +482,6 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for coding standards.
477
482
 
478
483
  ## License
479
484
 
480
- MIT — see [LICENSE](LICENSE).
485
+ Licensed under the **Apache License 2.0** — see [LICENSE](LICENSE) + [NOTICE](NOTICE).
486
+
487
+ Contributions require a DCO sign-off (`git commit -s …`) rather than a CLA. You keep copyright on what you contribute; sign-off is a lightweight affirmation that you have the right to submit it under Apache 2.0. See [CONTRIBUTING.md](CONTRIBUTING.md#license--contributor-sign-off) for details.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "squeez",
3
- "version": "1.7.0",
3
+ "version": "1.7.3",
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",
@@ -18,7 +18,7 @@
18
18
  "type": "git",
19
19
  "url": "https://github.com/claudioemmanuel/squeez.git"
20
20
  },
21
- "license": "MIT",
21
+ "license": "Apache-2.0",
22
22
  "readme": "README.md",
23
23
  "author": "claudioemmanuel",
24
24
  "bin": {