feat(templates): migrate to Zola 0.23 and Tera 2 - #181
Merged
Conversation
added 7 commits
August 19, 2026 20:42
Move the shared substrate to the pinned Zola 0.23.3 renderer, migrate the complete template dialect to collision-resistant Tera 2 components, and add static plus GitHub-rendered compatibility contracts. This is the separately gated prerequisite for scoped root-feed semantics; it does not close the feed issue. Refs #179
forkwright
marked this pull request as ready for review
August 20, 2026 15:59
forkwright
pushed a commit
that referenced
this pull request
Sep 3, 2026
🤖 I have created a release *beep* *boop* --- ## [0.6.0](v0.5.0...v0.6.0) (2026-09-03) ### Features * bind feed, sale, heading, and workflow contracts ([#185](#185)) ([a6600b3](a6600b3)) * **ci:** derive every gate tool version and checksum from one lock ([#194](#194)) ([a7285e2](a7285e2)) * **ci:** enforce the repository-only agent corpus at the rendered boundary ([#193](#193)) ([803f998](803f998)) * **templates:** migrate to Zola 0.23 and Tera 2 ([#181](#181)) ([02e4b09](02e4b09)) ### Bug Fixes * **ci:** bind consumer validator Python runtime ([#190](#190)) ([abe82f1](abe82f1)) * **ci:** give the consumer receipt the history it reads ([#192](#192)) ([ba30d9d](ba30d9d)) * **ci:** name the sha's real version on every action pin ([#206](#206)) ([d1d9b5e](d1d9b5e)) * **ci:** scope the release-PR healer to typikon's real required contexts ([#207](#207)) ([334a9a3](334a9a3)) * **release:** separate candidate proof from publication ([#189](#189)) ([73df3f2](73df3f2)), closes [#58](#58) [#70](#70) [#188](#188) * **schema:** refuse an og:image format no link-preview consumer renders ([#196](#196)) ([373849b](373849b)) * **template:** stop recommending an apex redirect Cloudflare ignores ([#191](#191)) ([247a869](247a869)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
forkwright
pushed a commit
that referenced
this pull request
Sep 3, 2026
🤖 I have created a release *beep* *boop* --- ## [0.6.0](v0.5.0...v0.6.0) (2026-09-03) ### Features * bind feed, sale, heading, and workflow contracts ([#185](#185)) ([a6600b3](a6600b3)) * **ci:** derive every gate tool version and checksum from one lock ([#194](#194)) ([a7285e2](a7285e2)) * **ci:** enforce the repository-only agent corpus at the rendered boundary ([#193](#193)) ([803f998](803f998)) * **templates:** migrate to Zola 0.23 and Tera 2 ([#181](#181)) ([02e4b09](02e4b09)) ### Bug Fixes * **ci:** bind consumer validator Python runtime ([#190](#190)) ([abe82f1](abe82f1)) * **ci:** give the consumer receipt the history it reads ([#192](#192)) ([ba30d9d](ba30d9d)) * **ci:** name the sha's real version on every action pin ([#206](#206)) ([d1d9b5e](d1d9b5e)) * **ci:** scope the release-PR healer to typikon's real required contexts ([#207](#207)) ([334a9a3](334a9a3)) * **release:** separate candidate proof from publication ([#189](#189)) ([73df3f2](73df3f2)), closes [#58](#58) [#70](#70) [#188](#188) * **release:** stop demanding SHA-256 from honestly unpinned inventory ([2939dff](2939dff)) * **release:** stop demanding SHA-256 from honestly unpinned inventory components ([#210](#210)) ([2939dff](2939dff)) * **schema:** refuse an og:image format no link-preview consumer renders ([#196](#196)) ([373849b](373849b)) * **template:** stop recommending an apex redirect Cloudflare ignores ([#191](#191)) ([247a869](247a869)) ### Reverts * the 0.6.0 release commit ([#182](#182)) ([5cbf93a](5cbf93a)) * the 0.6.0 release commit ([#182](#182)) ([#211](#211)) ([5cbf93a](5cbf93a)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: forkwright <noreply@forkwright.dev>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
typikon.*Tera 2 components;include_in_feeds, ordering, and limit behavior;This is the separately gated renderer prerequisite for #179. It intentionally does not implement or close the scoped-root-feed issue, and it changes no consumer repository.
Why this is separate
Zola 0.22.1 does not expose the
include_in_feedspage field required by #179 acceptance item 4. Zola 0.23 does, but also moves rendering to Tera 2. A version-only bump would break Typikon's macro imports, namespace calls, removed collection/string filters, positional test arguments, and consumer shortcodes.Compatibility contract
theme.tomlrequires andbin/typikon-defaults.shdefaults to Zola 0.23.3. Typikon's gate pins that version directly, and both consumer gate templates receive it when rendered. Those three download surfaces pin SHA-256f07c92607e5745268b576bd325ceef3a582aada253bb64db8d92a8a85303d958.typikon.*namespace because Tera 2 registers components globally.configand the current language explicitly.Exact-head proof
GitHub Gate Attestation run 32387018419 completed successfully for head
7545041b93576b0abca62d3d6a4890abda3b14d3and synthetic merge commit48120c02548432a31815ad86cf5401358ecee770/ tree65bcba0d695a0d63f127c405abf61e37bfb0be56.The hosted gate proved:
sameAsvalues;Kanon MCP lint reports 0 violations with 6 existing suppressions.
git diff --check, the static Tera contract, Python AST checks, schema validation, and fixture discovery also pass.No Zola build was run locally; the exact GitHub-hosted build is the renderer authority. Runs 32322479432, 32323223834, 32378738973, 32380347712, 32383486818, and 32385620561 successively exposed null
updated, Jiff-incompatible formatting, XML declaration displacement, an unreplayed CSP failure log, the FAQ JSON-LD breakout, and a stale entity-spelling assertion; each now has a static or rendered regression.Next boundary
After this prerequisite lands, #179 still needs its own scoped-root-feed implementation and consumer migrations. Those changes are outside this PR.
Refs #179