mirror of
https://github.com/garrytan/gstack.git
synced 2026-07-07 08:37:52 +02:00
chore: bump version and changelog (v1.58.0.0)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+105
@@ -1,5 +1,110 @@
|
|||||||
# Changelog
|
# 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: `{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
|
## [1.57.10.0] - 2026-06-10
|
||||||
|
|
||||||
## **Codex review now runs by default everywhere it matters.**
|
## **Codex review now runs by default everywhere it matters.**
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "gstack",
|
"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.",
|
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
Reference in New Issue
Block a user