chore: release 0.3.0

Version bump 0.2.1 -> 0.3.0 and CHANGELOG for the page-ceiling, dashboard
transparency, honest-savings, and code-review-fix work on this branch.
This commit is contained in:
teamchong
2026-06-17 10:01:33 -04:00
parent ad7ef7c1ac
commit a64768bc4e
2 changed files with 66 additions and 1 deletions
+65
View File
@@ -0,0 +1,65 @@
# Changelog
All notable changes to pxpipe are documented here. This project adheres to
[Semantic Versioning](https://semver.org/) (pre-1.0: minor = features /
behavioral changes, patch = fixes).
## 0.3.0 — 2026-06-17
Render-sizing overhaul, dashboard transparency, honest savings accounting, and a
multi-agent code review with five confirmed fixes. Reviewed at extra-high recall
(10 finder angles → verify → sweep).
### Changed
- **Render page ceiling raised to ~1932×1932.** Fable 5 / Opus 4.8 accept images
up to 2576 px long edge / 4784 visual tokens, but a request with >20 images
(pxpipe always sends many) is held to the stricter ≤2000 px/side rule — so the
real ceiling is ~1932×1932 (1928×1928 = 69×69 = 4761 tokens). `MAX_HEIGHT_PX`
1568→1932; dense tool/history pages now `DENSE_CONTENT_COLS=384` /
`DENSE_CONTENT_CHARS_PER_IMAGE=92160` (1928×1928 full page) — fewer image
blocks at the same OCR-validated 5×8 cell. The static slab is unchanged
(313 cols / 1573×1280). Pages never trip a server-side downscale.
- **Opus is OFF by default.** Production scope defaults to **Fable-5 only**;
Opus 4.8/4.7 are opt-in (they read imaged content at a measurable tax — see
FINDINGS.md). Opt in via `PXPIPE_MODELS` or the dashboard chips.
- **Honest savings accounting.** Per-turn/session savings are the real
`baseline_eff actual_eff` with **no ≥0 floor** — a net-losing turn (e.g. a
cache_create-heavy image rewrite) now reports the real loss instead of a
fabricated 0. (Dashboard renders negatives explicitly.)
### Added
- **Dashboard "how your context works" panel** — per-request token flow
(as-text → real) + the exact-char breakdown of what became images + a gallery
of every rendered page, reached via a **"view"** link on each recent-requests
row.
- **Flexible "compress models" chips** — the toggle set is the union of a model
catalog (Fable 5, Opus 4.8/4.7, Sonnet 4.6, Haiku 4.5), the `PXPIPE_MODELS`
env scope, and the currently-active scope, so any env-enabled model stays
toggleable (off ↔ on). Runtime-only override of the compress scope.
- **Demos** — `demo/cost-ab/` (cost A/B on a real coding task) and
`demo/effective-context/` (recall-at-scale needle test), each with a model
arg: defaults to Fable, `a.sh opus` to override. Plus `eval/ab/` token-savings
scripts.
### Fixed (from the code review)
- **Tool_result over-truncation (regression):** the paging/break-even gate and
`truncateForBudget` predicted against the slab geometry (313 cols / 159 rows)
while the dense renderer emits 384 cols / 240 rows — so large tool_results
were truncated far earlier than the 10-image cap required, silently dropping
output that would have rendered. The gate, paging budget, and image-count
estimate now price the same page the renderer produces.
- **Garbled session headline:** a net-losing session showed "-7% fewer tokens";
now phrased honestly as "N% more tokens".
- **Context-map "view" mis-resolution:** `contextHistory` capped at 30 while the
recent table showed 50 rows, so older rows' "view" links silently showed the
*latest* request's breakdown. Caps aligned; an evicted/unrecorded request now
shows an explicit "no longer available" message instead of wrong data.
- **Multi-col token cap:** the multi-col width ceiling now respects the 4784
visual-token limit at full page height (was bounded only by the 2000 px side
limit, which could produce a 4968-token page that the API rejects).
- **Doc/code contradictions:** `baseline.ts` and caller comments no longer claim
a ≥0 clamp the code intentionally doesn't apply.
### Docs
- Rewrote `docs/RENDER_SIZING.md` and updated `docs/TRANSFORM_INFO.md`,
`README.md`, and in-code comments for the new ceiling and limits.
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "pxpipe-proxy",
"version": "0.2.1",
"version": "0.3.0",
"description": "Token-saving proxy for Claude Code: renders bulky context (system prompt, tool docs, old history) as dense PNGs to cut input tokens. Runs on Node and Cloudflare Workers.",
"type": "module",
"bin": {