Skip to content

0.2.0 release - #30

Merged
kristin-kronstain-brown merged 50 commits into
mainfrom
kkb-version-cond-text-revamp
Aug 20, 2026
Merged

0.2.0 release#30
kristin-kronstain-brown merged 50 commits into
mainfrom
kkb-version-cond-text-revamp

Conversation

@kristin-kronstain-brown

Copy link
Copy Markdown
Collaborator

No description provided.

kristin-kronstain-brown and others added 30 commits August 5, 2026 09:23
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
With v0.1.26 and v0.1.27 merged into a single Unreleased section, the
hub's two paired changes land in one PR alongside one pin bump, so the
"ordering differs between them" caveat no longer applies.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
The gate-blockhtml cases moved into the content page itself (routing them
through reuse normalized the form before rendering, which silently turned
the angle cases into percent and erased the distinction under test), so
blockhtml-a/b/c.md have no referents.

agentgateway-oss-website's shadow set changed four times in one session as
that clone moved between branches. Snapshot it against kkb-theme-upgrade
@3769c7c2 and say so in OVERRIDES.md, so a red ratchet points at the branch
rather than at the module.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
@kristin-kronstain-brown kristin-kronstain-brown changed the title Version cond text revamp 0.2.0 release Aug 18, 2026
kristin-kronstain-brown and others added 19 commits August 18, 2026 10:45
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Piloted site-local on ambientmesh.io, now proven enough to share:
layouts/docs/list.book.html, assets/css/print-book.css, and
layouts/_partials/utils/shift-headings.html move here so the next
consumer that wants a downloadable docs PDF doesn't re-solve the same
problems (real tab names, heading levels, empty-section dividers,
running-header breadcrumbs, internal cross-references as in-PDF jumps).

Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Moving print-book.css into the module (previous commit) eliminated
ambientmesh.io's last remaining duplicate of it, exactly as
override-parity.spec.ts's own failure message asked.

Signed-off-by: Kristin Brown <kristin.brown@solo.io>
…peline

Lets a consumer's Makefile curl it from GitHub pinned to the same go.mod
version already used for the Hugo-side pieces, instead of keeping a
site-local copy that drifts. Parameterizes the two hardcoded constants
(PROD_HOST, BOOK_PATH) into env vars so the fetched file needs no editing.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
…ample

\`require github.com/x/y v1.2.3\` has the version in \$3, not \$2 — the
leading \`require\` keyword shifts every field over by one. Caught by
actually running the snippet against ambientmesh.io's go.mod, where it
grabbed the module path instead of the version and 404'd the curl.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Leftover from parameterizing PROD_HOST/BOOK_PATH in beta.7: the pre-flight
existence check still hardcoded public/docs/book.html, so any consumer whose
book output lands somewhere else (e.g. a versioned site's
/docs/envoy/latest/book.html) fails immediately even though the file exists.
Caught trying this against kgateway-oss, the first versioned consumer.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
…d.js's document-size ceiling

Single-document pagination never completed against kgateway-oss's real 253-page
"latest" docset, even given 5 minutes — bisection showed worse-than-linear
scaling, and independent reports (including WeasyPrint, a different rendering
engine entirely) confirm this is inherent to monolithic CSS Paged Media
rendering, not a Paged.js-specific bug.

- render-pdf.mjs accepts PDF_BOOK_PATHS (plural) and merges per-chunk PDFs via
  pdf-lib, offsetting each chunk's outline into one continuous bookmark tree.
  PDF_BOOK_PATH (singular) keeps its exact pre-chunking fast path.
- bookChunkRoot: true front matter renders a chunk's own section title as its
  first chapter, so a merged multi-chunk PDF keeps its section groupings.
- New layouts/docs/single.book.html (leaf pages silently used the wrong
  template before, never loading Paged.js at all) — both book layouts are now
  thin wrappers around a shared _partials/docs/book-document.html.
- Fixed a real dead-link bug the chunking exposed: a same-origin,
  out-of-book link resolved to the throwaway local server instead of the
  production host, the exact bug this rewrite exists to prevent.

Verified: ambientmesh.io's single-document output is byte-for-byte unchanged
(238 pages, 50 TOC entries, before and after). kgateway-oss's real "latest"
docset, split into 14 section chunks, merges into one 1709-page PDF with 14
correct top-level bookmarks in 28 seconds — the same docset that never
finished as a single document.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
The pre-existing "empty landing page gets a centered divider" rule was
designed for a single-document book, where it's the only kind of section
boundary there is. In a chunked book it fired on the wrong page: an ordinary
nested empty page (kgateway's setup/listeners/) got centered instead of the
chunk's own root (setup/, "Gateway setup") — the two had swapped roles from
what a reader expects once every chunk gets its own title page.

Chunk roots now always get a centered title (via new .pdf-chunk-title,
distinct from the full-page .pdf-divider so real content isn't buried under
10cm of top padding or dropped); descendants never get the divider treatment
even when empty, since the chunk already has a title page. A single-document
book (ambientmesh.io, which never sets bookChunkRoot) is unaffected — the new
$chunked flag is false throughout its walk, so its own nested empty landing
pages keep exactly the behavior they already had.

Also documents cascade as the way to set outputs/bookChunkRoot on every
section at once instead of hand-editing each one, found while fixing this on
a real kgateway-oss rebuild.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Every chunk's book.html renders a full cover + "Contents" page, since Hugo
has no idea at build time its output will be merged with others. Left as-is,
kgateway-oss's 14 chunks stacked 14 title pages and 14 separate, individually
incomplete "Contents" pages (each only ever lists its own descendants) into
one PDF.

renderChunk() takes new keepCover/keepToc options (both default true, so a
single-document book like ambientmesh.io's is completely unaffected); the
multi-chunk loop keeps the cover on chunk 0 only and drops every chunk's TOC,
relying on the PDF's own bookmark sidebar for navigation instead.

Verified: kgateway-oss's merged PDF now opens on one cover page straight into
chapter content, no Contents page anywhere (1681 pages, down from 1709).
ambientmesh.io unchanged (238 pages, 50 TOC entries, cover + Contents intact).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
…s in the PDF book pipeline

Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
…ass too

The prior re-enable of this spec assumed the singular hextra-tab-panel
selector was a stale Hextra-version leftover and switched to match only
Hextra's plural hextra-tabs-panel. It wasn't stale: docs's own tabs.html
override still ships the singular class deliberately, and copy-markdown.html
already treats both shapes as valid. Widen the panel-boundary lookup to
accept either.

Signed-off-by: Kristin Brown <kristin.brown@solo.io>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
@kristin-kronstain-brown
kristin-kronstain-brown merged commit 9bc4b1e into main Aug 20, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants