Skip to content

feat(web-console): first-run intro, conversation search and phone-width peer tables - #310

Closed
Mearman wants to merge 12 commits into
feat/console-activityfrom
feat/console-onboarding
Closed

Mearman wants to merge 12 commits into
feat/console-activityfrom
feat/console-onboarding

Conversation

@Mearman

@Mearman Mearman commented Sep 30, 2026

Copy link
Copy Markdown
Member

Stacked on #307 (base is feat/console-activity, so CI does not run for this PR; verification was local, including the Playwright suite).

Three pieces of the usability work. A device that has not dismissed it sees a first-run walkthrough covering connect, the peer directory, why discovered peers wait for an explicit Connect, and what works offline; "Got it" is remembered in the console's own storage (preferences-store.ts) and a "How this works" button in the header brings it back. Search covers the messages and readable notices of every conversation: every term must match, case-insensitively and in any order, results are newest first and capped, each names its conversation through the naming convention and highlights the match, and clicking one opens that conversation. On a phone-width viewport each row of the directory and discovered-peers tables stacks into a labelled card (stackedTable in App.css.ts, driven by a data-label on each cell), and the app shell breaks long addresses instead of widening the page.

Search runs over the conversation state rather than scanning IndexedDB a second time. That state is the message-store.ts history restored at start-up plus every message that has arrived since, and it is also where the notices each board has read live, which are not in the message store, so one pass covers stored messages, live messages and notices. The cost is that search sees only what the console has loaded, which today is everything it has stored.

A commit here also fixes the conversation header and the message request banner, which still showed raw device-ids after the naming change in #305.

The Playwright suite was run for the first time at this point in the stack (it needs a built node and a real browser), and it showed that two of the earlier PRs broke existing specs. #306's first-use certificate prompt blocks the pinned-address specs until accepted, and #307's activity view hides the raw frame log that the reconnect specs count handshakes in. The fixes were committed to those PRs' own branches and merged up into this one, and this branch passes the whole suite, including a new onboarding-mobile spec that checks the intro persists across a reload and that a directory cell is display: block at phone width and table-cell at desktop width (it fails when the stacking class is removed). The same commit set also makes one #307 unit test independent of interval timing, which was flaky under load.

Not done: nearby-node discovery on the LAN, which the issue says waits for local nodes to advertise. It is tracked in #309. The containers E2E and the offline containers E2E were not run here (they need Docker); the offline spec was updated for the trust prompt by reading it, not by running it.

Fixes #298

…e request

The header joined raw device-ids and the message request named the
requester by device-id, bypassing the naming convention every other
peer-bearing surface uses.
…th peer tables

A device that has not dismissed it sees a walkthrough of connecting, the
directory, why discovered peers wait for an explicit connect and what
works offline, reopenable from the header. Search matches every term
case-insensitively across the messages and readable notices of all
conversations, newest first and bounded, and opens the conversation a
result belongs to. On a phone-width viewport each peer table row stacks
into a labelled card instead of a row of columns. An end-to-end spec
checks the intro persists across a reload and that the directory stacks
on a phone and keeps its columns on a desktop.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
🔒 Security Review ✅ Completed 2026-09-30T19:48:38.077918Z 046bb13 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@Mearman
Mearman deleted the branch feat/console-activity October 1, 2026 09:57
@Mearman Mearman closed this Oct 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant