v0.6.1-alpha — test harness + CI hygiene
Pre-release
Pre-release
Tooling-only patch release — no plugin behavior changed. Safe to skip if you're already on 0.6.0-alpha and not contributing.
What's new
First JS test suite. Vitest 4 + jsdom 29 wired into the project (npm test / npm run test:watch). 15 tests covering:
- Swipe-deck runtime (
public/src/swiper.js): commit/skip via click + keyboard, deck-position math, Card vs GriddeckDepth, reset coalescing into a single change event, done-state + button-disable when the deck empties. - URL-state reconciliation (
patchSwiperinpublic/src/refresh.js): count patching, server-included → right-swiped + hidden + checked sync, popstate restore when the server clears a value we'd locally right-swiped, preservation of local left-swipes.
Markdown lint is actually gating now. The Markdown · Lint CI job had continue-on-error: true set since it landed, quietly hiding 122 markdownlint findings. This release:
- Adds
.markdownlint.jsonthat turns off the rules that fight this project's writing voice — MD013 (long prose lines are intentional), MD060 (padded tables read better than|col|col|), MD034 (bare GitHub URLs are fine inline). - Fixes the 21 real readability issues MD022/MD032 flagged — missing blank lines around headings glued to lists in
plan.md,SECURITY.md,SHEPDESIGN.md. - Drops
continue-on-error: trueso future regressions can't sneak through.
Minor production tweaks (testability)
These are the only non-doc/non-test changes to runtime code:
initSwiper(root, { signal })— accepts anAbortSignalfor listener teardown. Standard pattern; needed because vi.resetModules clears the module cache but leaks document-level listeners the prior copy registered.patchSwiperis now a named export frompublic/src/refresh.js— was a module-private helper; now reachable from tests without going through fetch + DOMParser.
Upgrade
git pull && npm installNo DB changes. No reindex needed. No admin-visible changes.