Repository navigation
feat(setup): one page header, quieter rows and plainer statuses - #42
Merged
Merged
Conversation
Every page opens with the same head: its title, one line on what it is
for with a Learn more link to the guide at the image's own release, and
the page's main action. The breadcrumb, the duplicate section labels and
the "How it works" tables are gone; the guides already say it.
- One route table (client/routes.js) feeds the sidebar, the tab bar,
the router, the palette's Go to items and the G shortcuts, so a page
is added or renamed in one place. page.mjs and the server read it too.
- Sidebar marks count only what needs the person; running work shows a
spinner and a published port a quiet dot. No plain counts.
- An anonymous or unmounted home or state folder now counts as needing
attention, in the sidebar and in T3 Code's Setup badge.
- Rows keep a slot for their menu so actions line up down a list.
Devices and unused links act from one menu; Rename and Revoke no
longer wrap under each device on a phone. Turning T3 Connect off moves
into its menu.
- Destructive actions are no longer solid buttons: Clear caches, Stop
and Revoke link are quiet, and still confirm.
- Keyboard shortcuts move out of buttons into tooltips and the palette.
- Notices only say what failed. Cache freshness and slow reads fill in
by themselves. First start's progress is a line on each page rather
than a banner.
- The agents checklist step can always finish: Muse's saved credentials
count, an unreadable sign-in offers a way forward, and no step that is
not done is left without an action.
- A channel name from mise ("stable" for Rust) is no longer shown as a
release that is "available once it's a day old".
- scripts/console-screens.js photographs every page from fixed sample
data in three scenarios, at phone, tablet, desktop and embedded sizes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dizys
force-pushed
the
ux/1-foundations
branch
from
October 19, 2026 07:37
7fb9595 to
d39a4cb
Compare
This was referenced Oct 19, 2026
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.
First of four stacked PRs that rework the setup console's UX. This one keeps every page where it is and changes how each one reads: one consistent header, quieter rows, plain-language status, and only failures as notices. The next PR moves things; this one makes them consistent first.
Screenshots
Same sample data before and after (
scripts/fixtures/console), light theme; desktop at 1280 px, phone at 390 px. Click an image for full size.2.1.302 → 2.1.303; the “How sign-in works” table is gone.What changes
Every page opens the same way. A title, one line on what the page is for with a Learn more link to its guide (pinned to the image's release), and the page's main action. The breadcrumb top bar, the duplicate section labels and the "How sign-in works / How publishing works" tables are gone. The guides already cover them.
One route table.
client/routes.jsis now the single list of pages. The server-drawn sidebar, the phone's tab bar, the router, the palette's Go to items and theGshortcuts all read it, so adding or renaming a page is a one-line change. (Before, the same list lived in five places.)Rows line up and stay on one line.
⋯slot, so actions align down a list even when a row has no menu.2.1.302 → 2.1.303beside the name, in place of an arrow icon to hover.⋯menu. On a phone, a published or failed port puts its buttons under the address or error, so neither is cut short.Destructive actions are never solid buttons. Clear caches, Stop (port) and Revoke link are quiet. They still confirm.
The sidebar only marks what needs you.
Notices only say what failed. "Device details are from the last check" and "Sign-in state is from the last check" are gone, since they fill in by themselves. First start's progress is a line at the top of each page instead of a banner.
Plain language. Each status says one thing, once:
Fixes
For reviewers and contributors
scripts/console-screens.jsphotographs every page in three scenarios (set up, first start, everything wrong at once) at phone, tablet, desktop and embedded sizes, light and dark. It uses fixed sample data fromscripts/fixtures/console, and nothing it presses reaches the server. CONTRIBUTING.md now mentions it.scripts/dev-console.mjs.Test plan
node --test tests/*.test.mjs: 596 pass (new: readiness can always finish, volume warnings, channel names, the route table, guide links)node scripts/harness-ui-audit.jsscripts/ui-audit.js: no findings at 360, 390, 820, 1100 and 1440 px, and embedded at 390 and 1198form-drafts,row,storage,auto-update,contextandskillsUI audits passStack: #42 Foundations → #43 Structure → #44 Overview → #45 Instructions & skills
🤖 Generated with Claude Code