Skip to content

fix: make the footer script dependency read contract-based (render-once D6)#2041

Merged
markdumay merged 1 commit into
mainfrom
fix/render-once-d6-defer-module-css
Jul 16, 2026
Merged

fix: make the footer script dependency read contract-based (render-once D6)#2041
markdumay merged 1 commit into
mainfrom
fix/render-once-d6-defer-module-css

Conversation

@markdumay

Copy link
Copy Markdown
Collaborator

Render-once program — slice D6, shipped subset (HELD for maintainer review)

Part of the Hinode render-once implementation program (design:
gethinode.com docs/superpowers/specs/2026-07-15-content-render-once-design.md §4.4/§6-D6).

Changes

  • footer/scripts.html — the optional bundle's module-dependency read now (a) materializes
    .Content first ({{ $_ := .Content }}, cached — contract instead of ordering accident) and
    (b) reads the Scratch ∪ Store union (mod-utils ≥6.6.0 dual-writes). The critical/functional
    head-side calls deliberately do NOT touch .Content (pre-flip that would shift UID numbering
    build-wide).
  • go.mod — mod-utils v6.5.1 → v6.6.0 only (MVS drag of mod-fontawesome/FA/hinode-graph
    pinned back; attribution in the program register evidence).

Design outcomes recorded (maintainer decisions 2026-07-16)

  • The designed templates.Defer head-CSS block is structurally impossible: deferred output
    splices unminified into minified pages, and resources.PostProcess (stylesheet.html, every
    production build) is forbidden inside deferred templates. The head consumer fix moves to D8 as
    a .Content guard + union read (byte-neutral post-flip).
  • D6b / §8-Q1 disproven: pager pages share the page's RelPermalink+Store, so a deferred
    OpenGraph block would stamp the last pager's URL on all pager pages. The paginator Store
    plumbing is retired in D9.

Gate evidence

Stock ×2 + candidate ×2: 0 ERROR, 98/26/24, WARN set identical; run-vs-run and
candidate-vs-stock ⊆ the 3-file RSS allowlist; no-description pages byte-identical.
Independently re-verified by the program driver. pnpm test green.

🤖 Generated with Claude Code

@netlify

netlify Bot commented Jul 16, 2026

Copy link
Copy Markdown

Deploy Preview for gethinode-demo ready!

Name Link
🔨 Latest commit 2e53e7e
🔍 Latest deploy log https://app.netlify.com/projects/gethinode-demo/deploys/6a5900fd1a4bf90008bed06b
😎 Deploy Preview https://deploy-preview-2041--gethinode-demo.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Read module dependencies from the union of the page Scratch and Store
(mod-utils v6.6.0 dual-writes both) and materialize .Content before the
read in the optional bundle, which is the only consumer. The guard makes
the post-body read a contract instead of an ordering accident; .Content
is cached, so it is cheap. The critical/functional calls render in the
head and must not touch .Content.

Part of render-once slice D6 (design 2026-07-15, section 4.4).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@markdumay
markdumay force-pushed the fix/render-once-d6-defer-module-css branch from 6d1457f to 2e53e7e Compare July 16, 2026 16:04
@markdumay
markdumay enabled auto-merge July 16, 2026 16:09
@markdumay
markdumay merged commit f9913eb into main Jul 16, 2026
16 checks passed
@markdumay
markdumay deleted the fix/render-once-d6-defer-module-css branch July 16, 2026 16:14
@markdumay

Copy link
Copy Markdown
Collaborator Author

🎉 This PR is included in version 3.2.11 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant