Repository navigation
Design audit 2/4: shell (wayfinding, one delete rule, pending states, page headers) - #126
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
⛔ Files ignored due to path filters (1)
📒 Files selected for processing (69)
Note 🎁 Summarized by CodeRabbit Free
Comment |
Fixes the Shell rows of the 2026-10-09 design audit. - Header: "Home" is now "Tools", and "Current debate" is a link that is active on the debate page and every tool route, with its own menu chevron. The brand is a span, Home's h1 describes the page, the nav pill and glow are gone, the edge appears only on scroll, and icon controls get tooltips. Language is a two-tap popover. - The mobile menu is a modal panel with a scrim and a 180ms fade. The theme toggle leaves the mobile header. On phones, side sheets become Vaul bottom sheets. - One delete rule: Undo when the app can put the item back exactly (Library sources); a destructive confirm otherwise; admin role changes confirm. - Library: the title is the row's button, labels are tied to their fields, errors are inline, the duplicate filters and stat tiles are gone, and the merge confirm is a dialog. History keeps its tab in the URL, and lists scroll with the page on phones. - Pending states for sign-out, delete-all, debate switch and delete, file import and announcement dismiss. The announcement renders from cache. - 404, legal pages, Sources, Login and the route error screen all have a way home. Shared items render as a readable view, and Import is gone. - Shared PageHeader and tool links, a text-xs floor, tinted tier badges, localized login errors, Escape continues past the inactivity gate, and the limit modal gets "Not now". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Tools rename, the Current debate link and the Library form changed what the recorded agent steps click. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rms on touch tailwindcss-animate's animate-in sets a 150ms default in the variant layer, which outranks a plain duration-* class. Measured after the change: mobile menu 180ms in and 120ms out; tooltip 120ms out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The panel was placed 4rem under the top, so the Current Debate row covered its first item. AppLayout now publishes the header's bottom edge as --app-header-bottom and the panel opens there (measured: header 118px, menu 118px on an iPhone 13). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…y errors - navigation-performance waits for the Tools page h1. - The onboarding schedule check instruments the new target-first start. - Hungarian parity checks the inline required-field error, and the toast close label through a flowchart node delete. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
cf907a2 to
7921744
Compare
…nfirms - Library Undo re-inserts the same row (id and created_at), so a per-request source exclusion still applies and the source keeps its place. The library recipe now checks the restored row against the original. - The mobile menu closes when the window widens past lg, where it is hidden but would still hold the page modal. - Phone bottom sheets move focus inside on open, like the side sheet. - A refused announcement dismiss restores the session cache as well as the banner. - Folder merge and admin role changes keep their confirmation open while the write is pending and close only on success; a failed merge says so in the dialog. - Read-only results (a shared case) show no regenerate buttons. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Codex review round 1 (on cf907a2) found seven issues. All are fixed in 21a2607:
Local checks at 21a2607, since GitHub Actions jobs fail in about 2 seconds with "recent account payments have failed":
Codex round 2 is reviewing 21a2607. |
|
Codex round 2 on 21a2607: no findings. It checked all seven fixes, their callers, the sources RLS and debate constraints, and the PR claims. All review findings on this PR are now resolved. |







Second of four stacked PRs for the 2026-10-09 design audit. Base: #124 (Foundations).
What changed
Wayfinding
<span>, not a second<h1>. The Tools page h1 says "What are you working on?" in en, es and hu.scaleX(0)with a glow) and thenav-glowhover are gone; active is justbg-primary/10 text-primary. The header edge only appears once the page scrolls, and the icon controls have tooltips instead oftitle.motion-revealwith the page still live underneath. The theme toggle leaves the crowded mobile header; it stays in Settings.One delete rule. If the app can put the item back exactly, it deletes at once and the toast offers Undo: Library sources here, and flowchart nodes and saved flowcharts in PR3. Otherwise there is a destructive-styled AlertDialog: saved cases, sparring rounds, Clear Library, a folder merge (which replaces
window.confirm), and the Settings deletes. A debate keeps its inline confirm, which already names what goes with it. Admin Ban, Unban, Make admin and Remove admin now go through a confirmation dialog.Pending states. Sign out, Delete all data, switching or deleting a debate, Continue on the idle gate, and Library file import all show they are working and can't be clicked twice. The file input resets so the same file can be picked again. Announcement dismiss is optimistic and comes back if the server refuses, and the banner renders from a session cache, so it no longer pushes the page down after a fetch. The 160px pulsing admin placeholder is gone.
Pages
PageHeader(h1text-3xl font-bold leading-tight tracking-tight, optional eyebrow, meta and actions). Card titles aretext-lgwith size-specific tracking.ToolLinklist labelled with the tool pages' own h1s. The debate page puts the tools first, and its actions are quieter ghost buttons. Lists cut at 4 or 6 get "View all (N)".role=buttonwrapping a link, a button and a switch.htmlFor.role="alert"under the field and move focus there, instead of a toast after submit.text-xsfloor; it was 9–11px.bg-amber-500/15 text-amber-800, and so on); white on amber and white on green were about 2:1. The pricing modal badges the plan you are actually on, and the limit modal has "Not now".<pre>of JSON: the tool's own result view when the data passes its schema, plain labels and values otherwise. The "Import to Account" dead end is gone.Changes from the audit's literal After
favicon-72.pngis RGB with no alpha, so the white is baked into the mark itself; a dark variant needs a new asset. Login and the public pages do use the real mark now.animate-insets its 150ms default in the variant layer, which beats a plainduration-*class. The mobile menu and the Tooltip therefore use state-scoped durations. Measured: the menu opens in 180ms and closes in 120ms; the Tooltip closes in 120ms.Verify skill and tests kept in step
librarynow proves Undo (delete, Undo, delete again, then a reload and the DB row both show it gone). Thelibrary,account-dataandcurrent-debatefield selectors use the real labels (Title,Content), and the import step asserts theImport previewpanel instead of the removed "Source Ready" toast.features/library-sources.mdis updated.SKILL.mdhas a new gotcha: a running stack does not reloadtailwind.config.ts, so you needdown && up(from PR1).Verification
Run locally on this branch. GitHub Actions is out of minutes; every job fails in about 2 seconds with "recent account payments have failed".
npm run lint,typecheck,npm test(274),buildanddocs:check: all pass.npm run verifypasses: 333 Deno tests and 30 Playwright smoke tests.verify.sh drive all: 30 passed and 2 skipped on both desktop-chromium and mobile-chromium. The skips are workspace-autosave, which needs--collab. Mobile at first failedlibrarywith 4px of horizontal overflow: the row badges didn't wrap. That is fixed, andrecipes/libraryandrecipes/current-debatepass on mobile.verify.sh e2e run: 179 of 180 on the first run. "Add a source and pause it" failed on desktop because the model judged a frame taken mid-save; the failure screenshot shows the saved source and a closed form. The rerun of that file passed 4 of 4.40px 0px).Not verified: real touch hardware, WebKit and Safari, staging and production.
🤖 Generated with Claude Code