Releases: firstops-dev/whittle
Releases · firstops-dev/whittle
Release list
v0.3.1
Changelog
- 2850e87 watch: live unified feed of router verdicts + compression carves (#11)
- a3ae788 readme: npm install channel, live and stranger-tested (#10)
- 2927be5 npm: npx distribution channel alongside go install and brew (#9)
- 8232c58 readme: one-line headline; add social preview image (#8)
- dcf1f09 Docs: Why whittle covers both surfaces; policy authoring guide (#7)
- aedb50d README: quick-links, sharper hero, comparison table (marketing review) (#6)
v0.3.0
Changelog
- b0ac535 Designed banner hero + README truth fixes (#5)
- af959fe Docs refresh + zero-config smart routing (#4)
- 6cf7aad Router: out-of-the-box policies, battle-tested reconciliation, calibrated signals, one design doc (#3)
- a067f46 Add
whittle route: an opt-in local model router with vSR-aligned smart mode (#2) - 55ead8a Shape-preserving hook replacements, uncapped updatedToolOutput, 100k prose ceiling (#1)
- 7108174 daemon: self-heal the Claude Code hook — re-assert the PostToolUse entry on startup + every 5min if it vanishes (we observed it get dropped externally, silently stopping compression); atomic settings writes; logged, never fights cleanup/stop; pinned by test
- 295ecc0 README: 'How it plugs in' mechanism paragraph up top (PostToolUse hook + local daemon, write-time, local-only) so readers grasp how whittle attaches before the deep-dive sections
- 8effa70 cli: whittle compress routes through the running daemon (matches the hook; prose works without WHITTLE_MODEL_URL), falls back to in-process when no daemon; -stats shows via=daemon|in-process
- 59ca8ca setup: warn when binary dir is not on PATH (go-install users hit 'command not found' after setup); README notes the fix + that brew avoids it
- 41b436c bench tier-3: add τ-bench eval (columnar structural gain +24-45% beyond compact JSON on multi-record results, all records reconstructed exactly); restructure README tier-3 as corroborating breadth (Salesforce 5k) + depth (τ-bench columnar) customer-service story
- bfab73a README tier-3: lead with token/context reduction (the product metric, compounds per turn); keep the ~3% cost as an honest downstream nuance, not the headline
- 59b8d77 bench tier-3: Salesforce customer-support real-world dataset (22% tool-output reduction, 0 measured info loss; 15,846/15,846 lossless + 0/120 blinded-judge panel; honest ~3% cost caveat) + README TL;DR
- aa03fc8 license: strip leading blank line so GitHub detects Apache-2.0
- 7d42b4d hygiene: SECURITY.md (fidelity/retrieval/fail-open as security-class), PR template with guarantee checklist
- eeb829a README: stats payoff as hero gif, compress mechanism in See-it; strip em dashes from CLI output (228, incl. stats dashboard); demo tapes reproducible
- 274d546 README: hero demo gif (vhs, reproducible from demo/whittle.tape) — noisy 144-line log compressed with both errors kept and noise marked
- fa49699 README release-polish: badges, See-it before/after demo, architecture sketch, Verify-it-yourself, consolidated Known limitations, Contributing block
- a5531b0 README audit fixes: 56KB figure, hook-cap qualifier on install claim, prose row labeled sidecar-dependent, systemd unit sample (CLI pointed at one that did not exist), version unified to 0.2.1 + goreleaser ldflags injection, MAE calibration harness checked in (bench/calibrate_tokens.py reproduces 8.2%)
- 391d55b README: remove em dashes
- 60e8b33 README: prose sidecar is installed/supervised by setup automatically — manual wiring applies only to library/serve-without-setup usage
- e50af57 example: executable pin of the README library snippet (ExampleNew runs in go test/CI)
- d249b6b README: Performance section cross-references the comparative latency (different corpora, different questions — absolutes vs side-by-side)
- 9d45f94 bench: category-split reduction (conversation vs bulk arrays, derived from sidebyside.json) + in-process latency comparison; names-neutral prose
- 69c143b bench: honest side-by-side on headroom's own generator data — headroom 41.8% (lossy defaults) vs whittle 36.5% (byte-exact lossless), 6/10 vs 4/10 rows; full methodology + reproduce script in SIDEBYSIDE.md
- 5a27f19 bench: tier-2 corpus_headroom wired into runner (10 files frozen from headroom's own generators, seed 42, pinned commit, PROVENANCE) — same SHA-integrity + baseline gating
- c3def32 benchmarks: tier-2 reflects the verified finding — headroom vendors no corpora; side-by-side will freeze their own generators' output (seeded, pinned, attributed)
- d87343c README: three-tier Benchmarks section (synthetic headline / headroom side-by-side pending / real-world placeholder)
v0.2.1
Changelog
- 3dded3f bench: runner + baseline + generated REPORT — routing/action/reduction verified against baseline with fixture SHA integrity; CI-wired
- f78bdbc logcompress: HTTP status phrases are not test summaries — '200 OK' matched the count-form and kept every health-check line (bench corpus, pinned)
- 48bc5bf bench: corpus fixtures must not be compilable module source (.go -> .go.txt)
- 9ef4055 detect: kv/config-line evidence in detectCode — raw YAML routed prose and was lossily compressed (bench corpus regression, pinned)
- 76d97d3 bench: corpus v1 — 17 files (synthetic json/log/terminal/markdown/prose + Apache-2.0 requests-derived code negatives incl. yesterday's misroute class), LICENSES.md
- a7500c2 plan: publish-ready order
- 4811a11 detect: snippet-shaped code evidence (dotted from-imports, block headers, decorators, bare assignments) — small partial code reads routed prose and were lossily compressed (auditor, requests/compat+sessions+models: 0.79-0.91 conf now vs 0.00)
v0.2.0
Changelog
- da5e252 gitignore dist (goreleaser artifacts)
- 1e3002a review fixes: post-hint invariant (emitted output strictly smaller on both axes, marginal wins go hint-less, alias spent only on emit); atomic index persist + never-reissue recovery; stats negative-clamp; retrieval logged only on success; MCP id coercion — all pinned as tests
- f598201 maintainer queue in PLAN; debt sweep: port comment, MCP visibility in status, store guarantee, README recovery framing
- ab07406 stats: restore humanInt helper
- 5740893 whittle stats v2: screenshot-grade dashboard — headline savings, 14-day carve sparkline, strategy bars, retrieval-rate honesty metric, --share mode; log retrievals
- 13a8c55 stats: server-side event log (the HTTP-hook switch had orphaned command-path logging) + session_id + retrieval id per record
- 1be5f3d ports: move daemon to 45871/45872 (unassigned range) — 8095/8096 collided with common local services
- 7a1dfed retrieval: content-addressed store + integer-alias hints on lossy strategies only + whittle_get MCP tool (registered at setup, removed at cleanup); /get endpoint; lossless paths emit no hint
- 4c90249 setup: unambiguous hook entry marker (url-based) — statusMessage substring failed to match, breaking dedupe/cleanup detection
- d2aadf9 hook over HTTP: type=http direct to daemon /hook (docs-verified); 10k cap applies to http too — guard + corrected docs
- bdc12c4 server: /hook endpoint — PostToolUse over HTTP (no stdout cap); settings switch pending docs verification
v0.1.0
Changelog
- 3317075 ci: gofmt, vet, build, test
- 891f193 sidecar: portable torch requirement (the +cpu pin was deploy-specific; broke macOS setup)
- 2ed177d P0.7: hook-output cap options doc
- 6f8156e maintainer phase 0: whittle stats (local savings loop), GUARANTEES.md, goreleaser+brew config, contributing/issue templates, execution plan
- fa60851 hook: docs-verified PostToolUse contract (updatedToolOutput, tool_output stdin, 10k output cap fail-open)
- a6120c2 one-command install: whittle setup/status/stop/cleanup + embedded sidecar + launchd + Claude Code hook
- 9210292 positioning: precise claims — read-time proxies (verified), not 'gateways'; retrieval-loop framing
- a52faca positioning: write-time-vs-read-time thesis, benchmarks, headroom attribution (NOTICE)
- a5069a2 whittle 0.1.0: content-aware, fail-open compression for agent tool outputs