squeez 1.7.5 → 1.7.7
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.
- package/CHANGELOG.md +34 -1
- package/README.md +22 -22
- package/install.js +24 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,37 @@ conventional commit messages on `main`.
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [1.7.6] - 2026-04-21
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
- chore(release): bump version to 1.7.6 [squeez-release-bot]
|
|
16
|
+
- docs: update changelog and benchmarks for v1.7.5
|
|
17
|
+
- chore(release): bump version to 1.7.5 [squeez-release-bot]
|
|
18
|
+
- docs: update changelog and benchmarks for v1.7.4
|
|
19
|
+
- chore(release): bump version to 1.7.4 [squeez-release-bot]
|
|
20
|
+
- perf: O(log n) refactor — tail read, offset index, single-pass parser
|
|
21
|
+
- docs: update changelog and benchmarks for v1.7.3
|
|
22
|
+
- chore(release): bump version to 1.7.3 [squeez-release-bot]
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
- fix(hosts): preserve user settings.json when existing JSON fails to parse (#83)
|
|
26
|
+
- prevent OOM from unbounded file reads + data integrity fixes
|
|
27
|
+
- fix(ci): use native ubuntu-24.04-arm runner for aarch64 build
|
|
28
|
+
|
|
29
|
+
## [1.7.5] - 2026-04-19
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
- chore(release): bump version to 1.7.5 [squeez-release-bot]
|
|
33
|
+
- docs: update changelog and benchmarks for v1.7.4
|
|
34
|
+
- chore(release): bump version to 1.7.4 [squeez-release-bot]
|
|
35
|
+
- perf: O(log n) refactor — tail read, offset index, single-pass parser
|
|
36
|
+
- docs: update changelog and benchmarks for v1.7.3
|
|
37
|
+
- chore(release): bump version to 1.7.3 [squeez-release-bot]
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
- prevent OOM from unbounded file reads + data integrity fixes
|
|
41
|
+
- fix(ci): use native ubuntu-24.04-arm runner for aarch64 build
|
|
42
|
+
|
|
12
43
|
## [1.7.4] - 2026-04-19
|
|
13
44
|
|
|
14
45
|
### Changed
|
|
@@ -47,10 +78,12 @@ conventional commit messages on `main`.
|
|
|
47
78
|
## [1.5.1] and earlier
|
|
48
79
|
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.
|
|
49
80
|
|
|
50
|
-
[Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.7.
|
|
81
|
+
[Unreleased]: https://github.com/claudioemmanuel/squeez/compare/v1.7.6...HEAD
|
|
51
82
|
[1.7.0]: https://github.com/claudioemmanuel/squeez/compare/v1.6.1...v1.7.0
|
|
52
83
|
[1.6.1]: https://github.com/claudioemmanuel/squeez/compare/v1.6.0...v1.6.1
|
|
53
84
|
[1.6.0]: https://github.com/claudioemmanuel/squeez/compare/v1.5.2...v1.6.0
|
|
54
85
|
[1.5.2]: https://github.com/claudioemmanuel/squeez/releases/tag/v1.5.2
|
|
55
86
|
[1.7.3]: https://github.com/claudioemmanuel/squeez/compare/v1.7.2...v1.7.3
|
|
56
87
|
[1.7.4]: https://github.com/claudioemmanuel/squeez/compare/v1.7.2...v1.7.4
|
|
88
|
+
[1.7.5]: https://github.com/claudioemmanuel/squeez/compare/v1.7.2...v1.7.5
|
|
89
|
+
[1.7.6]: https://github.com/claudioemmanuel/squeez/compare/v1.7.2...v1.7.6
|
package/README.md
CHANGED
|
@@ -119,29 +119,29 @@ Measured on macOS (Apple Silicon). Token count = `chars / 4` (matches Claude's ~
|
|
|
119
119
|
|
|
120
120
|
| Scenario | Before | After | Reduction | Latency |
|
|
121
121
|
|----------|--------|-------|-----------|---------|
|
|
122
|
-
| `summarize_huge` | 82,257 tk | 420 tk | **-99%** |
|
|
123
|
-
| `repetitive_output` | 4,692 tk | 37 tk | **-99%** |
|
|
124
|
-
| `high_context_adaptive` | 4,418 tk | 52 tk | **-99%** |
|
|
125
|
-
| `ps_aux` | 40,373 tk | 2,352 tk | **-94%** | 2.
|
|
126
|
-
| `git_log_200` | 2,692 tk | 289 tk | **-89%** |
|
|
127
|
-
| `tsc_errors` | 731 tk | 101 tk | **-86%** |
|
|
128
|
-
| `cargo_build_noisy` | 2,106 tk | 452 tk | **-79%** |
|
|
129
|
-
| `docker_logs` | 665 tk | 186 tk | **-72%** |
|
|
130
|
-
| `find_deep` | 424 tk | 134 tk | **-68%** |
|
|
131
|
-
| `git_status` | 50 tk | 16 tk | **-68%** |
|
|
132
|
-
| `state_first_simulation` | 182 tk | 69 tk | **-62%** |
|
|
133
|
-
| `verbose_app_log` | 4,957 tk | 1,991 tk | **-60%** |
|
|
134
|
-
| `npm_install` | 524 tk | 232 tk | **-56%** |
|
|
135
|
-
| `claude_md_overhead` | 717 tk | 318 tk | **-56%** |
|
|
122
|
+
| `summarize_huge` | 82,257 tk | 420 tk | **-99%** | 55.3 ms |
|
|
123
|
+
| `repetitive_output` | 4,692 tk | 37 tk | **-99%** | 194 µs |
|
|
124
|
+
| `high_context_adaptive` | 4,418 tk | 52 tk | **-99%** | 764 µs |
|
|
125
|
+
| `ps_aux` | 40,373 tk | 2,352 tk | **-94%** | 2.2 ms |
|
|
126
|
+
| `git_log_200` | 2,692 tk | 289 tk | **-89%** | 166 µs |
|
|
127
|
+
| `tsc_errors` | 731 tk | 101 tk | **-86%** | 27 µs |
|
|
128
|
+
| `cargo_build_noisy` | 2,106 tk | 452 tk | **-79%** | 229 µs |
|
|
129
|
+
| `docker_logs` | 665 tk | 186 tk | **-72%** | 39 µs |
|
|
130
|
+
| `find_deep` | 424 tk | 134 tk | **-68%** | 72 µs |
|
|
131
|
+
| `git_status` | 50 tk | 16 tk | **-68%** | 10 µs |
|
|
132
|
+
| `state_first_simulation` | 182 tk | 69 tk | **-62%** | 14 µs |
|
|
133
|
+
| `verbose_app_log` | 4,957 tk | 1,991 tk | **-60%** | 231 µs |
|
|
134
|
+
| `npm_install` | 524 tk | 232 tk | **-56%** | 38 µs |
|
|
135
|
+
| `claude_md_overhead` | 717 tk | 318 tk | **-56%** | 209 µs |
|
|
136
136
|
| `crosscall_redundancy_3x` | 486 tk | 241 tk | **-50%** | 51.2 ms |
|
|
137
|
-
| `ls_la` | 1,782 tk | 886 tk | **-50%** |
|
|
138
|
-
| `env_dump` | 441 tk | 287 tk | **-35%** |
|
|
139
|
-
| `git_copilot` | 640 tk | 421 tk | **-34%** |
|
|
140
|
-
| `agent_heavy` | 2,306 tk | 1,564 tk | **-32%** |
|
|
141
|
-
| `md_prose` | 187 tk | 138 tk | **-26%** |
|
|
142
|
-
| `md_claude_md` | 316 tk | 247 tk | **-22%** |
|
|
143
|
-
| `git_diff` | 502 tk | 497 tk | **-1%** |
|
|
144
|
-
| `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** |
|
|
137
|
+
| `ls_la` | 1,782 tk | 886 tk | **-50%** | 163 µs |
|
|
138
|
+
| `env_dump` | 441 tk | 287 tk | **-35%** | 19 µs |
|
|
139
|
+
| `git_copilot` | 640 tk | 421 tk | **-34%** | 87 µs |
|
|
140
|
+
| `agent_heavy` | 2,306 tk | 1,564 tk | **-32%** | 320 µs |
|
|
141
|
+
| `md_prose` | 187 tk | 138 tk | **-26%** | 564 µs |
|
|
142
|
+
| `md_claude_md` | 316 tk | 247 tk | **-22%** | 919 µs |
|
|
143
|
+
| `git_diff` | 502 tk | 497 tk | **-1%** | 35 µs |
|
|
144
|
+
| `kubectl_pods` | 1,513 tk | 1,513 tk | **-0%** | 25 µs |
|
|
145
145
|
|
|
146
146
|
### Aggregate
|
|
147
147
|
|
package/install.js
CHANGED
|
@@ -111,11 +111,28 @@ async function main() {
|
|
|
111
111
|
function registerHooks() {
|
|
112
112
|
const settingsPath = path.join(os.homedir(), '.claude', 'settings.json');
|
|
113
113
|
let settings = {};
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
114
|
+
const fileExisted = fs.existsSync(settingsPath);
|
|
115
|
+
if (fileExisted) {
|
|
116
|
+
let raw;
|
|
117
|
+
try {
|
|
118
|
+
raw = fs.readFileSync(settingsPath, 'utf8');
|
|
119
|
+
if (raw.charCodeAt(0) === 0xFEFF) raw = raw.slice(1); // strip BOM
|
|
120
|
+
} catch (err) {
|
|
121
|
+
warn(`could not read ${settingsPath}: ${err.message} — skipping hook registration.`);
|
|
122
|
+
return;
|
|
117
123
|
}
|
|
118
|
-
|
|
124
|
+
try {
|
|
125
|
+
settings = JSON.parse(raw);
|
|
126
|
+
} catch (err) {
|
|
127
|
+
warn(`refusing to overwrite ${settingsPath}: could not parse existing JSON (${err.message}).`);
|
|
128
|
+
warn(`fix or remove the file, then re-run: squeez setup`);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (typeof settings !== 'object' || settings === null || Array.isArray(settings)) {
|
|
132
|
+
warn(`refusing to overwrite ${settingsPath}: top-level value is not a JSON object.`);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
119
136
|
|
|
120
137
|
let changed = false;
|
|
121
138
|
|
|
@@ -153,6 +170,9 @@ function registerHooks() {
|
|
|
153
170
|
|
|
154
171
|
if (changed) {
|
|
155
172
|
try {
|
|
173
|
+
if (fileExisted) {
|
|
174
|
+
try { fs.copyFileSync(settingsPath, settingsPath + '.bak'); } catch (_) {}
|
|
175
|
+
}
|
|
156
176
|
fs.writeFileSync(settingsPath + '.tmp', JSON.stringify(settings, null, 2));
|
|
157
177
|
fs.renameSync(settingsPath + '.tmp', settingsPath);
|
|
158
178
|
log('Claude Code hooks registered.');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "squeez",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.7",
|
|
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",
|