docs(modules): phase 4 as built — the first pages, and the four defects a browser walk found #256

Merged
whitlocktech merged 1 commits from docs/rust-phase-4 into main 2026-09-17 02:42:53 +00:00
Member

modules/rust/PLAN.md §17, and the phase-4 row marked done. Pairs with Module-Rust#4.

What it records

  • The four decisions (D12–D15): /rust as the list, one page with in-page tabs, visibility-gated polling, and a live count in the footer slot rather than a static link.

  • What is on the pages, including why everything selectable lives in the URL, why the feed renders parts rather than sentences, and why player.tally is public and deliberately not in the feed.

  • Four defects only a browser walk could find, two of them in code phase 3 had already shipped: an unreachable refresh that erased the server's description (which defeats this phase's own criterion), a "last reported" line reading the timestamp of our poll rather than of the server's last frame, feed rows with no date once the feed is filtered to a past wipe, and a mistyped address dressed up as a fault.

  • Why core's useAsync cannot poll, and what the module bundles instead.

  • The footer slot's real per-page cost, stated rather than assumed: PublicLayout is rendered by every public page, so a component in that slot mounts once per page view.

  • What was proven and how, including the allowlist refusing a kind by name on real rows, and the all-time leaderboard equalling the two wipes summed.

  • AI-assisted: written with Claude Code.

🤖 Generated with Claude Code

https://claude.ai/code/session_016wDDVXWMDz82WqE1i969r4

`modules/rust/PLAN.md` §17, and the phase-4 row marked done. Pairs with Module-Rust#4. ## What it records - **The four decisions** (D12–D15): `/rust` as the list, one page with in-page tabs, visibility-gated polling, and a live count in the footer slot rather than a static link. - **What is on the pages**, including why everything selectable lives in the URL, why the feed renders *parts* rather than sentences, and why `player.tally` is public and deliberately not in the feed. - **Four defects only a browser walk could find**, two of them in code phase 3 had already shipped: an unreachable refresh that erased the server's description (which defeats this phase's own criterion), a "last reported" line reading the timestamp of our poll rather than of the server's last frame, feed rows with no date once the feed is filtered to a past wipe, and a mistyped address dressed up as a fault. - **Why core's `useAsync` cannot poll**, and what the module bundles instead. - **The footer slot's real per-page cost**, stated rather than assumed: `PublicLayout` is rendered by every public page, so a component in that slot mounts once per page view. - **What was proven and how**, including the allowlist refusing a kind *by name* on real rows, and the all-time leaderboard equalling the two wipes summed. - [x] AI-assisted: written with Claude Code. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_016wDDVXWMDz82WqE1i969r4
wtclaude added 1 commit 2026-09-17 02:41:55 +00:00
Records PLAN.md section 17 and marks the phase row done. Four decisions (D12-D15),
what is on the pages, and the four defects only a live walk could find — two of
them in code phase 3 had already shipped: an unreachable refresh that erased the
server's description, and a "last reported" line reading the timestamp of our own
poll rather than of the server's last frame.

Also written down: why core's useAsync cannot poll, the real per-page cost of a
live count in the footer slot, and the test fake that was *nearly* core.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016wDDVXWMDz82WqE1i969r4
whitlocktech merged commit 2f24236993 into main 2026-09-17 02:42:53 +00:00
whitlocktech deleted branch docs/rust-phase-4 2026-09-17 02:42:54 +00:00
Sign in to join this conversation.
No description provided.