squeez 1.11.2 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/CHANGELOG.md +194 -1
  2. package/README.md +20 -20
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -9,6 +9,198 @@ conventional commit messages on `main`.
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [1.11.2] - 2026-04-30
13
+
14
+ ### Added
15
+ - session-analysis improvements — az JSON, vite noise, prisma generate, hook health check (#90)
16
+ - feat(fs): auto-compress cat'd markdown via compress_md pipeline (#88)
17
+ - feat(economy): compress Agent/Task prompt at PreToolUse time (#87)
18
+ - feat(handlers): xcodebuild noise filter + log-file tail detection (#84)
19
+ - feat(bench): efficiency-proof benchmark suite — quantitative savings for US-001/003/004 (#74)
20
+ - token-compression power-up — sig-mode, memory-file warn, structured summaries, hypothesis benchmark (#70)
21
+ - feat(setup): adapter-driven setup/uninstall across all hosts (#58)
22
+ - feat(hosts): Codex CLI adapter (hooks + AGENTS.md soft-budget) (#55)
23
+ - feat(hosts): Gemini CLI adapter (BeforeTool/AfterTool hooks) (#52)
24
+ - feat(hosts): full-parity OpenCode adapter + plugin rewrite (#48)
25
+ - wrangler, playwright, next build handlers + bun/drizzle routing (#34)
26
+ - feat(opus47): adapt squeez for Opus 4.7 tokenizer and xhigh effort
27
+ - feat(setup): auto-detect lang from CLAUDE.md/locale + stderr update notification (#29)
28
+ - v0.3.0 — token economy, pt-BR caveman, aggressive defaults, full hook install
29
+ - structured session memory, cross-session search, error snippets, configurable tunables
30
+ - feat(setup): create config.ini on first install
31
+ - feat(i18n): locale-aware compress-md with pt-BR support (#25)
32
+ - fuzzy dedup, adaptive intensity, benign summarize, MCP server, temporal memory, protocol payload
33
+ - Windows setup via cargo/npm + squeez update fix
34
+ - feat(benchmark): add squeez benchmark command with 19-scenario test suite
35
+ - feat(ci): re-add promote-develop workflow with correct registration
36
+ - feat(init): inject persona into ~/.claude/CLAUDE.md on every session start
37
+ - feat(npm+crates): add npm package and publish jobs to release workflow
38
+ - feat(statusline): add statusline.sh to repo; install via install.sh; show all-time stats
39
+ - compress-md, caveman persona, squeez update, track-result hook
40
+ - feat(context): adaptive intensity always picks Ultra
41
+ - feat(context): aggressive token-engine — adaptive intensity, redundancy cache, summarize fallback
42
+ - add Windows support to install.sh and release.yml
43
+ - add home_dir() helper with USERPROFILE fallback for Windows
44
+ - cross-platform wrap — shell_command() helper, cfg(unix) signal gates, libc unix-only
45
+ - add GitHub Copilot CLI support
46
+ - add OpenCode plugin for automatic Bash compression
47
+ - add universal installer support for macOS and Linux
48
+ - expand benchmarks, edge-case tests, and README polish
49
+ - add SessionStart + PostToolUse hooks, update install.sh and README
50
+ - wrap.rs — artifact capture (files/errors/git/tests) + compact warning header
51
+ - squeez init — session start, prior memory banner, session finalization (TDD)
52
+ - squeez track — token accumulation + session event log (TDD)
53
+ - memory.rs — Summary, read_last_n, write_summary, prune_old (TDD)
54
+ - session.rs — CurrentSession, append_event, date math (TDD)
55
+ - json_util helpers + compact_threshold_tokens, memory_retention_days config
56
+ - benchmark system — all fixtures passing
57
+ - build.sh compiles + installs squeez, registers hook
58
+ - PreToolUse hook script
59
+ - fs and runtime handlers — all handler tests passing
60
+ - cloud, database, network handlers (TDD)
61
+ - typescript and build handlers (TDD)
62
+ - package_mgr and test_runner handlers (TDD)
63
+ - git and docker handlers (TDD)
64
+ - wrap subcommand — sh -c, 120s timeout, signal forwarding, bypass check
65
+ - Handler trait with cmd+config, generic handler, command router, filter_stdin
66
+ - truncation strategy (TDD) — all strategy tests passing
67
+ - grouping strategy (TDD)
68
+ - dedup strategy (TDD)
69
+ - smart_filter strategy with node_modules frame removal (TDD)
70
+ - implement config.ini parser (TDD)
71
+
72
+ ### Changed
73
+ - chore(release): bump version to 1.11.2 [squeez-release-bot]
74
+ - docs: update changelog and benchmarks for v1.11.1
75
+ - chore(release): bump version to 1.11.1 [squeez-release-bot]
76
+ - docs: update changelog and benchmarks for v1.11.0
77
+ - chore(release): bump version to 1.11.0 [squeez-release-bot]
78
+ - docs: update changelog and benchmarks for v1.10.0
79
+ - docs: update changelog and benchmarks for v1.9.0
80
+ - chore(release): bump version to 1.10.0 [squeez-release-bot]
81
+ - docs(readme): document squeez's compression scope and architectural limits (#85)
82
+ - chore(release): bump version to 1.9.0 [squeez-release-bot]
83
+ - chore(release): bump version to 1.8.0 [squeez-release-bot]
84
+ - docs: update changelog and benchmarks for v1.7.7
85
+ - chore(release): bump version to 1.7.7 [squeez-release-bot]
86
+ - docs: update changelog and benchmarks for v1.7.6
87
+ - chore(release): bump version to 1.7.6 [squeez-release-bot]
88
+ - docs: update changelog and benchmarks for v1.7.5
89
+ - chore(release): bump version to 1.7.5 [squeez-release-bot]
90
+ - docs: update changelog and benchmarks for v1.7.4
91
+ - chore(release): bump version to 1.7.4 [squeez-release-bot]
92
+ - perf: O(log n) refactor — tail read, offset index, single-pass parser
93
+ - docs: update changelog and benchmarks for v1.7.3
94
+ - chore(release): bump version to 1.7.3 [squeez-release-bot]
95
+ - chore(release): bump version to 1.7.2 [squeez-release-bot]
96
+ - restore: revert accidental deletion of auto-release.yml workflow
97
+ - docs: update changelog and benchmarks for v1.7.1
98
+ - chore(release): bump version to 1.7.1 [squeez-release-bot]
99
+ - chore: relicense to Apache 2.0 + add DCO policy + banner (#76)
100
+ - docs: update changelog and benchmarks for v1.7.0
101
+ - chore(release): bump version to 1.7.0 [squeez-release-bot]
102
+ - docs: update changelog and benchmarks for v1.6.1
103
+ - chore(release): bump version to 1.6.1 [squeez-release-bot]
104
+ - docs: update changelog and benchmarks for v1.6.0
105
+ - chore(release): bump version to 1.6.0 [squeez-release-bot]
106
+ - docs: update changelog and benchmarks for v1.5.2
107
+ - chore(release): bump version to 1.5.2 [squeez-release-bot]
108
+ - chore(release): bump version to 1.5.1 [squeez-release-bot]
109
+ - docs: five-host matrix + squeez setup/uninstall flow (#63)
110
+ - refactor(install): delegate host registration to 'squeez setup' (#60)
111
+ - chore(release): bump version to 1.5.0 [squeez-release-bot]
112
+ - chore(release): bump version to 1.4.0 [squeez-release-bot]
113
+ - chore(release): bump version to 1.3.0 [squeez-release-bot]
114
+ - chore(release): bump version to 1.2.0 [squeez-release-bot]
115
+ - chore(release): bump version to 1.1.0 [squeez-release-bot]
116
+ - chore(release): bump version to 1.0.0 [skip release]
117
+ - refactor(hosts): extract HostAdapter trait + migrate Claude Code and Copilot (#42)
118
+ - ci: conventional-commit-driven auto-release (#40)
119
+ - chore(gov): issue-form templates + refined PR template (#39)
120
+ - docs: update changelog and benchmarks for v0.4.1 [skip release] (#33)
121
+ - chore(release): bump version to 0.4.1
122
+ - chore(release): bump version to 0.4.0
123
+ - docs: update changelog and benchmarks for v0.3.2 [skip release] (#30)
124
+ - chore: bump version to 0.3.2
125
+ - docs: add shields.io badge for changelog link
126
+ - chore: bump version to 0.3.1
127
+ - chore: bump version to 0.2.3
128
+ - docs: update README with 11 MCP tools, structured memory, and advanced tunables
129
+ - chore: bump version to 0.2.2
130
+ - docs: rewrite README with full install instructions (curl/npm/cargo) and all commands
131
+ - chore: refresh bench/report.md from latest run [skip release]
132
+ - chore(ci): remove promote-develop workflow (re-adding to fix broken registration)
133
+ - chore: bump version to 0.2.1 + auto-release on merge to main [skip release]
134
+ - chore: bump version to 0.2.0; add Cargo.toml metadata
135
+ - ci: PR template, linked-issue enforcement, no-claude-trailer check
136
+ - docs: update README with PR1+PR2 features, fresh benchmarks, changelog
137
+ - ci: auto-delete branches after PR merge
138
+ - docs: update Windows installation instructions and prerequisites in README
139
+ - docs: add Windows support and Rust install instructions to README
140
+ - refactor: use session::home_dir() in config and init (Windows compat)
141
+ - ci: trigger promote workflow (test)
142
+ - ci(workflow): avoid failing promote job when PR creation is not permitted; add PR_CREATION_TOKEN guidance
143
+ - docs(readme): add changelog, contribution workflow, and benchmark notes
144
+ - ci(workflow): create/update PR from develop to main on push
145
+ - chore: add .worktrees/ to gitignore
146
+ - chore: add docs/ to gitignore (local design specs)
147
+ - docs: update README for GitHub Copilot CLI support
148
+ - security: fix remaining LOW findings in wrap.rs
149
+ - security: fix 2 follow-up findings from second audit
150
+ - security: fix all 8 findings from security audit
151
+ - ci: build and install binary before running benchmarks
152
+ - chore: add GitHub sponsor button
153
+ - chore: ignore .omc/ directory, remove from tracking
154
+ - chore: update benchmark report (7/7 passing)
155
+ - docs: update README — real benchmarks, Phase 2 config, how it works
156
+ - style: cargo fmt on session.rs and test_session.rs
157
+ - chore: open source files — README, LICENSE, CI/release workflows, install.sh
158
+ - chore: scaffold squeez Rust project
159
+
160
+ ### Fixed
161
+ - plan-mode passthrough + release description body (#95)
162
+ - fix(session-start): health check missed top-level event keys (#92)
163
+ - fix(hosts): expand PreToolUse matcher to cover Read, Grep, Glob, Agent, Task (#86)
164
+ - fix(json_util,statusline): whitespace-tolerant JSON parser + UTF-8 statusline on Windows (#81)
165
+ - fix(hosts): preserve user settings.json when existing JSON fails to parse (#83)
166
+ - prevent OOM from unbounded file reads + data integrity fixes
167
+ - fix(ci): use native ubuntu-24.04-arm runner for aarch64 build
168
+ - eliminate memory leaks causing 16 GB RAM on MCP server startup (#79)
169
+ - fix(hooks): add hookEventName to PreToolUse hookSpecificOutput (#78)
170
+ - fix(opencode): align plugin with PluginModule SDK shape (default export + server map) (#72)
171
+ - fix(ci): push release docs directly to main (loop-safe) (#68)
172
+ - back Copilot BUDGET_HARD with Read/Grep hook + update upstream refs (#65)
173
+ - fix(ci): startsWith guard for auto-release recursion (#46)
174
+ - fix(ci): tighten auto-release bump detection + fix tag push (#44)
175
+ - fix(ci): add --allow-dirty to cargo publish for Cargo.lock changes
176
+ - fix(ci): skip publish gracefully when version already exists on crates.io/npm
177
+ - fix(ci): run update-docs even if publish jobs fail (already published)
178
+ - fix(ci): continue-on-error for publish jobs so update-docs always runs
179
+ - fix(ci): add pull-requests write permission to update-docs job
180
+ - fix(update): cargo-managed self-update + Windows deferred install + session update check (#27)
181
+ - fix(ci): update-docs creates PR instead of pushing directly to protected main
182
+ - fix(npm): copy README.md into npm package before publish; add readme field
183
+ - fix(ci): add toolchain: stable to all dtolnay/rust-toolchain steps
184
+ - fix(ci): handle no previous tags in generate-changelog.sh (pipefail + grep -v)
185
+ - fix(ci): dispatch release.yml from auto-release to bypass GITHUB_TOKEN chain limit [skip release]
186
+ - fix(ci): fix flaky test tmp dir collision + simplify auto-release
187
+ - fix(bench): exclude synthetic fixtures from filter-mode bench/run.sh
188
+ - fix(ci): remove secrets in step if-conditions — check token inside script instead
189
+ - fix(ci): rename promote-develop → promote-to-main to fix broken workflow registration
190
+ - fix(ci): bump github-script to v7 in promote-develop to force workflow re-registration
191
+ - fix(compress_md): use byte slice comparison to avoid UTF-8 char boundary panic
192
+ - fix(statusline): remove Ctx% — show only squeez compression metrics
193
+ - fix(statusline): green ✓, proper capitalization, real-time context %, all metrics
194
+ - resolve gap analysis — new handlers, wider redundancy window, token budget
195
+ - install.sh — clarify PostToolUse no-matcher intent, guard version echo
196
+ - wrap.rs — safe git hex check, O(n) dedup, full cmd in event log
197
+ - use ends_with for files_committed check in init finalize
198
+ - json_util — guard extract_u64 empty digit, add json_util test coverage
199
+ - add pre-flight binary check to bench/run.sh
200
+ - atomic settings.json write + uninstall safety guards
201
+ - harden pretooluse hook (shlex.quote, error handling, single path source)
202
+ - wrap — process_group(0) for correct signal forwarding, tighten is_streaming
203
+
12
204
  ## [1.11.1] - 2026-04-28
13
205
 
14
206
  ### Added
@@ -506,7 +698,7 @@ conventional commit messages on `main`.
506
698
  ## [1.5.1] and earlier
507
699
  See the [git tag history](https://github.com/claudioemmanuel/squeez/tags) for pre-1.5.2 details. release-please takes over changelog generation from 1.7.1 onwards.
508
700
 
509
- [Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.11.1...HEAD
701
+ [Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.11.2...HEAD
510
702
  [1.7.0]: https://github.com/claudioemmanuel/squeez/compare/v1.6.1...v1.7.0
511
703
  [1.6.1]: https://github.com/claudioemmanuel/squeez/compare/v1.6.0...v1.6.1
512
704
  [1.6.0]: https://github.com/claudioemmanuel/squeez/compare/v1.5.2...v1.6.0
@@ -520,3 +712,4 @@ See the [git tag history](https://github.com/claudioemmanuel/squeez/tags) for pr
520
712
  [1.10.0]: https://github.com/claudioemmanuel/squeez/compare/v1.7.2...v1.10.0
521
713
  [1.11.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.11.0
522
714
  [1.11.1]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.11.1
715
+ [1.11.2]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.11.2
package/README.md CHANGED
@@ -59,7 +59,7 @@ Builds from [crates.io](https://crates.io/crates/squeez). Requires Rust stable.
59
59
  | **Copilot CLI** | `~/.copilot/copilot-instructions.md` | ✅ native | ✅ native | ✅ native | Restart Copilot CLI after setup |
60
60
  | **OpenCode** | `~/.config/opencode/AGENTS.md` | ✅ native | ✅ native | ✅ native | Plugin at `~/.config/opencode/plugins/squeez.js`; MCP tool calls skip hooks (upstream sst/opencode#2319) |
61
61
  | **Gemini CLI** | `~/.gemini/GEMINI.md` | ✅ native | ✅ native | 🟡 soft via `GEMINI.md` | `BeforeTool` rewrite schema pending upstream docs ([google-gemini/gemini-cli#25629](https://github.com/google-gemini/gemini-cli/issues/25629)) |
62
- | **Codex CLI** | `~/.codex/AGENTS.md` | ✅ native | ✅ native | 🟡 soft via `AGENTS.md` | Codex `PreToolUse` is Bash-only until upstream expands ([openai/codex#18491](https://github.com/openai/codex/issues/18491)) |
62
+ | **Codex CLI** | `~/.codex/AGENTS.md` | ✅ native | ✅ native | 🟡 soft via `AGENTS.md` | `apply_patch` hooks landed in 0.123.0 ([#18391](https://github.com/openai/codex/pull/18391)); `updatedInput` + `read_file`/`grep` hook surface still pending ([openai/codex#18491](https://github.com/openai/codex/issues/18491)) |
63
63
 
64
64
  ### Manage
65
65
 
@@ -132,7 +132,7 @@ squeez optimizes what it can reach — the surfaces exposed by each host's hook
132
132
 
133
133
  **User's top-level prompt.** squeez runs per tool call, not on user turns.
134
134
 
135
- **Tools whose host doesn't expose PreToolUse / BeforeTool.** E.g. Codex `PreToolUse` today only fires on Bash (tracked upstream at [openai/codex#18491](https://github.com/openai/codex/issues/18491)), so Read/Grep caps for Codex are soft hints in AGENTS.md, not hard injections.
135
+ **Tools whose host doesn't expose PreToolUse / BeforeTool.** E.g. Codex `apply_patch` hooks landed in 0.123.0, but `updatedInput` is explicitly unsupported and `read_file`/`grep` still have no hook surface ([openai/codex#18491](https://github.com/openai/codex/issues/18491)) so Read/Grep caps for Codex are soft hints in AGENTS.md, not hard injections.
136
136
 
137
137
  ### Secondary wins (not compression, but token-saving)
138
138
 
@@ -158,29 +158,29 @@ Measured on macOS (Apple Silicon). Token count = `chars / 4` (matches Claude's ~
158
158
 
159
159
  | Scenario | Before | After | Reduction | Latency |
160
160
  |----------|--------|-------|-----------|---------|
161
- | `summarize_huge` | 82,257 tk | 420 tk | **-99%** | 56.0 ms |
162
- | `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 205 µs |
163
- | `high_context_adaptive` | 4,418 tk | 52 tk | **-99%** | 797 µs |
161
+ | `summarize_huge` | 82,257 tk | 420 tk | **-99%** | 56.6 ms |
162
+ | `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 213 µs |
163
+ | `high_context_adaptive` | 4,418 tk | 52 tk | **-99%** | 836 µs |
164
164
  | `ps_aux` | 40,373 tk | 2,352 tk | **-94%** | 2.8 ms |
165
- | `git_log_200` | 2,692 tk | 289 tk | **-89%** | 208 µs |
166
- | `tsc_errors` | 731 tk | 101 tk | **-86%** | 31 µs |
167
- | `cargo_build_noisy` | 2,106 tk | 452 tk | **-79%** | 242 µs |
168
- | `docker_logs` | 665 tk | 186 tk | **-72%** | 47 µs |
169
- | `find_deep` | 424 tk | 134 tk | **-68%** | 87 µs |
165
+ | `git_log_200` | 2,692 tk | 289 tk | **-89%** | 222 µs |
166
+ | `tsc_errors` | 731 tk | 101 tk | **-86%** | 32 µs |
167
+ | `cargo_build_noisy` | 2,106 tk | 452 tk | **-79%** | 253 µs |
168
+ | `docker_logs` | 665 tk | 186 tk | **-72%** | 50 µs |
169
+ | `find_deep` | 424 tk | 134 tk | **-68%** | 85 µs |
170
170
  | `git_status` | 50 tk | 16 tk | **-68%** | 11 µs |
171
- | `verbose_app_log` | 4,957 tk | 1,991 tk | **-60%** | 291 µs |
171
+ | `verbose_app_log` | 4,957 tk | 1,991 tk | **-60%** | 300 µs |
172
172
  | `npm_install` | 524 tk | 232 tk | **-56%** | 47 µs |
173
- | `crosscall_redundancy_3x` | 486 tk | 241 tk | **-50%** | 51.9 ms |
174
- | `ls_la` | 1,782 tk | 886 tk | **-50%** | 212 µs |
175
- | `env_dump` | 441 tk | 287 tk | **-35%** | 23 µs |
173
+ | `crosscall_redundancy_3x` | 486 tk | 241 tk | **-50%** | 51.7 ms |
174
+ | `ls_la` | 1,782 tk | 886 tk | **-50%** | 221 µs |
175
+ | `env_dump` | 441 tk | 287 tk | **-35%** | 24 µs |
176
176
  | `git_copilot` | 640 tk | 421 tk | **-34%** | 117 µs |
177
- | `agent_heavy` | 2,306 tk | 1,564 tk | **-32%** | 390 µs |
178
- | `md_prose` | 187 tk | 138 tk | **-26%** | 777 µs |
179
- | `md_claude_md` | 316 tk | 247 tk | **-22%** | 1.1 ms |
180
- | `claude_md_overhead` | 717 tk | 649 tk | **-9%** | 24 µs |
181
- | `git_diff` | 502 tk | 497 tk | **-1%** | 42 µs |
177
+ | `agent_heavy` | 2,306 tk | 1,564 tk | **-32%** | 381 µs |
178
+ | `md_prose` | 187 tk | 138 tk | **-26%** | 685 µs |
179
+ | `md_claude_md` | 316 tk | 247 tk | **-22%** | 1.2 ms |
180
+ | `claude_md_overhead` | 717 tk | 649 tk | **-9%** | 23 µs |
181
+ | `git_diff` | 502 tk | 497 tk | **-1%** | 44 µs |
182
182
  | `state_first_simulation` | 182 tk | 181 tk | **-1%** | 5 µs |
183
- | `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** | 27 µs |
183
+ | `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** | 28 µs |
184
184
 
185
185
  ### Aggregate
186
186
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "squeez",
3
- "version": "1.11.2",
3
+ "version": "1.12.0",
4
4
  "description": "Hook-based token compressor for Claude Code, Copilot CLI, and OpenCode. Compresses bash output up to 95%, collapses redundant calls, injects caveman persona.",
5
5
  "keywords": [
6
6
  "claude-code",