feat(frontend): the Members page shows addresses to GMs and the owner (#1116) #1117

Merged
claude-bot merged 1 commit from feat/1116-members-email into main 2026-10-10 18:34:54 +00:00
Collaborator

Closes #1116. Records D290 (the owner's answer to Q163).

  • Members.jsx: where the viewer is a GM of the campaign or its owner and a member has an address, it shows under their name as a mailto: link. A player sees none, their own included (it is on their Profile).
  • No backend change: campaign_service.list_members already sends addresses only to GMs, the owner, and each person their own (D275, D285).
  • Members.css: the address wraps anywhere, so a long one does not widen the row on a phone.
  • Members.test.jsx: a GM sees every address; an owner who plays sees them; a player sees none though their own is in the payload; a member with no address gets no extra element.
  • D290 in sources/intro.md, CAMP-8 in headers.md, CATALOGUE.md regenerated by build.ps1.

Run before this PR: eslint (0 errors), vitest run src/pages/Members.test.jsx (87 passed). Not rendered in a browser: the look at 390 px and in dark mode is unchecked; the owner sees it on dev with rc10.

🤖 Generated with Claude Code

Closes #1116. Records D290 (the owner's answer to Q163). - `Members.jsx`: where the viewer is a GM of the campaign or its owner and a member has an address, it shows under their name as a `mailto:` link. A player sees none, their own included (it is on their Profile). - No backend change: `campaign_service.list_members` already sends addresses only to GMs, the owner, and each person their own (D275, D285). - `Members.css`: the address wraps anywhere, so a long one does not widen the row on a phone. - `Members.test.jsx`: a GM sees every address; an owner who plays sees them; a player sees none though their own is in the payload; a member with no address gets no extra element. - D290 in `sources/intro.md`, CAMP-8 in `headers.md`, `CATALOGUE.md` regenerated by `build.ps1`. Run before this PR: eslint (0 errors), `vitest run src/pages/Members.test.jsx` (87 passed). **Not rendered in a browser**: the look at 390 px and in dark mode is unchecked; the owner sees it on dev with rc10. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(webapp): the Members page shows each member's email to GMs and the owner (#1116)
All checks were successful
CI / Backend lint (ruff) (pull_request) Successful in 33s
CI / Does this change touch the recording path? (pull_request) Successful in 33s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Has been skipped
CI / Bot/backend version sync (pull_request) Successful in 52s
CI / Feedback site tests (pull_request) Successful in 53s
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 1m5s
CI / Bot tests and audit (pull_request) Successful in 1m57s
CI / Docker image build (pull_request) Successful in 5m43s
CI / Frontend (shard 2/2) (pull_request) Successful in 7m41s
CI / Frontend (shard 1/2) (pull_request) Successful in 17m2s
CI / End-to-end journeys (phone) (pull_request) Successful in 13m8s
CI / End-to-end journeys (keyboard) (pull_request) Successful in 14m53s
CI / End-to-end journeys (desktop) (pull_request) Successful in 21m10s
CI / Backend migration, tests, and audit (pull_request) Successful in 32m25s
7102bcbc9e
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-bot deleted branch feat/1116-members-email 2026-10-10 18:34:54 +00:00
Sign in to join this conversation.
No description provided.