Skip to content

Marketing screenshot infra + ThresholdsView extraction#4

Closed
PrernaWeb wants to merge 3 commits into
testflight/no-paywallfrom
app/marketing-screenshot-infra
Closed

Marketing screenshot infra + ThresholdsView extraction#4
PrernaWeb wants to merge 3 commits into
testflight/no-paywallfrom
app/marketing-screenshot-infra

Conversation

@PrernaWeb

Copy link
Copy Markdown
Owner

Supporting app-side changes behind the CoachSage website refresh (the site content itself already shipped to `main`). Everything here is DEBUG/`COACHSAGE_DEMO`-gated except the ThresholdsView extraction, which is a behaviour-preserving refactor.

Commits

  • Extract Training thresholds into `ThresholdsView` — pulls the ~130-line thresholds section (run pace / FTP / swim CSS / threshold HR, the confirm flow, and the stale-set re-estimate nudge) out of the large `SettingsView` into its own view whose body is a `Section`, so it renders identically embedded in Settings' `Form` or standalone. Pure refactor.
  • Demo routes + seed data (Progress, Season, Thresholds) — `DemoMode` seeds an A/B/C season and 12 weeks of progress history (realistic easy-session HR so the sRPE CTL/ATL land credibly); `HomeModel.refreshProgress` uses it in demo mode; `COACHSAGE_SCREEN` routes added. The progress route owns its `HomeModel` via `@StateObject` so the async load survives a demo-root re-render.
  • Widget + Apple Watch demo capture paths — `WidgetMockupView` (re-created medium widget for capture, like `LiveActivityScreenshotView`) + `COACHSAGE_SCREEN=widget`; `RunCoachWatchApp` seeds a demo `WidgetSnapshot` under `COACHSAGE_DEMO` so the standalone watch app renders on a watchOS sim.

Notes

  • DEBUG-gated demo code can't affect release builds.
  • Local DEBUG build passes; capture pipeline verified end-to-end (screenshots are live on the site).

🤖 Generated with Claude Code

PrernaWeb and others added 3 commits July 22, 2026 09:31
Moves the ~130-line thresholds block (run pace / FTP / swim CSS / threshold
HR, the confirm flow, and the stale-set re-estimate nudge) out of the large
SettingsView into its own view. Its body is a Section, so it renders
identically whether embedded in Settings' Form or shown on its own. Pure,
behaviour-preserving refactor; SettingsView now calls ThresholdsView(model:).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
DEBUG/COACHSAGE_DEMO-gated only:
- DemoMode: seed a full A/B/C season and 12 weeks of progressHistory (with
  realistic easy-session heart rates so the sRPE-based CTL/ATL land in a
  credible range rather than elite figures).
- HomeModel.refreshProgress: use the seeded history in demo mode so the
  Progress screen renders without HealthKit data.
- RunCoachApp: add progress/season/thresholds COACHSAGE_SCREEN routes. The
  progress route owns its HomeModel via @StateObject so the async history
  load survives a demo-root re-render (inline models were captured empty).
- capture script: add the three new screens.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- WidgetMockupView + COACHSAGE_SCREEN=widget route: renders the medium
  Home Screen widget on a wallpaper for marketing capture (re-created for
  capture like LiveActivityScreenshotView, since a widget extension can't be
  screenshotted from the app).
- RunCoachWatchApp: seed a demo WidgetSnapshot into the App-Group store under
  COACHSAGE_DEMO so the standalone watch app renders real content on a
  watchOS sim (no phone to sync from). DEBUG-only.
- capture script: add the widget screen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
coachsage-site Ready Ready Preview, Comment Jul 21, 2026 11:32pm
run-coach Ready Ready Preview, Comment Jul 21, 2026 11:32pm

@PrernaWeb

Copy link
Copy Markdown
Owner Author

Superseded by #5 (ThresholdsView refactor — the only production change) and #6 (DEBUG demo-capture infra, stacked on #5), to isolate the reviewable refactor from the demo scaffolding.

@PrernaWeb PrernaWeb closed this Jul 21, 2026
@PrernaWeb
PrernaWeb deleted the app/marketing-screenshot-infra branch July 21, 2026 23:46
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