Skip to content

Plan: user flows are tested in the browser, W3 keeps server rules - #136

Merged
can3p merged 1 commit into
masterfrom
plan/browser-first
Sep 26, 2026
Merged

can3p merged 1 commit into
masterfrom
plan/browser-first

Conversation

@can3p

@can3p can3p commented Sep 26, 2026

Copy link
Copy Markdown
Owner

Stacked on #135 (W0); merge that first, then this PR retargets to master.

HTTP end-to-end tests that imitate htmx (sending HX-Request, pinning HX-* response headers) keep passing when an htmx upgrade breaks every page. This reshapes the plan so everything a user does in a page is tested in a real browser.

  • W6 becomes the specification of every user flow. It takes over W3's form and action flows (writing, comments, connections, settings, feeds, shares) and gains B7 (log in, log out, sign up, accept an invitation).
    • Reliability rules: assert what the user sees and the database state, never htmx internals; wait only through auto-waiting assertions; no retries in CI; repeated runs before a task is accepted.
    • An htmx inventory (every hx-* attribute, extension, config setting, error handler and HX-* response header in use), each of which a test must exercise through a visible result.
    • Library mutation checks: removing json-enc, head-support or the htmx error handler must fail the suite.
    • The browser CI job runs on Dependabot's npm updates too, and must pass before merging.
  • W3 shrinks from 6 tasks to 4: visibility, the guards on every mutating route (login, CSRF, someone else's objects, with the database unchanged), one-shot links, and the API, RSS and uploads through the API. W3 never sends or checks HX-* headers. W3 and W6 together must cover every route.
  • W6.B0 starts first after W0. The plan index, R2, WB and the frontend-htmx and wave-run skills are updated to match.

The harness side (the HTTP client no longer imitates htmx) is already in #135.

🤖 Generated with Claude Code

https://claude.ai/code/session_016UQyTX1ww97bDaWMEBtmuE

Base automatically changed from test/w0-foundation to master September 26, 2026 11:35
HTTP tests that imitate htmx keep passing when an htmx upgrade breaks
the pages. W6 becomes the specification of every user flow: it absorbs
W3's form and action flows (accounts, writing, connections, settings,
feeds), adds reliability rules (assert outcomes not htmx mechanisms, no
sleeps, no retries, repeated runs before acceptance), an htmx inventory
every item of which a test must exercise, and library mutation checks
(json-enc, head-support, the error handler). W3 shrinks to four tasks:
visibility, guards on every mutating route, one-shot links, and the
API/RSS/uploads, with no HX-* assertions. W6.B0 starts first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016UQyTX1ww97bDaWMEBtmuE
@can3p
can3p force-pushed the plan/browser-first branch from 46c4afb to 55d8909 Compare September 26, 2026 11:36
@can3p
can3p merged commit 7895d28 into master Sep 26, 2026
5 checks passed
@can3p
can3p deleted the plan/browser-first branch September 26, 2026 11:39
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.

1 participant