Repository navigation
fix: phase 7 verification, the defects it found - #47
Merged
Merged
Conversation
The reconnecting dot, an armed confirm button, the saving indicator, the stage's live dot and the editor's connection dot looped state-pulse regardless of the user's motion preference. The pulses now live in one no-preference block beside the keyframes; the colour still shows the state.
The formatting toolbar is one tab stop with arrow, Home and End keys moving between its controls. The cover upload is a button, so it is reachable without a pointer. The tags field keeps the text being typed, so a comma can be entered; it used to re-render without it on every keystroke. The post page's heading list no longer carries Tailwind's outline utility by accident.
…work A member's request no longer fails with 500 while the session store is unreachable; it is served as a visitor and the cookie is kept. /health/ready stays 200 while SQLite and the snapshot work and says when the live bus is down, so the edge keeps routing. A failed job backs off for 1, 2, 4... minutes up to an hour and gives up after eight attempts instead of exhausting five attempts within a millisecond; a job that cancels its own row while running keeps the row so the outcome is recorded. Publishing checks the bus first and refuses while it is down, so a scheduled post is retried whole instead of being published without its event or its emails; the emails are queued before the event is recorded.
While Redis is down every request that touches it waited for the reconnect backoff, 10 to 15 seconds a page. A command now times out after two seconds, so a page is served as a visitor within about two seconds of the outage.
The full name wrapped the panel title onto two lines beside its link, as the 'follow' panel already avoids.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Phase 7 of the hub plan: every route at 1440 and 390 in Chromium and Firefox, a keyboard-only pass on both editors, a reduced-motion pass, a load test of
/and/liveat 200 tabs and 50 events a second, a Redis-loss test and the backup cycle. The defects it found, fixed in four commits:prefers-reduced-motion. They now sit in oneno-preferenceblock beside the keyframes. With the preference set,document.getAnimations()reports nothing running on any public route in either browser.<label>around a hidden input was never focusable); the tags field keeps the typed text so a comma can be entered; the post page's heading list no longer picks up Tailwind'soutlineutility./health/readystays 200 while SQLite and the snapshot work (the production healthcheck feeds Traefik) and says when the bus is down. Failed jobs back off 1, 2, 4… minutes up to an hour and give up after eight attempts instead of exhausting five attempts within a millisecond; a job that cancels its own row while running keeps the row. Publishing refuses while the bus is unreachable, so a scheduled post due during an outage is retried whole instead of being published without its event and its subscriber emails; the emails are queued before the event is recorded.Verified
GET /under the storm with eight concurrent loops p50 348 ms, p95 511 ms, p99 670 ms, 0 errors; RSS 389 MB with the streams open./health/ready200, the scheduled post is published on the first retry after Redis returns, the subscriber email arrives,/bloglists it.integrity_checkok, imported locally with members, profiles, projects and settings intact (production has no posts yet; posts were exercised on top of the import).npm run typecheck,npx eslint .,npx prettier --check .,npm run build,npm run size(largest page 136.9 KB). Specs run:server/jobs.test.ts,server/posts.test.ts,server/auth.test.ts.A separate PR on
platformfixes the backup service crashing on a malformed request. The full plan and results:.claude/.Plans/as2026-11-07-graphite-hub-phase-7.md.