chore: bump version and changelog (v1.58.0.0)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Garry Tan
2026-06-12 11:00:35 -07:00
parent 26a7cab26d
commit 4831d25e3e
3 changed files with 107 additions and 2 deletions
+105
View File
@@ -1,5 +1,110 @@
# Changelog
## [1.58.0.0] - 2026-06-12
## **Your documents grow diagrams. Mermaid and excalidraw fences render as real pictures,**
## **and make-pdf now ships single-file HTML and Word output from the same markdown.**
Put a ` ```mermaid ` fence in your markdown and `make-pdf` renders it as a crisp
vector diagram, fully offline, with the source preserved for round-trips. A broken
fence prints a loud red diagnostic block with the parse error, never silent raw
code. The new `/diagram` skill goes the other way: describe a flow in English and
get a triplet back, the mermaid source, an editable `.excalidraw` file you can open
at excalidraw.com, and rendered SVG + PNG in the hand-drawn style. Images got the
same care: local paths inline automatically and never truncate, phone photos
downscale to print resolution instead of blowing up the file, and a wide small-text
diagram promotes itself onto a vertically centered landscape page inside an
otherwise portrait document. One markdown file now exports three ways:
`--to pdf | html | docx`, where html is one self-contained file with zero network
references. Type is bigger across the board (12pt body, 56pt cover titles), TOC
links actually jump, and `--strict` turns missing or out-of-tree images into hard
CI failures.
### The numbers that matter
Measured on this repo's README (5,940 words, lists, code, screenshots, one
diagram fence) and the free gate suite. Reproduce: `make-pdf generate README.md
--cover --toc` and `bun test make-pdf/test/`.
| Metric | Before | After | Δ |
|--------|--------|-------|---|
| A mermaid fence in your PDF | raw code block | vector diagram | rendered |
| Output formats from one markdown | 1 (pdf) | 3 (pdf, html, docx) | +2 |
| Network requests at render time | up to 1 per remote image | 0 by default | sealed |
| Wide-diagram handling | shrunk into portrait | own centered landscape page | rotated |
| Free make-pdf gate tests | 121 | 189 | +68 |
| README → 29-page PDF with diagram | n/a | 4.4s | one command |
The sealed-network number is the one to notice: the mermaid and excalidraw
runtimes are vendored into a 9.2MB sha-pinned bundle, so rendering works on a
plane and a tracking pixel in pasted markdown fetches nothing.
### What this means for your documents
The diagram you describe in English stays editable forever: `/diagram` writes the
source, you embed the source in markdown, and every export renders it fresh. Stop
pasting screenshots of diagrams into documents. Run `/diagram` for the picture,
` ```mermaid ` for the document, and `--to html` when the reader doesn't want a PDF.
### Itemized changes
#### Added
- ` ```mermaid ` and ` ```excalidraw ` fences render as inline vector SVG in every
output format. Fence options: `title="..."` (caption + aria-label),
`render=false` (keep as code), `page=landscape|portrait` (orientation override).
Render failures produce a visible diagnostic block with the parse error.
- `/diagram` skill: English in, editable triplet out (`.mmd` source,
`.excalidraw` scene, SVG + PNG). Flowcharts convert to fully editable
excalidraw scenes; other mermaid types render with an explicit limitation note.
- `lib/diagram-render/`: vendored offline bundle (mermaid 11.12.2, excalidraw
0.18.0, exact pins), deterministic build, committed dist with sha256 + source
fingerprint, drift tests, THIRD-PARTY-LICENSES.
- `--to pdf|html|docx` output formats. HTML is one self-contained file (inline
SVG diagrams, data-URI images, zero network refs, screen-readable). DOCX is a
content-fidelity export with diagrams embedded as 300dpi PNGs and alt text.
- Per-image directives: `![x](a.png){width=full|50%|3in}` and
`{page=landscape|portrait}`.
- Conservative auto-landscape: wide, small-text, diagram-like images get their
own vertically centered landscape page (aspect ≥ 1.8, width over ~2.5x the
content box, diagram-ish alt word). Directives override in both directions.
- `--strict` for CI: missing images, remote images, out-of-tree image reads, and
oversized files fail the run instead of degrading to placeholders.
- `docs/howto-diagrams-and-formats.md`: the full walkthrough, fences to formats.
#### Changed
- Typography scale: 12pt body, 26pt h1, 56pt poster cover with 13pt meta, 12pt
TOC entries, larger code and tables. Auto-hyphenation is off so copy-paste
yields clean words.
- Local images inline as data URIs with byte-probed dimensions and never
truncate; oversized photos downscale to print resolution at inline time;
repeated images are read once.
- TOC links resolve in every format (headings get real anchor ids); the screen
layer hides print-only page-number dots in HTML output.
- Remote images are blocked with a visible placeholder unless `--allow-network`
is passed; out-of-tree image reads (including via symlink) warn loudly.
- `make-pdf preview` prints a note when the document contains fences or local
images that only `generate` renders fully.
#### Fixed
- Relative image paths render correctly in PDFs (previously resolved against the
wrong base and could show as broken boxes).
- Fenced code inside lists survives the render byte-for-byte; indented fences
keep their list placement.
- Documents containing `$&`-style sequences in diagram labels render exactly;
Windows drive-letter image paths resolve as local files; malformed
percent-encoded image URLs degrade gracefully instead of failing the run.
- Per-side margins (`--margin-left` etc.) are honored on documents containing
landscape pages.
#### For contributors
- 68 new free-tier gates (fence extraction, image policy, landscape promotion
with negative fixtures, format contracts, bundle drift) plus a paid gate-tier
/diagram triplet test and a periodic authoring-quality judge.
- make-pdf-gate CI now covers `lib/diagram-render/**` and the drift test; the
committed bundle is pinned to LF in .gitattributes.
- Fixed the `operational-learning` E2E fixture (bin scripts now ship with the
lib module they import).
## [1.57.10.0] - 2026-06-10
## **Codex review now runs by default everywhere it matters.**
+1 -1
View File
@@ -1 +1 @@
1.57.10.0
1.58.0.0
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "gstack",
"version": "1.57.10.0",
"version": "1.58.0.0",
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
"license": "MIT",
"type": "module",