Skip to content

docs: gate htmx-nonce + strict style-src behind a min-version note#1779

Merged
davidpoblador merged 1 commit into
mainfrom
docs/min-version-csp-opt-ins
May 11, 2026
Merged

docs: gate htmx-nonce + strict style-src behind a min-version note#1779
davidpoblador merged 1 commit into
mainfrom
docs/min-version-csp-opt-ins

Conversation

@davidpoblador

Copy link
Copy Markdown
Member

Closes #1778.

Summary

Both htmx-nonce and CSP_STYLE_SRC_STRICT were documented in the same wave that introduced them (#1773, #1774, #1776), but they don't yet work on a freshly scaffolded project today because the released packages predate those PRs:

  • @alltuner/vibetuner@10.10.0 on npm pulls htmx.org@4.0.0-beta2, which doesn't ship dist/ext/hx-nonce.js. The bundler fails with Could not resolve "./node_modules/htmx.org/dist/ext/hx-nonce.js".
  • vibetuner==10.10.0 on PyPI predates the style_src_strict settings field. Pydantic's extra="ignore" swallows CSP_STYLE_SRC_STRICT silently; the CSP header keeps emitting 'unsafe-inline'.

Both self-resolve as soon as release-please cuts 10.11.0. Until then, point readers at the version requirement so they don't burn time debugging.

This adds:

  • An admonition note above each opt-in subsection in development-guide.md calling out the minimum version and the failure mode users will see.
  • The same min-version constraint inline in llms-full.txt and llms.txt, since those are LLM-targeted and need to be self-contained.

No framework code changes. Confirmed during the post-merge smoke test (issue #1778) that with the framework installed editable from main, both opt-ins work end-to-end: strict CSP becomes style-src 'self' 'nonce-…', the bundle build succeeds, and htmx:security:strip/htmx:security:violation identifiers all appear in bundle.js.

Test plan

  • rumdl lint passes (pre-commit)
  • No new long-line violations in edited regions
  • Spot-check rendered docs site (admonitions look reasonable)

🤖 Generated with Claude Code

Fixes #1778. Both opt-ins were documented in the same wave that
introduced them, but the released packages don't yet carry the
required code:

- @alltuner/vibetuner@10.10.0 transitively pulls htmx.org@4.0.0-beta2,
  which has no hx-nonce.js — bundler errors on the import.
- vibetuner==10.10.0 predates the style_src_strict field; pydantic's
  extra="ignore" silently swallows the env var.

Both fix themselves once 10.11.0 ships, but until then the docs
mislead users on the current release. Add an admonition + inline
note in development-guide.md, llms-full.txt, and llms.txt so the
version requirement is unmissable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@davidpoblador davidpoblador merged commit bc6d365 into main May 11, 2026
2 checks passed
@davidpoblador davidpoblador deleted the docs/min-version-csp-opt-ins branch May 11, 2026 07:57
davidpoblador pushed a commit that referenced this pull request May 11, 2026
🤖 I have created a release *beep* *boop*
---


##
[10.11.0](v10.10.0...v10.11.0)
(2026-05-11)


### Features

* **htmx:** prepare framework templates for hx-nonce extension
([#1773](#1773))
([16137e8](16137e8))
* **security:** add CSP_STYLE_SRC_STRICT to drop 'unsafe-inline' from
style-src ([#1774](#1774))
([3f74886](3f74886))


### Bug Fixes

* **deps:** update dependency htmx.org to v4.0.0-beta3
([#1770](#1770))
([d21d883](d21d883))


### Documentation Updates

* gate htmx-nonce + strict style-src behind a min-version note
([#1779](#1779))
([bc6d365](bc6d365))
* **htmx:** document beta3 features and correct migration guide
([#1771](#1771))
([2921dbc](2921dbc))
* put htmx Nonce Protection before Strict style-src
([#1775](#1775))
([d1254c9](d1254c9))
* sync llms.txt, llms-full.txt, and frontend rules with htmx beta3
([#1776](#1776))
([b486470](b486470))

---
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>
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.

docs: hx-nonce and CSP_STYLE_SRC_STRICT opt-ins require a framework release before they work in scaffolded projects

1 participant