diff --git a/CHECKPOINT-encryption.md b/CHECKPOINT-encryption.md index 81923f2..643445a 100644 --- a/CHECKPOINT-encryption.md +++ b/CHECKPOINT-encryption.md @@ -6,13 +6,14 @@ verified green at the moment this file was written. ## Where things are - Project: `/home/avi/Projects/Nostr_Keynctr` -- Git repo: `master` @ `fa5ba08` ("Security: upgrade nostr stack 0.40->0.45 - clearing 11 RustSec advisories"). Before it: `bf10ae3` (Checkpoint: clarify - NIP-42 status), `e210f17` (Checkpoint: DRY modal save lifecycle / R3), - `7098e75` (refactor: share modal save lifecycle), `e6a1efc` (R4), - `6d5063d` (R2), `1c428a9` (R1). -- Working tree: only the long-standing user changes remain — `concept3.svg` - deleted, `KeynectrAppIconPossibility02.jpeg` untracked. +- Git repo: `master` @ `835b0a0` ("frontend: list all profiles on Home, pin + dev host, widen profiles card"). Before it: `71e580f` (Trim white margins + from sidebar logo artwork), `f29d4f9` (Checkpoint 0.45 migration), + `fa5ba08` (Security: upgrade nostr stack 0.40->0.45), `bf10ae3`, `e210f17`, + `7098e75`, `e6a1efc`, `6d5063d`, `1c428a9`. +- Working tree: still DIRTY with the long-standing user changes — `concept3.svg` + deleted, `KeynectrAppIconPossibility02.jpeg` untracked. These are NOT part + of the frontend commit above and remain uncommitted. ## What was completed @@ -41,6 +42,7 @@ verified green at the moment this file was written. ## Commits added most recently +- `835b0a0` frontend: list all profiles on Home, pin dev host, widen profiles card - `fa5ba08` Security: upgrade nostr stack 0.40->0.45 clearing 11 RustSec advisories ## Verification commands run (all green) @@ -1349,3 +1351,76 @@ $B rename # rename + publish the new name - Relay config at time of writing (all enabled): nos.lol, relay.primal.net, l484.com (user's own), damus.io, snort.social, soloco.nl; relay.nostr.band added but was unreachable (handshake timeout) — retry enabling later. + +## Checkpoint — frontend home screen improvements (2026-08-26) + +A stopping point you can return to if this session is closed. + +### Where things are + +- Project: `/home/avi/Projects/Nostr_Keynctr` +- Git repo: `master`. **Working tree is DIRTY** — the changes below are local + edits and have NOT been committed yet (see "outstanding items"). +- Dev-run fix also applied: `frontend/vite.config.ts` now binds the dev server + to `host: '127.0.0.1'` so Electron (`NOSTR_GUI_DEV_URL=http://127.0.0.1:5173`) + and Vite agree on address and the window is no longer a white box. + +### What was completed (user-facing) + +1. **Profile pictures now show on Home.** The Home screen's active-profile + `Avatar` was missing the `picture` prop, so the image only appeared on the + Profiles screen. `HomeScreen.tsx` now passes `picture={profile.picture}`. +2. **All profiles listed on Home.** Replaced the single "Active profile" card + with a "Your profiles" card listing every profile (avatar + picture, label, + shortened npub, Active badge). Each non-active row has a working **Select** + button (calls `selectProfile`); a **Manage** link goes to the Profiles + screen and an **Add profile** button is at the bottom. +3. **`Badge` now accepts `className`** so the Active badge can be inline next to + the name. +4. **Relays card removed from Home.** The "Relays" card (live connection status, + refresh, "enable a relay" link) is no longer shown on Home — relay status + lives on the Relays screen. Removed the now-unused relay-check logic + (`relayTest`/`runCheck`/`statuses`/`testing`/`enabled`/`Spinner`) and the + corresponding test. +5. **Profile card now full-width on Home.** `.home-grid` was a two-column grid + (profiles + relays); with Relays gone the profiles card only filled the left + half. Changed it to a single `1fr` column and dropped the now-redundant + `@media (max-width: 900px)` override, so "Your profiles" matches the width + of "Most recent publication" below it. No JSX change. + +### Files changed + +- `frontend/src/screens/HomeScreen.tsx` (profiles list + picture prop + select; relays removed) +- `frontend/src/components/Badge.tsx` (add `className` prop) +- `frontend/src/styles.css` (`.home-profile-list` / `.home-profile-row` / etc.) +- `frontend/src/test/HomeScreen.test.tsx` (scope copy-button test to Alice's row; drop relay-status test) +- `frontend/vite.config.ts` (dev server `host: '127.0.0.1'`) + +### Verification commands run (all green) + +Frontend (`frontend/`): `npm run typecheck` clean; `npm run lint` clean; +`npm test` 15 files / 98 tests pass; `npm run format:check` clean (after +`npm run format`). + +### How to use / reproduce + +Dev mode (two terminals, from `~/Projects/Nostr_Keynctr/frontend`): + +``` +# Terminal 1 +npm run dev # prints Local: http://127.0.0.1:5173/ + +# Terminal 2 +NOSTR_GUI_DEV_URL=http://127.0.0.1:5173 npm start +``` + +Home now shows every profile with its picture, and selecting one there updates +the active profile immediately. + +### Outstanding items + +- Committed as `835b0a0`. The working tree still has unrelated user changes + (`concept3.svg` deleted, `KeynectrAppIconPossibility02.jpeg` untracked) that + were intentionally left out of the commit. +- The dev-server `host: '127.0.0.1'` change is intentional; if you later need + LAN access to the dev server, set it back to `true` and use the matching URL.