Skip to content

feat: adopt htmx hx-live as default-on for client-side reactivity#1826

Merged
davidpoblador merged 1 commit into
mainfrom
worktree-feat-hx-live-default-on
May 15, 2026
Merged

feat: adopt htmx hx-live as default-on for client-side reactivity#1826
davidpoblador merged 1 commit into
mainfrom
worktree-feat-hx-live-default-on

Conversation

@davidpoblador

Copy link
Copy Markdown
Member

Summary

Closes #1777.

  • Adds htmx 4's hx-live extension as a default import in vibetuner-template/config.js, alongside hx-preload. Mirrors the existing hx-preload / hx-sse re-export pattern in @alltuner/vibetuner (new htmx-live.js + ./htmx/live export entry).
  • Rewrites the OAuth scope chip editor (debug/oauth_app_form.html.jinja) to use hx-on: + hx-live, dropping inline onclick / onkeydown handlers and 26 of the 40 lines of inline sync script. The new pattern works under vibetuner's strict script-src 'nonce-X' 'strict-dynamic' CSP (which blocks raw inline handler attributes at the spec level).
  • Documents the idiomatic patterns and rough edges in htmx-migration.md, the llms.txt / llms-full.txt feature catalogues, and the scaffolded .claude/rules/frontend.md.

Why default-on

  • CSP fit. Inline onclick= / onchange= attributes are blocked by vibetuner's CSP. hx-on: and hx-live evaluate through htmx's nonced TrustedTypes pipeline.
  • Bundle cost is small. One re-export wrapper + one exports entry. Extension auto-registers on import.
  • Plugs the "users reach for Alpine" hole that Evaluate the htmx hx-live extension for vibetuner adoption #1777 explicitly calls out. Vibetuner stays "HTMX + Tailwind + DaisyUI. No JavaScript frameworks."
  • Breaking change in beta3 is a non-event for framework code. htmx.takeClass / htmx.forEvent (moved out of core into this extension) have zero call sites across vibetuner-py / vibetuner-template / vibetuner-jinja / vibetuner-js.

Test plan

  • just lint-jinja — passes (47/47 files, 0 errors)
  • just lint-md — my files clean (only unrelated README.md issues remain)
  • vibetuner-js/package.json JSON valid; ./htmx/live export resolves to existing file
  • Pre-commit hooks (rumdl, djlint, etc.) — all passed
  • Full scaffold-and-build smoke is blocked locally by an in-flight @alltuner/vibetuner-jinja@10.14.2 publish lag (Renovate-style transitive). CI will resolve from the registry once the release publishes — verify CI green before merge.
  • Post-merge: manual OAuth scope editor verification (add chip, remove chip, dedup, hidden-input sync) in a newly scaffolded project.

🤖 Generated with Claude Code

Adds the htmx 4 hx-live extension as a default import in the scaffolded
config.js, alongside hx-preload. Mirrors the existing hx-preload / hx-sse
re-export pattern in @alltuner/vibetuner.

Rewrites the OAuth scope chip editor (debug/oauth_app_form.html.jinja)
to use hx-on: + hx-live, dropping the inline onclick / onkeydown handlers
and 40-line inline sync script. The new pattern works under vibetuner's
strict script-src CSP (which blocks raw inline handler attributes).

Documents the idiomatic patterns and rough edges in htmx-migration.md,
the llms.txt / llms-full.txt feature catalogues, and the scaffolded
frontend rule file.

Closes #1777.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@davidpoblador davidpoblador merged commit 16325aa into main May 15, 2026
2 checks passed
@davidpoblador davidpoblador deleted the worktree-feat-hx-live-default-on branch May 15, 2026 07:00
davidpoblador pushed a commit that referenced this pull request May 15, 2026
🤖 I have created a release *beep* *boop*
---


##
[10.15.0](v10.14.2...v10.15.0)
(2026-05-15)


### Features

* adopt htmx hx-live as default-on for client-side reactivity
([#1826](#1826))
([16325aa](16325aa))


### CI/CD Changes

* unpin claude-code-action now that symlink bug is fixed upstream
([#1824](#1824))
([4cee0ad](4cee0ad))

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

Evaluate the htmx hx-live extension for vibetuner adoption

1 participant