Skip to content

Capture the profile and channel screens - #1399

Merged
johnpooch merged 2 commits into
mainfrom
claude/storybook-screenshot-feasibility-vlb5xq
Sep 25, 2026
Merged

johnpooch merged 2 commits into
mainfrom
claude/storybook-screenshot-feasibility-vlb5xq

Conversation

@johnpooch

Copy link
Copy Markdown
Owner

What this PR does

Adds three screens the screenshot matrix never captured: Home/PlayerProfile, GameDetail/PlayerProfileScreen and GameDetail/ChannelScreen.

This is a follow-up to #1374, which is merged. It changes scripts/screenshot-diff/manifest.mjs only.

Why they were missing

Every route the manifest omitted takes a parameter — :userId, :channelId, :memberId, :variantId. The game screens are expanded from fixture data that already carried the game and phase ids, so routes needing any other id fell through that seam and were never listed.

#1397 is a live example: it restyles PlayerProfileContent.tsx, PlayerProfileScreen.tsx and Home/PlayerProfile.tsx, and the screenshot diff reported no change on any of them, because none were captured.

How the ids are derived

Channel and in-game profile screens expand from each fixture the same way the existing game screens do, so they follow new fixtures without editing the manifest:

  • Channel — the fixture's first channel id.
  • In-game profile — the first member holding a public profile. not-joined and seat-open-spectator use member ids the mock profile store does not hold, so they would otherwise capture a not-found screen; they get a channel screen but no profile screen. Another player is preferred over the current user, whose own profile renders the sparser self view.

The standalone /player/2 screen is a flat addition, since it takes no game context.

Coverage

113 screens → 138, so 226 captures → 276 across both viewports.

Verification

All 50 new captures render real content — I checked the composites rather than trusting the capture's exit status, since an error boundary captures just as cleanly as a working screen.

Two independent local runs of the 50 new captures report 0 differences at the 25 px threshold. Below the threshold, 10 of the channel screens drift by 2 px — the same message-composer signature the existing chat screens already show, and well under the reporting floor.

Checklist

  • This PR does one thing — no unrelated fixes, refactors, or drive-by cleanups bundled in
  • For PRs of any significant complexity: I ran /review-pr against this PR in Claude Code and addressed (or responded to) its findings
  • Tests cover the change — manifest data, verified by capturing and inspecting all 50 new screens
  • Screenshots embedded in the PR description for any visual changes — no user-facing UI changes in this PR

🤖 Generated with Claude Code

https://claude.ai/code/session_01Rpdnjrt6eQYMbJFRKLHEXE


Generated by Claude Code

PlayerProfile, PlayerProfileScreen and ChannelScreen were never captured.
Every route the manifest missed takes a parameter, and the game screens were
expanded from fixture data that already carried the game and phase ids, so
the routes needing a user, channel or member id fell through that seam.

The channel and in-game profile screens derive their ids from each fixture
the same way, so they follow new fixtures without editing this file. Members
are filtered to those with a public profile, since not-joined and
seat-open-spectator use ids the mock profile store does not hold and would
otherwise capture a not-found screen; another player is preferred over the
current user, whose profile renders the sparser self view.

Takes the matrix from 113 screens to 138, or 276 captures across both
viewports.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rpdnjrt6eQYMbJFRKLHEXE
@github-actions

Copy link
Copy Markdown
Contributor

Screenshot diff

0 screens changed of 276 captured.

No visual differences found.

@johnpooch
johnpooch merged commit e07dce6 into main Sep 25, 2026
25 checks passed
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.

2 participants