Skip to content

Commit c41e51c

Browse files
committed
docs(release): correct the 1.3.0 changelog and surface opt-in flags in the README
- Consolidate the two Grok changelog entries: describe the net shipped profile (stock 5x8 white AA + in-image IDS), not the 9x12 cell that never shipped in a tagged release; split the universal IDS block / factsheet-budget / residual gate into their own feat(render) entry. - Add the two $0 eval harnesses (grok-density, guards-3arm ablation) to the log. - README: an "Opt-in flags" note for OMNIGLYPH_GUARD_SECRETS, KEEP_SYSTEM_TEXT, and the fail-closed Grok opt-in (English-only; 41-catalog parity unaffected).
1 parent cac0a91 commit c41e51c

2 files changed

Lines changed: 37 additions & 27 deletions

File tree

CHANGELOG.md

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,28 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) · semantic ver
3232
upstream: 2.6% refusals on reminder-imaged requests vs 0% uncompressed).
3333
(thanks @adrade2)
3434
- **feat(grok):** opt-in support for xAI **Grok** on the OpenAI-compatible wire.
35-
Grok renders at an effective 9×12 cell (denser than the 5×8 default) with the
36-
verbatim fact-sheet, is priced by a measured ~1000 tokens/megapixel model and
37-
xAI cache/output rates, and stays **fail-closed**: even in `OMNIGLYPH_MODELS`
38-
it is text-only until an operator explicitly acks the risk via
39-
`OMNIGLYPH_UNVERIFIED_MODELS=grok-4.5` — pending OmniGlyph's own reading
40-
receipt. The OpenAI-wire profile resolver is now provider-neutral and accepts
41-
the `OMNIGLYPH_MODEL_PROFILES` env (legacy `OMNIGLYPH_GPT_PROFILES` still
42-
works).
35+
Grok renders at **stock Spleen 5×8 on white AA** — no grid, 152-col strip
36+
(768px short-side floor), short 512px pages — with an in-image **IDS block**
37+
beside the verbatim fact-sheet (the dense 9×12 cell confabulated exact IDs in
38+
measurement; white 5×8 + IDS is the stable exact-recall recipe). Grok is
39+
priced by a measured ~1000 tokens/megapixel model and xAI cache/output rates,
40+
and stays **fail-closed**: even in `OMNIGLYPH_MODELS` it is text-only until an
41+
operator explicitly acks the risk via `OMNIGLYPH_UNVERIFIED_MODELS=grok-4.5`
42+
pending OmniGlyph's own reading receipt in `eval/grok-density`. The OpenAI-wire
43+
profile resolver is now provider-neutral and accepts the
44+
`OMNIGLYPH_MODEL_PROFILES` env (legacy `OMNIGLYPH_GPT_PROFILES` still works),
45+
with retunable-per-model render knobs (`inkDilate`/`inkDilateAxis`, `invert`,
46+
`colorByClass`, `classTick`, `paperGray`) that stay off in production.
47+
- **feat(render):** the in-image **IDS block** (`appendIdsBlock`:
48+
hex/uuid/camel/path/port tokens, one per rendered row, max 16, deterministic)
49+
now rides inside **every** imaged path — the Anthropic slab, tool results,
50+
collapsed history, and both OpenAI-wire slab and history legs — as defense in
51+
depth beside the text fact-sheet. The fact-sheet budget grows 64 → 96 tokens
52+
and `factSheetText` pages past the 262 KiB scan bound so late identifiers
53+
still surface. The OpenAI-wire profitability gate now bills the **last page at
54+
its residual height** (not a full strip) and uses the real **o200k** count as
55+
its default text baseline (`grok-billing.test.ts` renders real PNGs and
56+
matches the gate token for token).
4357
- **feat(node):** the Node proxy's OpenAI leg falls back to the **Codex ChatGPT
4458
login** (`~/.codex/auth.json`, override with `OMNIGLYPH_CODEX_AUTH_FILE`) when
4559
`OPENAI_API_KEY` is unset. An explicit `OPENAI_API_KEY` still wins; only the
@@ -64,25 +78,6 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) · semantic ver
6478

6579
### Changed
6680

67-
- **feat(grok):** repack the opt-in Grok render profile from the dense
68-
effective 9×12 cell to **stock Spleen 5×8 on white AA** — no grid, 152-col
69-
strip (768px short-side floor), short 512px pages. Upstream re-measured
70-
pure-image on grok-4.5: the dense cell confabulates exact IDs, while white
71-
5×8 + an in-image **IDS block** is the stable exact-recall recipe. That IDS
72-
block (`appendIdsBlock`: hex/uuid/camel/path/port tokens, one per rendered
73-
row, max 16, deterministic) now rides inside **every** imaged path — the
74-
Anthropic slab, tool results, collapsed history, and both OpenAI-wire slab
75-
and history legs — as defense in depth beside the text fact-sheet. The
76-
fact-sheet budget grows 64 → 96 tokens and `factSheetText` pages past the
77-
262 KiB scan bound so late identifiers still surface. The OpenAI-wire
78-
profitability gate now bills the **last page at its residual height** (not a
79-
full strip) and uses the real **o200k** count as its default text baseline
80-
(`grok-billing.test.ts` renders real PNGs and matches the gate token for
81-
token). New render knobs (`inkDilate`/`inkDilateAxis`, `invert`,
82-
`colorByClass`, `classTick`, `paperGray`) stay off in production and are
83-
retunable per model via `OMNIGLYPH_MODEL_PROFILES`. Grok itself remains
84-
**fail-closed** (`OMNIGLYPH_UNVERIFIED_MODELS` ack still required) pending
85-
OmniGlyph's own reading receipt in `eval/grok-density`.
8681
- **test:** pin `OMNIGLYPH_MODELS` to the built-in default scope in the
8782
savings-math e2e so the file is deterministic regardless of a developer's
8883
ambient shell. The GPT cases drive `gpt-5.6`; a shell that exports a narrowed
@@ -192,6 +187,13 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) · semantic ver
192187
translations) covering Claude Code CLI on macOS/Linux, the **Windows
193188
PowerShell** variant (`$env:ANTHROPIC_BASE_URL`), and **Claude Desktop** setup.
194189
(thanks @ousamabenyounes)
190+
- **eval:** two `$0` measurement harnesses (score through the Claude Code CLI).
191+
`eval/grok-density` validates that the shipped Grok profile reads exact tokens
192+
back before the fail-closed gate is flipped; `eval/ab/guards-3arm` isolates the
193+
in-image IDS block's read value against the text fact-sheet (three arms:
194+
IDS+sheet / sheet-only / neither). Generated corpora and per-run logs are
195+
git-ignored so a run never poses as a receipt; neither changes shipped
196+
behavior.
195197

196198
## [1.2.0] — 2026-07-08
197199

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,14 @@ bulky request block ──► profitability gate ──► reflow + render (1-bi
184184
- **What converts**: the static system prompt + tool docs, old collapsed history, large tool outputs.
185185
- **What never converts**: your messages, recent turns, the model's output, sparse prose, byte-exact values (hashes/IDs ride alongside as text), and any model that failed the reading benchmark.
186186

187+
### Opt-in flags
188+
189+
All off by default — the compression path above is unchanged unless you set them. `omniglyph --help` lists every flag.
190+
191+
- `OMNIGLYPH_GUARD_SECRETS=text|redact` — keep API keys, tokens, and other credentials out of rendered images: `text` never images a block that holds one, `redact` masks it in place. Never alters what the upstream API receives.
192+
- `OMNIGLYPH_KEEP_SYSTEM_TEXT=1` — never image the session config (system prompt, tool docs, reminders); tool outputs and old history still convert. Guards against Anthropic's refusal classifier on system-shaped images.
193+
- `OMNIGLYPH_MODELS` — comma-separated model bases to image (default `claude-fable-5,gpt-5.6`; `off` disables). **Grok** is supported opt-in on the OpenAI-compatible wire but stays fail-closed: text-only until acked via `OMNIGLYPH_UNVERIFIED_MODELS=grok-4.5`, pending its own reading receipt.
194+
187195
# 📚 Library use (no proxy)
188196

189197
Everything the proxy does per request is also a documented, importable API:

0 commit comments

Comments
 (0)