squeez 1.5.1 → 1.6.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 +144 -1
  2. package/README.md +23 -23
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,148 @@ This project uses [Semantic Versioning](https://semver.org/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.5.2] - 2026-04-18
11
+
12
+ ### Added
13
+ - feat(setup): adapter-driven setup/uninstall across all hosts (#58)
14
+ - feat(hosts): Codex CLI adapter (hooks + AGENTS.md soft-budget) (#55)
15
+ - feat(hosts): Gemini CLI adapter (BeforeTool/AfterTool hooks) (#52)
16
+ - feat(hosts): full-parity OpenCode adapter + plugin rewrite (#48)
17
+ - wrangler, playwright, next build handlers + bun/drizzle routing (#34)
18
+ - feat(opus47): adapt squeez for Opus 4.7 tokenizer and xhigh effort
19
+ - feat(setup): auto-detect lang from CLAUDE.md/locale + stderr update notification (#29)
20
+ - v0.3.0 — token economy, pt-BR caveman, aggressive defaults, full hook install
21
+ - structured session memory, cross-session search, error snippets, configurable tunables
22
+ - feat(setup): create config.ini on first install
23
+ - feat(i18n): locale-aware compress-md with pt-BR support (#25)
24
+ - fuzzy dedup, adaptive intensity, benign summarize, MCP server, temporal memory, protocol payload
25
+ - Windows setup via cargo/npm + squeez update fix
26
+ - feat(benchmark): add squeez benchmark command with 19-scenario test suite
27
+ - feat(ci): re-add promote-develop workflow with correct registration
28
+ - feat(init): inject persona into ~/.claude/CLAUDE.md on every session start
29
+ - feat(npm+crates): add npm package and publish jobs to release workflow
30
+ - feat(statusline): add statusline.sh to repo; install via install.sh; show all-time stats
31
+ - compress-md, caveman persona, squeez update, track-result hook
32
+ - feat(context): adaptive intensity always picks Ultra
33
+ - feat(context): aggressive token-engine — adaptive intensity, redundancy cache, summarize fallback
34
+ - add Windows support to install.sh and release.yml
35
+ - add home_dir() helper with USERPROFILE fallback for Windows
36
+ - cross-platform wrap — shell_command() helper, cfg(unix) signal gates, libc unix-only
37
+ - add GitHub Copilot CLI support
38
+ - add OpenCode plugin for automatic Bash compression
39
+ - add universal installer support for macOS and Linux
40
+ - expand benchmarks, edge-case tests, and README polish
41
+ - add SessionStart + PostToolUse hooks, update install.sh and README
42
+ - wrap.rs — artifact capture (files/errors/git/tests) + compact warning header
43
+ - squeez init — session start, prior memory banner, session finalization (TDD)
44
+ - squeez track — token accumulation + session event log (TDD)
45
+ - memory.rs — Summary, read_last_n, write_summary, prune_old (TDD)
46
+ - session.rs — CurrentSession, append_event, date math (TDD)
47
+ - json_util helpers + compact_threshold_tokens, memory_retention_days config
48
+ - benchmark system — all fixtures passing
49
+ - build.sh compiles + installs squeez, registers hook
50
+ - PreToolUse hook script
51
+ - fs and runtime handlers — all handler tests passing
52
+ - cloud, database, network handlers (TDD)
53
+ - typescript and build handlers (TDD)
54
+ - package_mgr and test_runner handlers (TDD)
55
+ - git and docker handlers (TDD)
56
+ - wrap subcommand — sh -c, 120s timeout, signal forwarding, bypass check
57
+ - Handler trait with cmd+config, generic handler, command router, filter_stdin
58
+ - truncation strategy (TDD) — all strategy tests passing
59
+ - grouping strategy (TDD)
60
+ - dedup strategy (TDD)
61
+ - smart_filter strategy with node_modules frame removal (TDD)
62
+ - implement config.ini parser (TDD)
63
+
64
+ ### Changed
65
+ - chore(release): bump version to 1.5.2 [squeez-release-bot]
66
+ - chore(release): bump version to 1.5.1 [squeez-release-bot]
67
+ - docs: five-host matrix + squeez setup/uninstall flow (#63)
68
+ - refactor(install): delegate host registration to 'squeez setup' (#60)
69
+ - chore(release): bump version to 1.5.0 [squeez-release-bot]
70
+ - chore(release): bump version to 1.4.0 [squeez-release-bot]
71
+ - chore(release): bump version to 1.3.0 [squeez-release-bot]
72
+ - chore(release): bump version to 1.2.0 [squeez-release-bot]
73
+ - chore(release): bump version to 1.1.0 [squeez-release-bot]
74
+ - chore(release): bump version to 1.0.0 [skip release]
75
+ - refactor(hosts): extract HostAdapter trait + migrate Claude Code and Copilot (#42)
76
+ - ci: conventional-commit-driven auto-release (#40)
77
+ - chore(gov): issue-form templates + refined PR template (#39)
78
+ - docs: update changelog and benchmarks for v0.4.1 [skip release] (#33)
79
+ - chore(release): bump version to 0.4.1
80
+ - chore(release): bump version to 0.4.0
81
+ - docs: update changelog and benchmarks for v0.3.2 [skip release] (#30)
82
+ - chore: bump version to 0.3.2
83
+ - docs: add shields.io badge for changelog link
84
+ - chore: bump version to 0.3.1
85
+ - chore: bump version to 0.2.3
86
+ - docs: update README with 11 MCP tools, structured memory, and advanced tunables
87
+ - chore: bump version to 0.2.2
88
+ - docs: rewrite README with full install instructions (curl/npm/cargo) and all commands
89
+ - chore: refresh bench/report.md from latest run [skip release]
90
+ - chore(ci): remove promote-develop workflow (re-adding to fix broken registration)
91
+ - chore: bump version to 0.2.1 + auto-release on merge to main [skip release]
92
+ - chore: bump version to 0.2.0; add Cargo.toml metadata
93
+ - ci: PR template, linked-issue enforcement, no-claude-trailer check
94
+ - docs: update README with PR1+PR2 features, fresh benchmarks, changelog
95
+ - ci: auto-delete branches after PR merge
96
+ - docs: update Windows installation instructions and prerequisites in README
97
+ - docs: add Windows support and Rust install instructions to README
98
+ - refactor: use session::home_dir() in config and init (Windows compat)
99
+ - ci: trigger promote workflow (test)
100
+ - ci(workflow): avoid failing promote job when PR creation is not permitted; add PR_CREATION_TOKEN guidance
101
+ - docs(readme): add changelog, contribution workflow, and benchmark notes
102
+ - ci(workflow): create/update PR from develop to main on push
103
+ - chore: add .worktrees/ to gitignore
104
+ - chore: add docs/ to gitignore (local design specs)
105
+ - docs: update README for GitHub Copilot CLI support
106
+ - security: fix remaining LOW findings in wrap.rs
107
+ - security: fix 2 follow-up findings from second audit
108
+ - security: fix all 8 findings from security audit
109
+ - ci: build and install binary before running benchmarks
110
+ - chore: add GitHub sponsor button
111
+ - chore: ignore .omc/ directory, remove from tracking
112
+ - chore: update benchmark report (7/7 passing)
113
+ - docs: update README — real benchmarks, Phase 2 config, how it works
114
+ - style: cargo fmt on session.rs and test_session.rs
115
+ - chore: open source files — README, LICENSE, CI/release workflows, install.sh
116
+ - chore: scaffold squeez Rust project
117
+
118
+ ### Fixed
119
+ - fix(ci): push release docs directly to main (loop-safe) (#68)
120
+ - back Copilot BUDGET_HARD with Read/Grep hook + update upstream refs (#65)
121
+ - fix(ci): startsWith guard for auto-release recursion (#46)
122
+ - fix(ci): tighten auto-release bump detection + fix tag push (#44)
123
+ - fix(ci): add --allow-dirty to cargo publish for Cargo.lock changes
124
+ - fix(ci): skip publish gracefully when version already exists on crates.io/npm
125
+ - fix(ci): run update-docs even if publish jobs fail (already published)
126
+ - fix(ci): continue-on-error for publish jobs so update-docs always runs
127
+ - fix(ci): add pull-requests write permission to update-docs job
128
+ - fix(update): cargo-managed self-update + Windows deferred install + session update check (#27)
129
+ - fix(ci): update-docs creates PR instead of pushing directly to protected main
130
+ - fix(npm): copy README.md into npm package before publish; add readme field
131
+ - fix(ci): add toolchain: stable to all dtolnay/rust-toolchain steps
132
+ - fix(ci): handle no previous tags in generate-changelog.sh (pipefail + grep -v)
133
+ - fix(ci): dispatch release.yml from auto-release to bypass GITHUB_TOKEN chain limit [skip release]
134
+ - fix(ci): fix flaky test tmp dir collision + simplify auto-release
135
+ - fix(bench): exclude synthetic fixtures from filter-mode bench/run.sh
136
+ - fix(ci): remove secrets in step if-conditions — check token inside script instead
137
+ - fix(ci): rename promote-develop → promote-to-main to fix broken workflow registration
138
+ - fix(ci): bump github-script to v7 in promote-develop to force workflow re-registration
139
+ - fix(compress_md): use byte slice comparison to avoid UTF-8 char boundary panic
140
+ - fix(statusline): remove Ctx% — show only squeez compression metrics
141
+ - fix(statusline): green ✓, proper capitalization, real-time context %, all metrics
142
+ - resolve gap analysis — new handlers, wider redundancy window, token budget
143
+ - install.sh — clarify PostToolUse no-matcher intent, guard version echo
144
+ - wrap.rs — safe git hex check, O(n) dedup, full cmd in event log
145
+ - use ends_with for files_committed check in init finalize
146
+ - json_util — guard extract_u64 empty digit, add json_util test coverage
147
+ - add pre-flight binary check to bench/run.sh
148
+ - atomic settings.json write + uninstall safety guards
149
+ - harden pretooluse hook (shlex.quote, error handling, single path source)
150
+ - wrap — process_group(0) for correct signal forwarding, tighten is_streaming
151
+
10
152
  ## [0.4.1] - 2026-04-16
11
153
 
12
154
  ### Added
@@ -346,7 +488,7 @@ This project uses [Semantic Versioning](https://semver.org/).
346
488
  - Wider redundancy window, token budget improvements
347
489
  - CI: PR template, linked-issue enforcement
348
490
 
349
- [Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v0.4.1...HEAD
491
+ [Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.5.2...HEAD
350
492
  [0.3.0]: https://github.com/claudioemmanuel/squeez/compare/v0.2.3...v0.3.0
351
493
  [0.2.3]: https://github.com/claudioemmanuel/squeez/compare/v0.2.2...v0.2.3
352
494
  [0.2.2]: https://github.com/claudioemmanuel/squeez/compare/v0.2.1...v0.2.2
@@ -354,3 +496,4 @@ This project uses [Semantic Versioning](https://semver.org/).
354
496
  [0.2.0]: https://github.com/claudioemmanuel/squeez/releases/tag/v0.2.0
355
497
  [0.3.2]: https://github.com/claudioemmanuel/squeez/releases/tag/v0.3.2
356
498
  [0.4.1]: https://github.com/claudioemmanuel/squeez/releases/tag/v0.4.1
499
+ [1.5.2]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.5.2
package/README.md CHANGED
@@ -114,29 +114,29 @@ Measured on macOS (Apple Silicon). Token count = `chars / 4` (matches Claude's ~
114
114
 
115
115
  | Scenario | Before | After | Reduction | Latency |
116
116
  |----------|--------|-------|-----------|---------|
117
- | `summarize_huge` | 82,257 tk | 420 tk | **-99%** | 55.7 ms |
118
- | `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 191 µs |
119
- | `high_context_adaptive` | 4,418 tk | 52 tk | **-99%** | 768 µs |
120
- | `ps_aux` | 40,373 tk | 2,352 tk | **-94%** | 2.2 ms |
121
- | `git_log_200` | 2,692 tk | 289 tk | **-89%** | 159 µs |
122
- | `tsc_errors` | 731 tk | 101 tk | **-86%** | 26 µs |
123
- | `cargo_build_noisy` | 2,106 tk | 452 tk | **-79%** | 194 µs |
124
- | `docker_logs` | 665 tk | 186 tk | **-72%** | 39 µs |
125
- | `find_deep` | 424 tk | 134 tk | **-68%** | 70 µs |
126
- | `git_status` | 50 tk | 16 tk | **-68%** | 10 µs |
127
- | `state_first_simulation` | 182 tk | 69 tk | **-62%** | 18 µs |
128
- | `verbose_app_log` | 4,957 tk | 1,991 tk | **-60%** | 226 µs |
129
- | `npm_install` | 524 tk | 232 tk | **-56%** | 37 µs |
130
- | `claude_md_overhead` | 717 tk | 318 tk | **-56%** | 80 µs |
117
+ | `summarize_huge` | 82,257 tk | 420 tk | **-99%** | 55.2 ms |
118
+ | `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 208 µs |
119
+ | `high_context_adaptive` | 4,418 tk | 52 tk | **-99%** | 1.5 ms |
120
+ | `ps_aux` | 40,373 tk | 2,352 tk | **-94%** | 2.7 ms |
121
+ | `git_log_200` | 2,692 tk | 289 tk | **-89%** | 206 µ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%** | 76 µs |
126
+ | `git_status` | 50 tk | 16 tk | **-68%** | 12 µs |
127
+ | `state_first_simulation` | 182 tk | 69 tk | **-62%** | 16 µs |
128
+ | `verbose_app_log` | 4,957 tk | 1,991 tk | **-60%** | 289 µs |
129
+ | `npm_install` | 524 tk | 232 tk | **-56%** | 47 µs |
130
+ | `claude_md_overhead` | 717 tk | 318 tk | **-56%** | 76 µs |
131
131
  | `crosscall_redundancy_3x` | 486 tk | 241 tk | **-50%** | 51.5 ms |
132
- | `ls_la` | 1,782 tk | 886 tk | **-50%** | 159 µs |
133
- | `env_dump` | 441 tk | 287 tk | **-35%** | 19 µs |
134
- | `git_copilot` | 640 tk | 421 tk | **-34%** | 85 µs |
135
- | `agent_heavy` | 2,306 tk | 1,564 tk | **-32%** | 303 µs |
136
- | `md_prose` | 187 tk | 138 tk | **-26%** | 555 µs |
137
- | `md_claude_md` | 316 tk | 247 tk | **-22%** | 881 µs |
138
- | `git_diff` | 502 tk | 497 tk | **-1%** | 35 µs |
139
- | `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** | 26 µs |
132
+ | `ls_la` | 1,782 tk | 886 tk | **-50%** | 201 µs |
133
+ | `env_dump` | 441 tk | 287 tk | **-35%** | 23 µs |
134
+ | `git_copilot` | 640 tk | 421 tk | **-34%** | 96 µs |
135
+ | `agent_heavy` | 2,306 tk | 1,564 tk | **-32%** | 458 µs |
136
+ | `md_prose` | 187 tk | 138 tk | **-26%** | 665 µs |
137
+ | `md_claude_md` | 316 tk | 247 tk | **-22%** | 1.2 ms |
138
+ | `git_diff` | 502 tk | 497 tk | **-1%** | 42 µs |
139
+ | `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** | 28 µs |
140
140
 
141
141
  ### Aggregate
142
142
 
@@ -147,7 +147,7 @@ Measured on macOS (Apple Silicon). Token count = `chars / 4` (matches Claude's ~
147
147
  | Markdown / context files | **-23.5%** |
148
148
  | Wrap / cross-call engine | **-99.2%** |
149
149
  | Quality (signal terms preserved) | **23 / 23 pass** |
150
- | Latency p50 (filter mode) | **4.9 ms** |
150
+ | Latency p50 (filter mode) | **5.0 ms** |
151
151
  | Latency p95 (incl. wrap/summarize) | **51 ms** |
152
152
 
153
153
  ### 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.5.1",
3
+ "version": "1.6.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",