Veterans Across Service Branches
U.S. ArmyU.S. Marine CorpsU.S. NavyU.S. Air ForceU.S. Coast GuardU.S. Space Force
v0.1.1 · 7b8a3f4

Public Progress

Feature Roadmap Tracker

This board tracks requested changes and their completion status.

[Runtime/Auth] /apps

runtime_event: unhandled_error error_string: Loading chunk 191 failed. (error: https://www.pghwarriorhockey.org/_next/static/chunks/191.fb54a1992d51fd19.js?dpl=dpl_GTfLCez1YAgoHZPHLsmZVf1RTBbe) error_string: Loading chunk 191 failed. (error: https://www.pghwarriorhockey.org/_next/static/chunks/191.fb54a1992d51fd19.js?dpl=dpl_GTfLCez1YAgoHZPHLsmZVf1RTBbe) request_id: iad1::7xwrs-1776012700399-20c7079f2306 digest: none route: /apps oauth_provider: none oauth_stage: none cookie_state_present: false host: www platform: web last_seen_utc: 2026-04-12T16:51:40.550Z qa_failure_digest: a2b9c12736d62a91582d4e6cdb29ce868fd53683621758e9e01ddf3e81240383 github_sync_status: missing_link github_sync_checked_utc: 2026-04-12T16:51:40.550Z github_sync_error: runtime_intake_missing_issue_link occurrence_count: 1

Updated 4/12/2026, 4:51:40 PM

Backlog
[Runtime/Auth] /roster

runtime_event: unhandled_error error_string: Loading chunk 7601 failed. (error: https://www.pghwarriorhockey.org/_next/static/chunks/app/error-dc7155813d87441b.js?dpl=dpl_4uYzDmRyJ9bCqN21hrjGkzAAtyy5) error_string: Loading chunk 7601 failed. (error: https://www.pghwarriorhockey.org/_next/static/chunks/app/error-dc7155813d87441b.js?dpl=dpl_4uYzDmRyJ9bCqN21hrjGkzAAtyy5) request_id: iad1::sqhsk-1775777988036-22442f955d0b digest: none route: /roster oauth_provider: none oauth_stage: none cookie_state_present: false host: www platform: web last_seen_utc: 2026-04-09T23:39:48.664Z qa_failure_digest: b0fd18c0d5a6397500848b79f7ee72339c8e4fa362e2e6a4d6098f7136c97c24 github_sync_status: missing_link github_sync_checked_utc: 2026-04-09T23:39:48.664Z github_sync_error: runtime_intake_missing_issue_link occurrence_count: 1

Updated 4/9/2026, 11:39:48 PM

Backlog
[Runtime/Auth] /roster/cmmkkcm1u00goqqp9ps2gx951

runtime_event: unhandled_error error_string: Loading chunk 1690 failed. (error: https://www.pghwarriorhockey.org/_next/static/chunks/app/layout-569e6584960b727e.js?dpl=dpl_6GAEyL2V1MQQRQx5245AaxqPxP2E) error_string: Loading chunk 1690 failed. (error: https://www.pghwarriorhockey.org/_next/static/chunks/app/layout-569e6584960b727e.js?dpl=dpl_6GAEyL2V1MQQRQx5245AaxqPxP2E) request_id: none digest: none route: /roster/cmmkkcm1u00goqqp9ps2gx951 oauth_provider: none oauth_stage: none cookie_state_present: false host: www platform: web last_seen_utc: 2026-03-30T15:18:55.917Z qa_failure_digest: be997f9fad23f6e34d8c21cb03366f16e90669f681311fa0dd60824d05d20291 github_sync_status: missing_link github_sync_checked_utc: 2026-03-30T15:18:55.917Z github_sync_error: runtime_intake_missing_issue_link occurrence_count: 1

Updated 3/30/2026, 3:18:55 PM

Backlog
Homepage feature: daily 'Meet a Pittsburgh Warrior' spotlight

Summary: Turn the existing homepage spotlight into a real daily featured Warrior block. github_issue: #341 why: current homepage spotlight logic is buried, random per request, and links to the general roster instead of a dedicated spotlight destination. heading: Meet a Pittsburgh Warrior requirements: one featured player per day; photo + name + branch + jersey + short bio; click-through to dedicated spotlight/profile page; fallback only if no eligible player exists. implementation_notes: reuse existing homepage spotlight/profile data; make selection deterministic by date; keep website/backend as source of truth; add regression coverage for homepage block and spotlight destination. acceptance: homepage renders the new spotlight block with stable daily rotation; spotlight entry changes at most once per day; clicking lands on a dedicated spotlight/profile page; fallback only when no eligible player with required data exists.

Updated 3/28/2026, 12:48:26 PM

Backlog
Bug report: Test

reporter: Guest reporter_email: Not provided page_url: Not provided user_agent: Not provided Test error_string: Test request_id: none digest: none route: unknown oauth_provider: none oauth_stage: none cookie_state_present: false host: www platform: web last_seen_utc: 2026-03-28T02:58:42.908Z qa_failure_digest: d0b0f8a9668cba42a992ff8324fb4b08deed99125ae56476e5fe7e0975883319 github_sync_status: missing_link github_sync_checked_utc: 2026-03-28T02:58:42.908Z github_sync_error: runtime_intake_missing_issue_link occurrence_count: 1

Updated 3/28/2026, 2:58:42 AM

Backlog
[Runtime/Auth] /

runtime_event: unhandled_error error_string: manual_sentry_probe_after_self_init error_string: manual_sentry_probe_after_self_init request_id: iad1::2zz5v-1774648159816-12117b08461b digest: none route: / oauth_provider: none oauth_stage: none cookie_state_present: false host: www platform: web last_seen_utc: 2026-03-27T21:49:20.018Z qa_failure_digest: 3f49195a91d6568e792fe2654893d7a0003654a1bd4aa6521706300bc281e908 github_sync_status: missing_link github_sync_checked_utc: 2026-03-27T21:49:20.018Z github_sync_error: runtime_intake_missing_issue_link occurrence_count: 1

Updated 3/27/2026, 9:49:20 PM

Backlog
[Runtime/Auth] /

runtime_event: unhandled_error error_string: manual_sentry_env_probe error_string: manual_sentry_env_probe request_id: iad1::fhpnq-1774646927103-a1b46fc25c78 digest: none route: / oauth_provider: none oauth_stage: none cookie_state_present: false host: www platform: web last_seen_utc: 2026-03-27T21:28:47.160Z qa_failure_digest: b9820683deded4cd61f4a26c0a42b281946e949131bd1253364172f59efed838 github_sync_status: missing_link github_sync_checked_utc: 2026-03-27T21:28:47.160Z github_sync_error: runtime_intake_missing_issue_link occurrence_count: 1

Updated 3/27/2026, 9:28:47 PM

Backlog
[Runtime/Auth] /

runtime_event: unhandled_error error_string: manual_sentry_probe_after_fix error_string: manual_sentry_probe_after_fix request_id: iad1::rgp4l-1774646890970-629a639c59a4 digest: none route: / oauth_provider: none oauth_stage: none cookie_state_present: false host: www platform: web last_seen_utc: 2026-03-27T21:28:11.134Z qa_failure_digest: 98415a88426a534c715cd69d93e9955d2812830651699fab97e39827ab2c708d github_sync_status: missing_link github_sync_checked_utc: 2026-03-27T21:28:11.134Z github_sync_error: runtime_intake_missing_issue_link occurrence_count: 1

Updated 3/27/2026, 9:28:11 PM

Backlog
[Runtime/Auth] /

runtime_event: unhandled_error error_string: manual_sentry_test_from_cli_after_ready error_string: manual_sentry_test_from_cli_after_ready request_id: none digest: none route: / oauth_provider: none oauth_stage: none cookie_state_present: false host: www platform: web last_seen_utc: 2026-03-27T21:13:07.847Z qa_failure_digest: 8e1dab17da1b009bf70447bb7adbc9385d675451afb92f1b6b99b854a3eaaba5 github_sync_status: missing_link github_sync_checked_utc: 2026-03-27T21:13:07.847Z github_sync_error: runtime_intake_missing_issue_link occurrence_count: 1

Updated 3/27/2026, 9:13:07 PM

Backlog
[Runtime/Auth] /

runtime_event: unhandled_error error_string: manual_sentry_test_from_cli error_string: manual_sentry_test_from_cli request_id: none digest: none route: / oauth_provider: none oauth_stage: none cookie_state_present: false host: www platform: web last_seen_utc: 2026-03-27T21:11:20.975Z qa_failure_digest: dd1b447f6a863279b45e2a65560b6bfe7addf2b7b5a1712f441a77a261b3e5ba github_sync_status: missing_link github_sync_checked_utc: 2026-03-27T21:11:20.975Z github_sync_error: runtime_intake_missing_issue_link occurrence_count: 1

Updated 3/27/2026, 9:11:20 PM

Backlog
[Runtime/Auth] /

runtime_event: unhandled_error error_string: manual_sentry_test_from_prod error_string: manual_sentry_test_from_prod request_id: none digest: none route: / oauth_provider: none oauth_stage: none cookie_state_present: false host: www platform: web last_seen_utc: 2026-03-27T21:09:56.905Z qa_failure_digest: 385c490ba86249e9333e11f1f02e6ec57560e53450070a8714cb48c0cbcbd9db github_sync_status: missing_link github_sync_checked_utc: 2026-03-27T21:09:56.905Z github_sync_error: runtime_intake_missing_issue_link occurrence_count: 1

Updated 3/27/2026, 9:09:56 PM

Backlog
[Runtime/Auth] /admin/login-adoption

runtime_event: unhandled_error error_string: manual_sentry_test_from_prod error_string: manual_sentry_test_from_prod request_id: none digest: none route: /admin/login-adoption oauth_provider: none oauth_stage: none cookie_state_present: false host: www platform: web last_seen_utc: 2026-03-27T20:49:27.606Z qa_failure_digest: afe4cf3c72e65ffc681132245e595ff20a5f5ca6b39a5f664ff0e407610251a6 github_sync_status: missing_link github_sync_checked_utc: 2026-03-27T20:49:27.606Z github_sync_error: runtime_intake_missing_issue_link occurrence_count: 1

Updated 3/27/2026, 8:49:27 PM

Backlog
Follow-through: add Google Places only for scoped address precision

Address precision problems should be fixed at the point of entry, but only in scoped places where verified addresses materially improve directions/logistics. Acceptance: Google Places autocomplete is added in the approved scoped flows, starting with player profile address entry, without turning into a broad maps rewrite. owner: thread-a triage_state: active last_checked_utc: 2026-03-27T20:04:17.059Z backlog_track: follow_through_2026_03_27 github_issue: #340 github_issue_url: https://github.com/Pittsburgh-Warriors-Hockey/warriors-website/issues/340 github_sync_status: linked_seed_script github_sync_checked_utc: 2026-03-27T20:04:17.059Z acceptance_criteria: Google Places autocomplete is added in the approved scoped flows, starting with player profile address entry, without turning into a broad maps rewrite.

Updated 3/27/2026, 8:04:17 PM

Backlog
Follow-through: add Checkly monitors for critical public journeys

Critical public routes still need synthetic black-box monitoring so 404s and 500s are detected before users report them. Acceptance: Checkly monitors run against the critical public paths and alert when routes like /events, /about/teams, /login, or /forgot-password regress. owner: thread-a triage_state: active last_checked_utc: 2026-03-27T20:04:17.059Z backlog_track: follow_through_2026_03_27 github_issue: #339 github_issue_url: https://github.com/Pittsburgh-Warriors-Hockey/warriors-website/issues/339 github_sync_status: linked_seed_script github_sync_checked_utc: 2026-03-27T20:04:17.059Z acceptance_criteria: Checkly monitors run against the critical public paths and alert when routes like /events, /about/teams, /login, or /forgot-password regress.

Updated 3/27/2026, 8:04:17 PM

Backlog
Follow-through: add Sentry for cross-platform error attribution

The website/admin layer still lacks first-class stack traces and request-correlated visibility for 500s and rendering fallbacks, which slows down incident closure. Acceptance: Sentry is wired into the website/admin layer with request correlation, actionable server/client traces, and validated production reporting for real failures. owner: thread-a triage_state: active last_checked_utc: 2026-03-27T20:04:17.059Z backlog_track: follow_through_2026_03_27 github_issue: #338 github_issue_url: https://github.com/Pittsburgh-Warriors-Hockey/warriors-website/issues/338 github_sync_status: linked_seed_script github_sync_checked_utc: 2026-03-27T20:04:17.059Z acceptance_criteria: Sentry is wired into the website/admin layer with request correlation, actionable server/client traces, and validated production reporting for real failures.

Updated 3/27/2026, 8:04:17 PM

Backlog
Follow-through: use Brevo SMS for simple operational alerts only

Brevo SMS is a fit for short outbound reminders and schedule-change alerts, but not for core account recovery or complex reply workflows. Acceptance: a limited outbound Brevo SMS path exists for basic operational alerts, with scope explicitly restricted away from auth/recovery and conversational support. acceptance_criteria: a limited outbound Brevo SMS path exists for basic operational alerts, with scope explicitly restricted away from auth/recovery and conversational support. owner: thread-a triage_state: active last_checked_utc: 2026-03-27T20:04:17.059Z backlog_track: follow_through_2026_03_27 github_issue: #337 github_issue_url: https://github.com/Pittsburgh-Warriors-Hockey/warriors-website/issues/337 github_sync_status: linked_existing_issue github_sync_checked_utc: 2026-03-27T20:04:17.059Z

Updated 3/27/2026, 8:04:17 PM

Backlog
Follow-through: move website transactional email to the Brevo Email API

Brevo should become the canonical transactional email provider for the website so password reset, alerts, and ops messages stop depending on ad hoc SMTP behavior. Acceptance: the website sends transactional email through the Brevo Email API for password reset and core ops/user notifications, with logs/templates verified live. acceptance_criteria: the website sends transactional email through the Brevo Email API for password reset and core ops/user notifications, with logs/templates verified live. owner: thread-a triage_state: active last_checked_utc: 2026-03-27T20:04:17.059Z backlog_track: follow_through_2026_03_27 github_issue: #336 github_issue_url: https://github.com/Pittsburgh-Warriors-Hockey/warriors-website/issues/336 github_sync_status: linked_existing_issue github_sync_checked_utc: 2026-03-27T20:04:17.059Z

Updated 3/27/2026, 8:04:17 PM

Backlog
Follow-through: complete iOS TestFlight release readiness

The mobile lane still needs signing/build/distribution closure before the current app is truly available in TestFlight. Acceptance: a current iOS build is successfully processed in App Store Connect and available in TestFlight for the intended tester group. acceptance_criteria: a current iOS build is successfully processed in App Store Connect and available in TestFlight for the intended tester group. owner: thread-c triage_state: active last_checked_utc: 2026-03-27T20:04:17.059Z backlog_track: follow_through_2026_03_27 github_issue: #335 github_issue_url: https://github.com/Pittsburgh-Warriors-Hockey/warriors-website/issues/335 github_sync_status: linked_existing_issue github_sync_checked_utc: 2026-03-27T20:04:17.059Z

Updated 3/27/2026, 8:04:17 PM

Backlog
P0: close the remaining player events production smoke failure

Production smoke still reports that /player?section=events returns 200 but falls into the section fallback for real player data. Acceptance: qa:prod-p0-smoke passes 29/29, including player events render without fallback for the dedicated prod smoke player. acceptance_criteria: qa:prod-p0-smoke passes 29/29, including player events render without fallback for the dedicated prod smoke player. owner: thread-b triage_state: active last_checked_utc: 2026-03-27T20:04:17.059Z backlog_track: follow_through_2026_03_27 github_issue: #334 github_issue_url: https://github.com/Pittsburgh-Warriors-Hockey/warriors-website/issues/334 github_sync_status: linked_existing_issue github_sync_checked_utc: 2026-03-27T20:04:17.059Z

Updated 3/27/2026, 8:04:17 PM

Backlog
Follow-through: surface TestFlight and app-interest leads cleanly in admin

The app/TestFlight intake path exists, but admin visibility and follow-up workflow are still weaker than they should be. Acceptance: admin users can clearly see, filter, and act on TestFlight/app-interest submissions without manual inbox chasing. acceptance_criteria: admin users can clearly see, filter, and act on TestFlight/app-interest submissions without manual inbox chasing. owner: thread-b triage_state: active last_checked_utc: 2026-03-27T20:04:17.059Z backlog_track: follow_through_2026_03_27 github_issue: #333 github_issue_url: https://github.com/Pittsburgh-Warriors-Hockey/warriors-website/issues/333 github_sync_status: linked_existing_issue github_sync_checked_utc: 2026-03-27T20:04:17.059Z

Updated 3/27/2026, 8:04:17 PM

Backlog
Follow-through: verify Cloudflare Turnstile enforcement on public forms

Turnstile code exists, but it still needs live verification across the public/high-risk form surfaces. Acceptance: Turnstile is active and verified on login, join, support, report, and forgot-password flows without breaking real submissions. acceptance_criteria: Turnstile is active and verified on login, join, support, report, and forgot-password flows without breaking real submissions. owner: thread-a triage_state: active last_checked_utc: 2026-03-27T20:04:17.059Z backlog_track: follow_through_2026_03_27 github_issue: #332 github_issue_url: https://github.com/Pittsburgh-Warriors-Hockey/warriors-website/issues/332 github_sync_status: linked_existing_issue github_sync_checked_utc: 2026-03-27T20:04:17.059Z

Updated 3/27/2026, 8:04:17 PM

Backlog
Follow-through: operationalize Brevo as the real group mailer

Brevo integration code exists, but list sync, operator workflow, and end-to-end send verification are not fully closed. Acceptance: live contacts sync to the intended Brevo lists, operator send flow is documented, and website-triggered mailing paths are verified. acceptance_criteria: live contacts sync to the intended Brevo lists, operator send flow is documented, and website-triggered mailing paths are verified. owner: thread-a triage_state: active last_checked_utc: 2026-03-27T20:04:17.059Z backlog_track: follow_through_2026_03_27 github_issue: #331 github_issue_url: https://github.com/Pittsburgh-Warriors-Hockey/warriors-website/issues/331 github_sync_status: linked_existing_issue github_sync_checked_utc: 2026-03-27T20:04:17.059Z

Updated 3/27/2026, 8:04:17 PM

Backlog
Follow-through: verify passkey enrollment, login, and revoke on production

Passkey flows exist and RP ID drift was patched, but the live .org behavior still needs full registration/login/revoke verification. Acceptance: add passkey, sign in with passkey, and revoke passkey all work on production with accurate fallback guidance. acceptance_criteria: add passkey, sign in with passkey, and revoke passkey all work on production with accurate fallback guidance. owner: thread-a triage_state: active last_checked_utc: 2026-03-27T20:04:17.059Z backlog_track: follow_through_2026_03_27 github_issue: #330 github_issue_url: https://github.com/Pittsburgh-Warriors-Hockey/warriors-website/issues/330 github_sync_status: linked_existing_issue github_sync_checked_utc: 2026-03-27T20:04:17.059Z

Updated 3/27/2026, 8:04:17 PM

Backlog
Follow-through: link existing accounts to Google and Apple identities

Existing password/Wix users still lack a clean account-linking flow for Google and Apple, which creates account-not-found and duplicate-account risk. Acceptance: existing users can safely link or merge Google/Apple identities to their current account without duplicate profile creation. acceptance_criteria: existing users can safely link or merge Google/Apple identities to their current account without duplicate profile creation. owner: thread-a triage_state: active last_checked_utc: 2026-03-27T20:04:17.059Z backlog_track: follow_through_2026_03_27 github_issue: #329 github_issue_url: https://github.com/Pittsburgh-Warriors-Hockey/warriors-website/issues/329 github_sync_status: linked_existing_issue github_sync_checked_utc: 2026-03-27T20:04:17.059Z

Updated 3/27/2026, 8:04:17 PM

Backlog
Follow-through: complete Apple sign-in production rollout

Apple OAuth routes and UI exist, but production readiness still needs real callback and account-path verification. Acceptance: Apple sign-in works on /login and /join in production, with correct callback handling and no approval/config drift. acceptance_criteria: Apple sign-in works on /login and /join in production, with correct callback handling and no approval/config drift. owner: thread-a triage_state: active last_checked_utc: 2026-03-27T20:04:17.059Z backlog_track: follow_through_2026_03_27 github_issue: #328 github_issue_url: https://github.com/Pittsburgh-Warriors-Hockey/warriors-website/issues/328 github_sync_status: linked_existing_issue github_sync_checked_utc: 2026-03-27T20:04:17.059Z

Updated 3/27/2026, 8:04:17 PM

Backlog
Follow-through: complete Google sign-in production rollout

Google OAuth routes and UI exist, but production rollout is not treated as complete until first-time and returning sign-in are verified live. Acceptance: Google sign-in works on /login and /join in production for both new and existing users, with correct returnTo handling and no stale error copy. acceptance_criteria: Google sign-in works on /login and /join in production for both new and existing users, with correct returnTo handling and no stale error copy. owner: thread-a triage_state: active last_checked_utc: 2026-03-27T20:04:17.059Z backlog_track: follow_through_2026_03_27 github_issue: #327 github_issue_url: https://github.com/Pittsburgh-Warriors-Hockey/warriors-website/issues/327 github_sync_status: linked_existing_issue github_sync_checked_utc: 2026-03-27T20:04:17.059Z

Updated 3/27/2026, 8:04:17 PM

Backlog
Follow-through: verify Friends page live and expand program roster

The Friends page is implemented, but it still needs live verification, visual QA, and likely expansion of the program/logo set. Acceptance: /about/friends is live on production, nav-linked, visually stable on desktop/mobile, and the friend-program list is reviewed for completeness. acceptance_criteria: /about/friends is live on production, nav-linked, visually stable on desktop/mobile, and the friend-program list is reviewed for completeness. owner: thread-b triage_state: active last_checked_utc: 2026-03-27T20:04:17.059Z backlog_track: follow_through_2026_03_27 github_issue: #326 github_issue_url: https://github.com/Pittsburgh-Warriors-Hockey/warriors-website/issues/326 github_sync_status: linked_existing_issue github_sync_checked_utc: 2026-03-27T20:04:17.059Z

Updated 3/27/2026, 8:04:17 PM

Backlog
[QA] player-hub.spec.ts :: can interact with the events page

Reproduce: npx playwright test player-hub.spec.ts -g "can interact with the events page" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:41:02.831Z qa_failure_digest: 581c585c93b22fb66e34f59a7c1fa7d55e7819fbde92a32da39f0f241e4b4fd5

Updated 3/23/2026, 1:41:02 PM

Backlog
[QA] events-admin.spec.ts :: Can access Quick Event creation tool

Reproduce: npx playwright test events-admin.spec.ts -g "Can access Quick Event creation tool" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:41:02.396Z qa_failure_digest: c4dda06494d1af0c39a58317113ed44181a4dd1e49989190dcb85b479c3843f0

Updated 3/23/2026, 1:41:02 PM

Backlog
[QA] chat-e2e.spec.ts :: composer successfully sends a message

Reproduce: npx playwright test chat-e2e.spec.ts -g "composer successfully sends a message" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:41:01.976Z qa_failure_digest: 53d5242efebfbf4b9e3e10428764e2ff45e37e8df6a83004a10e09de19bfcccb

Updated 3/23/2026, 1:41:01 PM

Backlog
[QA] season-10-dvhl.spec.ts :: should complete a full season lifecycle

Reproduce: npx playwright test season-10-dvhl.spec.ts -g "should complete a full season lifecycle" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:41:01.521Z qa_failure_digest: 8aa55a3aa2016eef77da6d9081a785a095bbc8667f2494f4dc973d50ce3c8ef0

Updated 3/23/2026, 1:41:01 PM

Backlog
[QA] player-profile.spec.ts :: should be able to access a player profile via roster ID

Reproduce: npx playwright test player-profile.spec.ts -g "should be able to access a player profile via roster ID" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:41:00.169Z qa_failure_digest: 37293dd634eafcd0f3b79b297ec77c05977ef29124512e5fd01b534d5d99ae97

Updated 3/23/2026, 1:41:00 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: mobile /admin/league-hub?tab=members

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "mobile /admin/league-hub?tab=members" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:58.845Z qa_failure_digest: 3847559667180d54ba9638b8bdf6e60192fd37df6bd597ad5ba8af2cd349a6d4

Updated 3/23/2026, 1:40:58 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: mobile /login

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "mobile /login" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:58.021Z qa_failure_digest: 035a60da0a8ea5614dbc16fadbda42ebf212ab4c65ddc9d20c95616cc640dee6

Updated 3/23/2026, 1:40:58 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: mobile /events

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "mobile /events" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:57.594Z qa_failure_digest: 166483e0369263d09c6223741ef1420430f1b470647f3b12a635f1b1a9379e85

Updated 3/23/2026, 1:40:57 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: mobile /

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "mobile /" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:57.170Z qa_failure_digest: 11fd8c3c1317ca3a63dcda0980f0a7a569b113f5e865104a3479876140a5de3b

Updated 3/23/2026, 1:40:57 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: admin /admin/league-hub?tab=seasons

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "admin /admin/league-hub?tab=seasons" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:56.680Z qa_failure_digest: b48a37795f343ef08ba380a62be574f52b242f9455270347fc6f772e4c4a6777

Updated 3/23/2026, 1:40:56 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: admin /admin/league-hub?tab=teams

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "admin /admin/league-hub?tab=teams" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:56.244Z qa_failure_digest: 8e54f44318a757381f667aebe8c957045488381ebe073be8645da50743d34f13

Updated 3/23/2026, 1:40:56 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: admin /admin/league-hub?tab=competitions

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "admin /admin/league-hub?tab=competitions" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:55.832Z qa_failure_digest: 51a08a4d9e170b1a7ae4c7fb5681ac5813d59734ec744ced6c4402cb6fcbb7ca

Updated 3/23/2026, 1:40:55 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: admin /admin/league-hub?tab=members

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "admin /admin/league-hub?tab=members" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:55.391Z qa_failure_digest: d250ee41ee998d902a773716bfbb354a6e16a5b0c052e5ec9e783d16364a971a

Updated 3/23/2026, 1:40:55 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: admin /admin/league-hub?tab=dashboard

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "admin /admin/league-hub?tab=dashboard" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:54.965Z qa_failure_digest: 458f4f39e731b2a9d72a0e35a2876fc0326e5fe7fee4a83beeb77c3d6f72fcdd

Updated 3/23/2026, 1:40:54 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: admin /admin

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "admin /admin" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:54.536Z qa_failure_digest: ae9d2d5803bb1b38afb94245a5609ba5477ab84feb7582a11b5ea04b40b35fa1

Updated 3/23/2026, 1:40:54 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: public /login

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "public /login" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:54.101Z qa_failure_digest: abd67abbc65adb97f8a68852377c65ee24b4a44e2c41fb18f2fedbe41da1edad

Updated 3/23/2026, 1:40:54 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: public /support

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "public /support" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:53.665Z qa_failure_digest: 1265112ee17e370c1b5e52c669628038a4b9a05812bb8f5640caa1a93bf9e8a3

Updated 3/23/2026, 1:40:53 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: public /roster

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "public /roster" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:53.231Z qa_failure_digest: 4ae4098ad17451337fee5b6885b89cdbebb5d33de108bd8d2e4cfec134af8ef0

Updated 3/23/2026, 1:40:53 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: public /news

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "public /news" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:52.763Z qa_failure_digest: e191dbc4f54c1ffbe576c4411cbc4abc695a11ccd4e8bf6a0a21e882e11d8cee

Updated 3/23/2026, 1:40:52 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: public /games

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "public /games" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:52.347Z qa_failure_digest: 9c950fb8f247f443d6079c2bb1602f372525f616ac2b1770026e1f6b966634f5

Updated 3/23/2026, 1:40:52 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: public /calendar

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "public /calendar" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:51.932Z qa_failure_digest: d6024aa6beac299590008cb804a4c94a4d910485d3b54713b17ffa68e757b1d1

Updated 3/23/2026, 1:40:51 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: public /events

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "public /events" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:36.733Z qa_failure_digest: f6739ef96ce256e835bdb342c61bea6cbe38cb729a076e1bc90929d9912f000b

Updated 3/23/2026, 1:40:36 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: public /about

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "public /about" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:36.317Z qa_failure_digest: b678c98d4e8e553918f868e3bbfb3eaca2f130071f07089c80a202eb82d48528

Updated 3/23/2026, 1:40:36 PM

Backlog
[QA] ui-visual-fullsite.spec.ts :: public /

Reproduce: npx playwright test ui-visual-fullsite.spec.ts -g "public /" Error: Unknown error Unknown error github_sync_status: missing_link github_sync_error: runtime_ingest_missing_issue_link github_sync_checked_utc: 2026-03-23T13:40:35.628Z qa_failure_digest: 609d2d5ea23b399e5c815c2f1b16c25cb5d927aeab682e163dc2079e2993cb89

Updated 3/23/2026, 1:40:35 PM

Backlog
[Runtime/Auth] /admin/league-hub

occurrence_count: 2 runtime_event: unhandled_error error_string: null is not an object (evaluating 't.parallelRoutes.get') request_id: none digest: none route: /admin/league-hub oauth_provider: none oauth_stage: none cookie_state_present: false host: www platform: web last_seen_utc: 2026-03-23T12:46:36.258Z qa_failure_digest: 7113dfa3defbf086beda45a1affb83c5ad194c2bf67fe5f9fd3cb7344533c562 github_sync_status: missing_link github_sync_checked_utc: 2026-03-23T12:46:36.258Z github_sync_error: runtime_intake_missing_issue_link

Updated 3/23/2026, 12:46:36 PM

Backlog
Synthetic competitions/seasons/teams still visible in admin

Filed from reconciliation audit. User-reported scope: 40 seasons / 57 teams / synthetic competitions still visible in admin. owner: unassigned acceptance_criteria: Synthetic fixtures are absent from admin competitions/seasons/teams surfaces and guarded by QA. current_blocker: No trustworthy website-side card existed for the current admin visibility complaint. last_checked_utc: 2026-03-21T15:00:00Z github_issue: #284 Related GitHub issue: #284 github_sync_status: sync_failed github_sync_checked_utc: 2026-03-21T15:13:07.679Z github_sync_error: github_token_missing

Updated 3/21/2026, 3:13:07 PM

Backlog
Guided tours should highlight targets and dismiss permanently (except help drawer)

Filed from reconciliation audit; exists in thread history but not as trustworthy board card. owner: unassigned acceptance_criteria: Guided tours visibly highlight targets, can be dismissed permanently per user, and do not suppress the help drawer. current_blocker: Chat-only/thread-only artifact before this card was created. last_checked_utc: 2026-03-21T15:00:00Z github_issue: #283 Related GitHub issue: #283 github_sync_status: sync_failed github_sync_checked_utc: 2026-03-21T15:13:07.223Z github_sync_error: github_token_missing

Updated 3/21/2026, 3:13:07 PM

Backlog
Default roster view should be list

Filed from reconciliation audit; exists in thread history but not as trustworthy board card. owner: unassigned acceptance_criteria: Default roster surface opens in list view unless user explicitly switches. current_blocker: Chat-only/thread-only artifact before this card was created. last_checked_utc: 2026-03-21T15:00:00Z github_issue: #282 Related GitHub issue: #282 github_sync_status: sync_failed github_sync_checked_utc: 2026-03-21T15:13:06.804Z github_sync_error: github_token_missing

Updated 3/21/2026, 3:13:06 PM

Backlog
News Ops lacks full create/manage/delete module

Filed from reconciliation audit; exists in thread history but not as trustworthy board card. owner: unassigned acceptance_criteria: News Ops supports full create/manage/delete workflow with visible admin module and regression coverage. current_blocker: Chat-only/thread-only artifact before this card was created. last_checked_utc: 2026-03-21T15:00:00Z github_issue: #281 Related GitHub issue: #281 github_sync_status: sync_failed github_sync_checked_utc: 2026-03-21T15:13:06.242Z github_sync_error: github_token_missing

Updated 3/21/2026, 3:13:06 PM

Backlog
Notification controls by type

GitHub parity card for #239. owner: unassigned acceptance_criteria: Per-type notification toggles exist by channel with role-aware defaults and delivery enforcement. current_blocker: GitHub-only artifact before this card was created. last_checked_utc: 2026-03-21T15:00:00Z github_issue: #239 Related GitHub issue: #239

Updated 3/21/2026, 2:59:21 PM

Backlog
Who's Online should show photo + clickable name/profile link

GitHub parity card for #270. owner: unassigned acceptance_criteria: Widget shows avatar/headshot or initials fallback; name links to correct profile/admin destination. current_blocker: GitHub-only artifact before this card was created. last_checked_utc: 2026-03-21T15:00:00Z github_issue: #270 Related GitHub issue: #270

Updated 3/21/2026, 2:59:21 PM

Backlog
Hockey Ops Teams nav redirects to login?error=admin_required

GitHub parity card for #269. owner: unassigned acceptance_criteria: Authenticated admin/ops users can open Teams without login bounce; invalid permission gets forbidden state, not login redirect. current_blocker: GitHub-only artifact before this card was created. last_checked_utc: 2026-03-21T15:00:00Z github_issue: #269 Related GitHub issue: #269

Updated 3/21/2026, 2:59:20 PM

Backlog
Time zone inconsistency across event editor/calendar

GitHub parity card for #278. owner: unassigned acceptance_criteria: Event editor, public calendar, player event views, and detail pages all use America/New_York consistently. current_blocker: GitHub-only artifact before this card was created. last_checked_utc: 2026-03-21T15:00:00Z github_issue: #278 Related GitHub issue: #278

Updated 3/21/2026, 2:59:20 PM

Backlog
[Runtime/Auth] /login

runtime_event: unhandled_error error_string: Loading chunk 2626 failed. (error: https://www.pghwarriorhockey.org/_next/static/chunks/app/login/page-fa15fb525422db78.js?dpl=dpl_JCwctYoTs2EbAknwp1f6ZCwg1Vm1) error_string: Loading chunk 2626 failed. (error: https://www.pghwarriorhockey.org/_next/static/chunks/app/login/page-fa15fb525422db78.js?dpl=dpl_JCwctYoTs2EbAknwp1f6ZCwg1Vm1) request_id: none digest: none route: /login oauth_provider: none oauth_stage: none cookie_state_present: false host: www platform: web last_seen_utc: 2026-03-21T03:04:31.522Z qa_failure_digest: 9e8438b5bf95b4a588cb4a3d09c51a76c1d3babd1cd93368d411b54ff8e46789 github_sync_status: missing_link github_sync_checked_utc: 2026-03-21T03:04:31.522Z github_sync_error: runtime_intake_missing_issue_link occurrence_count: 1

Updated 3/21/2026, 3:04:31 AM

Backlog
Bug report: 🍒💦 BTC transfer. Next >> yandex.com/poll/YWfQL5UYL9NrETwvu6fWmf?hs=52d5f202e952bc263b5a39af797be716& 🍒💦

reporter: Guest reporter_email: [email protected] page_url: Not provided user_agent: Not provided wkffyy error_string: 🍒💦 BTC transfer. Next >> yandex.com/poll/YWfQL5UYL9NrETwvu6fWmf?hs=52d5f202e952bc263b5a39af797be716& 🍒💦 request_id: ic6w1r digest: none route: unknown oauth_provider: none oauth_stage: none cookie_state_present: false host: www platform: web last_seen_utc: 2026-03-16T20:46:23.542Z qa_failure_digest: 7568beb9644a1281236d12d68677fdfd778827114a2ac5584dc482a11a6f9f02 github_sync_status: missing_link github_sync_checked_utc: 2026-03-16T20:46:23.542Z github_sync_error: runtime_intake_missing_issue_link occurrence_count: 1

Updated 3/16/2026, 8:46:23 PM

Backlog
[Runtime/Auth] /event-details/ppf-special-ice

runtime_event: unhandled_error error_string: Loading chunk 7601 failed. (timeout: https://www.pghwarriorhockey.org/_next/static/chunks/app/error-cc21f7f3b9f606c5.js?dpl=dpl_AqZ7aYnzp5hk8mZkQKnt6PQnutbv) error_string: Loading chunk 7601 failed. (timeout: https://www.pghwarriorhockey.org/_next/static/chunks/app/error-cc21f7f3b9f606c5.js?dpl=dpl_AqZ7aYnzp5hk8mZkQKnt6PQnutbv) request_id: none digest: none route: /event-details/ppf-special-ice oauth_provider: none oauth_stage: none cookie_state_present: false host: www platform: web last_seen_utc: 2026-03-16T15:24:22.146Z qa_failure_digest: 2190ab62219ceb8fc989ceacb385a03b712789c0c61fcb3865733fb1d343b65c github_sync_status: missing_link github_sync_checked_utc: 2026-03-16T15:24:22.146Z github_sync_error: runtime_intake_missing_issue_link occurrence_count: 1

Updated 3/16/2026, 3:24:22 PM

Backlog
QA visual baseline suite shows multi-route regressions (60 unexpected)

owner: thread-d resolution: split/merged to route-level visual cards for deterministic closure and screenshot evidence. qa_guard_test: visual_baseline_route_granular_tracking qa_guard_command: npx playwright test tests/ui-visual-fullsite.spec.ts --reporter=list --workers=1 qa_guard_result: pass docs_update: QA_DURABILITY_GATE_POLICY + NIGHTLY_QA_RUNBOOK last_checked_utc: 2026-03-16T02:39:55Z github_sync_status: missing_link github_sync_checked_utc: 2026-03-16T02:39:57.706Z github_sync_error: No linked GitHub issue.

Updated 3/16/2026, 2:39:57 AM

Completed
QA player hub events interaction fails on Chromium

owner: thread-d resolution: merged to granular lane card ce850464-85cc-461d-bfe3-4345ac797f12. qa_guard_test: player_hub_events_granular_tracking qa_guard_command: npx playwright test tests/player-hub.spec.ts -g 'can interact with the events page' --reporter=list --workers=1 qa_guard_result: pass docs_update: QA_DURABILITY_GATE_POLICY + NIGHTLY_QA_RUNBOOK last_checked_utc: 2026-03-16T02:39:55Z github_sync_status: missing_link github_sync_checked_utc: 2026-03-16T02:39:57.430Z github_sync_error: No linked GitHub issue.

Updated 3/16/2026, 2:39:57 AM

Completed
QA player profile route by roster ID fails across all browsers

owner: thread-d resolution: merged to granular lane card 3a717b71-8be2-48cd-9dcd-4cfbc645613b. qa_guard_test: player_profile_granular_tracking qa_guard_command: npx playwright test tests/player-profile.spec.ts -g 'should be able to access a player profile via roster ID' --reporter=list --workers=1 qa_guard_result: pass docs_update: QA_DURABILITY_GATE_POLICY + NIGHTLY_QA_RUNBOOK last_checked_utc: 2026-03-16T02:39:55Z github_sync_status: missing_link github_sync_checked_utc: 2026-03-16T02:39:57.148Z github_sync_error: No linked GitHub issue.

Updated 3/16/2026, 2:39:57 AM

Completed
QA chat composer send-message fails on Firefox

owner: thread-d resolution: merged to granular lane card 32d6d90a-7249-4d9b-9e21-f6170351d1f1. qa_guard_test: chat_composer_granular_tracking qa_guard_command: npx playwright test tests/chat-e2e.spec.ts -g 'composer successfully sends a message' --reporter=list --workers=1 qa_guard_result: pass docs_update: QA_DURABILITY_GATE_POLICY + NIGHTLY_QA_RUNBOOK last_checked_utc: 2026-03-16T02:39:55Z github_sync_status: missing_link github_sync_checked_utc: 2026-03-16T02:39:56.877Z github_sync_error: No linked GitHub issue.

Updated 3/16/2026, 2:39:56 AM

Completed
QA events admin quick-create flow fails on Chromium

owner: thread-d resolution: merged to granular lane card ede7102d-8a0c-4a39-81a8-934e17911bf7. qa_guard_test: events_admin_granular_tracking qa_guard_command: npx playwright test tests/events-admin.spec.ts -g 'Can access Quick Event creation tool' --reporter=list --workers=1 qa_guard_result: pass docs_update: QA_DURABILITY_GATE_POLICY + NIGHTLY_QA_RUNBOOK last_checked_utc: 2026-03-16T02:39:55Z github_sync_status: missing_link github_sync_checked_utc: 2026-03-16T02:39:56.317Z github_sync_error: No linked GitHub issue.

Updated 3/16/2026, 2:39:56 AM

Completed
QA DVHL season lifecycle e2e fails across all browsers

owner: thread-d resolution: merged to granular lane card 88ec791c-1880-4fde-8d70-f8b135e401d4 for deterministic closure. qa_guard_test: season_10_dvhl_granular_tracking qa_guard_command: npx playwright test tests/season-10-dvhl.spec.ts --reporter=list --workers=1 qa_guard_result: pass docs_update: QA_DURABILITY_GATE_POLICY + NIGHTLY_QA_RUNBOOK last_checked_utc: 2026-03-16T02:39:55Z github_sync_status: missing_link github_sync_checked_utc: 2026-03-16T02:39:56.018Z github_sync_error: No linked GitHub issue.

Updated 3/16/2026, 2:39:56 AM

Completed
Xcode Cloud iOS archive lane fails on missing WarriorsHQ.xcworkspace path

owner: thread-d resolution: added iOS archive target resolver fallback (xcworkspace->xcodeproj) and policy doc. qa_guard_test: ios_archive_target_resolver qa_guard_command: mobile/warriors-hq-app/scripts/resolve-ios-archive-target.sh qa_guard_result: pass docs_update: QA_DURABILITY_GATE_POLICY + NIGHTLY_QA_RUNBOOK last_checked_utc: 2026-03-16T02:39:55Z github_sync_status: missing_link github_sync_checked_utc: 2026-03-16T02:39:55.740Z github_sync_error: No linked GitHub issue.

Updated 3/16/2026, 2:39:55 AM

Completed
CI preview-e2e workflow fails with workflow file issue on main pushes

owner: thread-d resolution: hardened preview workflow trigger/gates/concurrency and non-blocking card ingest. qa_guard_test: workflow_preview_e2e_gates qa_guard_command: node -e "const y=require('fs').readFileSync('.github/workflows/preview-e2e.yml','utf8');if(!/workflow_dispatch/.test(y)||!/deployment_status/.test(y))process.exit(1);" qa_guard_result: pass docs_update: QA_DURABILITY_GATE_POLICY + NIGHTLY_QA_RUNBOOK last_checked_utc: 2026-03-16T02:39:55Z github_sync_status: missing_link github_sync_checked_utc: 2026-03-16T02:39:55.342Z github_sync_error: No linked GitHub issue.

Updated 3/16/2026, 2:39:55 AM

Completed
Google OAuth login returns sign_in_required for authorized user (live repro: Brad Vig)

owner: thread-d last_checked_utc: 2026-03-16T02:10:41.675Z

Updated 3/16/2026, 2:10:41 AM

In Progress
Request Board QA auto-ingest endpoint returns 500 ingest_failed

owner: thread-d last_checked_utc: 2026-03-16T02:10:24.921Z

Updated 3/16/2026, 2:10:24 AM

In Progress
P1 prod: media showcase tags bulk returns 500 on valid payload

owner: thread-d acceptance_criteria: verify POST /api/admin/media/showcase/tags/bulk add/remove returns 200 blocker: resolved by main commit b52a498c last_checked_utc: 2026-03-15T23:28:06Z docs_update: production hotfix closure evidence captured resolution_commit: b52a498c resolved_request_ids: iad1::iad1::wvnrf-1773617285156-84be0af198fc, iad1::iad1::8gj4k-1773617285996-b027963adf61, iad1::iad1::4vpfs-1773617286455-2cc773008502, iad1::iad1::smhcx-1773617286659-68535ab62ba2 resolved_at_utc: 2026-03-15T23:28:07Z verification_host: https://www.pghwarriorhockey.org qa_prevention: release gate now requires authenticated production deep mutation smoke (events create + media library state + showcase tag bulk) with requestId evidence before close

Updated 3/16/2026, 12:06:25 AM

Completed
P1 prod: media library state API returns 500 on valid no-op payload

owner: thread-d acceptance_criteria: verify POST /api/admin/media/library/state returns 200 on valid payload blocker: resolved by main commit b52a498c last_checked_utc: 2026-03-15T23:28:05Z docs_update: production hotfix closure evidence captured resolution_commit: b52a498c resolved_request_ids: iad1::iad1::wvnrf-1773617285156-84be0af198fc, iad1::iad1::8gj4k-1773617285996-b027963adf61, iad1::iad1::4vpfs-1773617286455-2cc773008502, iad1::iad1::smhcx-1773617286659-68535ab62ba2 resolved_at_utc: 2026-03-15T23:28:07Z verification_host: https://www.pghwarriorhockey.org qa_prevention: release gate now requires authenticated production deep mutation smoke (events create + media library state + showcase tag bulk) with requestId evidence before close

Updated 3/16/2026, 12:06:24 AM

Completed
P0 prod: admin event create fails (resolveEventVenue is not defined)

owner: thread-d acceptance_criteria: verify POST /api/admin/events draft create redirects with eventsaved=1 blocker: resolved by main commit b52a498c last_checked_utc: 2026-03-15T23:28:07Z docs_update: production hotfix closure evidence captured resolution_commit: b52a498c resolved_request_ids: iad1::iad1::wvnrf-1773617285156-84be0af198fc, iad1::iad1::8gj4k-1773617285996-b027963adf61, iad1::iad1::4vpfs-1773617286455-2cc773008502, iad1::iad1::smhcx-1773617286659-68535ab62ba2 resolved_at_utc: 2026-03-15T23:28:07Z verification_host: https://www.pghwarriorhockey.org qa_prevention: release gate now requires authenticated production deep mutation smoke (events create + media library state + showcase tag bulk) with requestId evidence before close

Updated 3/16/2026, 12:06:24 AM

Completed
iOS native project is gitignored, blocking versioned watch/widget/signing fixes

BUG: /mobile/warriors-hq-app/ios is ignored by git, so Xcode target/signing/build-number fixes cannot be reviewed or released via PR. Acceptance: track required iOS project files (or generate deterministic patches) so native release fixes are versioned.

Updated 3/15/2026, 9:36:34 PM

Backlog
Mobile chat shows unauthorized in approved player channels

BUG: Chat screen reports access denied/unauthorized for channels users should access (ex: announcements). Acceptance: unauthorized state only when backend denies membership; fallback path works and composer is disabled when unauthorized.

Updated 3/15/2026, 9:28:08 PM

Backlog
Login helper copy incorrectly implies only @pghwarriorhockey.org emails work

BUG: copy currently suggests registered @pghwarriorhockey.org email which excludes most players. Acceptance: copy references account email generically and does not imply org-only addresses.

Updated 3/15/2026, 9:28:08 PM

Backlog
Mobile login missing Apple/Google buttons in release build

BUG: iOS app login screen in TestFlight/internal builds can render without Apple/Google entry points. Acceptance: social sign-in buttons are visible when provider is enabled, launch OAuth flow, and return via mobile deep link token handoff.

Updated 3/15/2026, 9:28:08 PM

Backlog
Admin /users shows no users

Bug: https://pghwarriorhockey.org/admin/users renders empty list even though user table has records. Suspected cause: legacy /admin/users path uses schema-handshake fail-soft query that swallows include/relation drift and returns []. Acceptance: page should show base user rows whenever DB is reachable; relation failures must not blank the list.

Updated 3/10/2026, 4:18:20 PM

Backlog
Player Onboarding Journey Workspace (End-to-End)

Build applicant-facing progress tracker with stages: Application Received -> Review -> Approved -> Onboarding -> First Skate. Each stage should show next action and estimated time.

Updated 3/10/2026, 2:15:58 PM

Backlog
Registration Confirmation + Stage-Based Status Messaging

Send immediate confirmation on application submit, then staged updates (under review, approved/rejected, next steps) with direct links into onboarding.

Updated 3/10/2026, 2:15:58 PM

Backlog
First-Skate Activation Flow

After approval, show and message first recommended event(s) with one-click RSVP and prep checklist (what to bring, when to arrive, where to go).

Updated 3/10/2026, 2:15:58 PM

Backlog
Admin Onboarding Command Center (Volunteer-Friendly)

Create a simple admin workspace for onboarding stage, owner assignment, notes, and one-click communication templates. Keep workflow lightweight and practical.

Updated 3/10/2026, 2:15:58 PM

Backlog
USA Hockey Guidance + Validation in Onboarding

Explain why USA Hockey number is required, provide outbound signup link, and validate number format for current season rules before completion.

Updated 3/10/2026, 2:15:58 PM

Backlog
Buddy Welcome Touchpoint for New Applicants

Optional assign-a-buddy flow and welcome touchpoint so approved applicants receive human follow-up and do not go cold before first skate.

Updated 3/10/2026, 2:15:58 PM

Backlog
Onboarding Gear Intake (Volunteer-Simple)

Add a simple onboarding gear lane: player requests needed gear (or asks for help), equipment manager confirms availability, schedules delivery/pickup, and marks complete. Keep workflow lightweight; no KPI metrics for volunteer role.

Updated 3/10/2026, 2:01:06 PM

Backlog
Optional Visual Gear Inventory (Photos + Basic Stock Notes)

Allow equipment manager to upload optional gear photos with basic inventory fields (category, size, quantity, condition, notes). Player can choose visually when available; fallback to text request/help flow when not.

Updated 3/10/2026, 2:01:06 PM

Backlog
Track Practice vs Game Kit Separately (Jersey/Socks)

Track four item groups independently: practice jersey, practice socks, game jersey, game socks. Per item track needed/size/status (requested, confirmed, delivered). Onboarding gear completion should depend on required item statuses.

Updated 3/10/2026, 2:01:06 PM

Backlog
Post-Onboarding Gear Support Requests in Player HQ

After onboarding, players can submit ongoing requests (replacement, size change, missing item, damaged item, help). Route to equipment manager queue with threaded updates and closeout states (open, awaiting-player, scheduled, fulfilled, closed).

Updated 3/10/2026, 2:01:06 PM

Backlog
P0: Admin IA Unification - single static left rail and canonical module routing

Problem: Dual/duplicative admin rails and legacy detours create inconsistent UI shells and broken navigation expectations. Acceptance Criteria: - One static canonical left rail across all admin pages. - Remove duplicate/legacy middle rail and route trampoline pages. - Add clear selected-state cues and optional clean submenus. - Migrate legacy-only modules into canonical IA: Announcements, News, Attendance, Fundraising, Shared Credentials, Super Admin Logs.

Updated 3/9/2026, 7:20:55 PM

Backlog
P0: Request Board v2 - scalable views, thread ownership columns, responsibility filters

Problem: Current board UX is hard to track at scale and does not expose ownership/responsibility views clearly. Acceptance Criteria: - Add table + kanban/swamlane views and full-card visibility beyond current apparent limits. - Add columns/filters: assigned thread, responsibility area (UI/Auth/API/Data/Ops), priority, status, updatedAt. - Compact read-only cards by default; click-to-edit form panel/modal. - Preserve compatibility with coord assignment/autopilot flow.

Updated 3/9/2026, 7:20:55 PM

Backlog
P0: Request evidence pipeline - screenshot attachments and thread-consumable context

Problem: Request board cannot reliably capture screenshots/evidence, reducing bug triage quality and cross-thread context. Acceptance Criteria: - Support image attachments on request cards with preview and stable storage path. - Include attachment metadata in board JSON and thread inbox payloads. - Provide routing hints so coordinator can target capable threads while keeping assigner as source of truth. - Verify Thread B can consume attachment context from inbox-linked card evidence.

Updated 3/9/2026, 7:20:55 PM

Backlog
P0: DVHL Season 10 canonical data not visible in League/DVHL Hub

Problem: Admin DVHL surfaces show 0 seasons/teams/games while Season 10 data is expected live. Acceptance Criteria: - Season 10 appears in League Hub dashboard/seasons/teams/schedule/stats views. - Canonical competitions, teams, rosters, and scheduled games resolve from source-of-truth tables. - Live scoreboard can select and score Season 10 games without fallback/legacy paths. - Add diagnostics panel row showing query source + counts for DVHL entities.

Updated 3/9/2026, 4:49:55 PM

In Progress
P0: Admin navigation architecture is inconsistent (rails/tabs/legacy detours)

Problem: Left rail and horizontal tabstrip behavior changes by entry path; redundant "Open DVHL Hub" intermediate page and legacy route detours. Acceptance Criteria: - Single canonical admin IA: no duplicate DVHL entry points or "open hub" trampoline page. - Left rail persists consistently across League/DVHL admin pages with stable active-state highlighting. - Top strip links resolve directly to canonical routes only; remove/redirect legacy variants. - UX pass: navigation path from Admin Dashboard -> DVHL -> Seasons is one-click deterministic.

Updated 3/9/2026, 4:49:55 PM

In Progress
P0: Expand "Who's Online" visibility scope beyond admin-only

Problem: Who's Online currently appears admin-scoped and not aligned with community visibility goals. Acceptance Criteria: - Add configurable audience scope: admins-only | players+admins | everyone. - Default to players+admins unless policy override set. - Add lightweight mode for performance (presence heartbeat sampling/cache window). - Add admin setting in Module Permissions/Diagnostics with clear privacy text.

Updated 3/9/2026, 4:49:55 PM

In Progress
[QA] events-admin.spec.ts :: Guided Event Wizard loads

### Acceptance Criteria\n- Reproduce: \\`npx playwright test events-admin.spec.ts -g \\"Guided Event Wizard loads\\"\\`\n- Expected: Test passes consistently on local dev server.\n- Done: Test green + no regression in related routes.\n\n### Evidence\n- **Error:** Error: page.goto: 404 Not Found\n- **Suite:** events-admin.spec.ts\n- **Project:** webkit\n\n\\`\\`\\`\nawait page.goto("/admin/wizard")\n\\`\\`\\`

Updated 3/9/2026, 3:19:49 PM

In Progress
Observability stack: errors/uptime/perf budgets/alert routing

Deploy unified observability with error tracking, uptime monitors, perf SLOs, and alert escalation routing.

Updated 3/9/2026, 3:17:25 PM

In Progress
Support operations moderation queue

Build admin moderation queue for contact reports, abuse events, and triage workflow with status tracking.

Updated 3/9/2026, 3:17:25 PM

In Progress
Re-land remote QA infra (Vercel preview -> Playwright) via codex/* PR

Acceptance Criteria: - Implement preview E2E workflow via clean codex/* branch + PR (no direct main pushes). - Workflow must execute only on successful preview deployment and use deployment target URL. - Verify preview build + workflow run URL + artifact upload. - Keep local Playwright behavior intact when PLAYWRIGHT_BASE_URL is unset. - Post evidence in outbox: checks, run URL, final status.

Updated 3/9/2026, 3:17:25 PM

In Progress
Content Studio completeness: drafts/approvals/scheduling/revisions/rollback

Ship full content lifecycle: drafts, approvals, scheduled publish, revision history, rollback in Content Studio.

Updated 3/9/2026, 3:17:02 PM

In Progress
Redirect manager + broken-link scanner + sitemap/robots/canonical validation

Add redirect registry, automated broken-link scans, and SEO integrity checks for sitemap/robots/canonicals.

Updated 3/9/2026, 3:17:02 PM

In Progress
Security baseline: rate limits + CAPTCHA/Turnstile + WAF + lockout

Implement signup/auth protection baseline including abuse controls, IP throttles, and lockout policies.

Updated 3/9/2026, 3:17:02 PM

In Progress
USA Hockey onboarding clarity + temporary season-format validation

Explain why USA Hockey membership is required, provide direct membership link, and enforce temporary 2025-2026 guard (4th character = 6) across player-facing update routes until API validation is live.

Updated 3/9/2026, 3:17:02 PM

In Progress
Admin-editable onboarding flow controls (requirements + email copy)

Provide Content Studio onboarding controls so admins can toggle required player fields and edit confirmation email wording without code changes.

Updated 3/9/2026, 3:17:02 PM

In Progress
[QA] player-hub.spec.ts :: can navigate to Gear section

### Acceptance Criteria\n- Reproduce command: `npx playwright test tests/player-hub.spec.ts -g "can navigate to Gear section"`\n- Expected behavior: Gear/Equipment link is visible in the side rail and navigates to section=gear.\n- Done definition: Test passes on stable environment.\n\n### Evidence\n- **Error:** Timeout waiting for element or URL match.\n- **Context:** Player Hub navigation rail logic.

Updated 3/9/2026, 2:41:49 PM

Completed
[QA] mobile-contracts.spec.ts :: unauthorized dashboard access is rejected

### Acceptance Criteria\n- Reproduce: \\`npx playwright test mobile-contracts.spec.ts -g \\"unauthorized dashboard access is rejected\\"\\`\n- Expected: Test passes consistently on local dev server.\n- Done: Test green + no regression in related routes.\n\n### Evidence\n- **Error:** Error: expect(received).toBe(401)\n- **Suite:** mobile-contracts.spec.ts\n- **Project:** chromium\n\n\\`\\`\\`\nexpect(response.status()).toBe(401)\n\\`\\`\\`

Updated 3/9/2026, 12:46:41 PM

In Progress
Onboarding Journey v1: player-facing lifecycle from application to first skate

Design and ship an end-to-end onboarding journey with clear stages, timeline, and progress checkpoints from submit -> approval -> onboarding -> first ice event.

Updated 3/9/2026, 12:46:41 PM

In Progress
Registration confirmation + status email sequence

Send immediate applicant confirmation email plus staged updates (received, under review, approved/rejected, next steps) with deep links and ETA guidance.

Updated 3/9/2026, 12:46:41 PM

In Progress
Player onboarding portal with progress tracker

Create a dedicated onboarding dashboard for applicants/players showing required tasks, approvals, deadlines, upcoming events, and completion % with reminders.

Updated 3/9/2026, 12:46:41 PM

In Progress
Admin onboarding command center

Build admin workflow tools for triage, assignment, SLA timers, notes, owner handoff, and one-click communication templates for onboarding team.

Updated 3/9/2026, 12:46:41 PM

In Progress
Onboarding automations + reminder cadences

Automate nudges for incomplete steps (documents, USA Hockey, waiver, RSVP, profile) via email/push with escalation rules.

Updated 3/9/2026, 12:46:41 PM

In Progress
Onboarding analytics and drop-off funnel

Instrument funnel stages and reasons for abandonment; provide reporting by stage, conversion, time-to-ice, and bottlenecks.

Updated 3/9/2026, 12:46:41 PM

In Progress
[QA] admin-quick-event.spec.ts :: Can access Quick Event creation tool

### Acceptance Criteria\n- Reproduce: \\`npx playwright test admin-quick-event.spec.ts -g \\"Can access Quick Event creation tool\\"\\`\n- Expected: Test passes consistently on local dev server.\n- Done: Test green + no regression in related routes.\n\n### Evidence\n- **Error:** Error: expect(received).toBe(200)\n- **Suite:** admin-quick-event.spec.ts\n- **Project:** chromium\n\n\\`\\`\\`\nawait page.goto("/admin/wizard")\n\\`\\`\\`

Updated 3/9/2026, 12:41:31 PM

In Progress
Real RBAC matrix (module-level permissions, not ad hoc checks)

Define canonical permission matrix and enforce module/action guards consistently across admin/player APIs and UI.

Updated 3/9/2026, 12:41:31 PM

In Progress
Admin Quick Event Tool 404

Received 404 when navigating to Guided Event Wizard from League Hub; restore route and validate from admin UI.

Updated 3/9/2026, 12:41:31 PM

In Progress
Player Hub Navigation Timeout

Playwright failure: could not reach /player?section=events within 30s; investigate section-switch latency and loading blockers.

Updated 3/9/2026, 12:41:31 PM

In Progress
Public Roster ID Visibility Selector Failure

Playwright failure: [data-player-id] not found on /roster profile cards; restore stable selector and verify profile-by-id flow.

Updated 3/9/2026, 12:41:31 PM

In Progress
Staging + production parity with protected test DB and seeded fixtures

Create strict env parity checklist and automated fixture seed for staging so prod deploys are validated against staging before release.

Updated 3/9/2026, 12:28:33 PM

In Progress
Strict QA data isolation (DATABASE_URL_QA only, ephemeral schema, teardown every run)

Enforce QA-only database writes with ephemeral schema sessions + guaranteed teardown + CI guardrails.

Updated 3/9/2026, 12:28:33 PM

In Progress
Admin audit log + activity timeline across all content/data changes

Centralize all admin write actions into immutable audit trail with actor, before/after, request ID, UTC timestamp.

Updated 3/9/2026, 12:28:33 PM

In Progress
Backups + restore drills (DB + media) with documented RPO/RTO

Implement backup policy, restore runbooks, and recurring restore drills with measured RPO/RTO results.

Updated 3/9/2026, 12:28:33 PM

In Progress
Account lifecycle hardening: reset/session/device recovery flows

Harden password reset reliability and add session/device management and account recovery admin tooling.

Updated 3/9/2026, 12:28:33 PM

In Progress
Accessibility + UX quality gates in CI

Add automated a11y, contrast, keyboard-nav, responsive breakpoint checks as merge gates.

Updated 3/9/2026, 12:28:33 PM

In Progress
Normalize roster names + flag suspicious player names + bot cleanup tooling

Public roster now normalizes all-caps display names, shows Name Review flag on suspicious names, and adds scripts/admin/audit-player-names.mjs + scripts/admin/manage-bot-registrations.mjs for audit/purge.

Updated 3/9/2026, 11:50:50 AM

Completed
Public roster UX cleanup: card readability, modal visibility, service field noise

Improve jersey number contrast, remove repetitive copy, omit unset service era, center headshots, and enforce player status gating in roster query.

Updated 3/9/2026, 11:42:58 AM

Completed
Block bot registrations on join forms

Add honeypot field + URL/name heuristic in register and register-supporter routes.

Updated 3/9/2026, 11:29:27 AM

Completed
Public roster crash when name/photo missing

Guard fullName/photolist in PublicRosterDirectory and safe sort/search.

Updated 3/9/2026, 11:29:27 AM

Completed
Comprehensive module QA master plan and execution

Create and run a full QA matrix across sitemap public routes, admin modules, player modules, and API contracts; produce one board card per failing route/workflow with repro + severity.

Updated 3/8/2026, 2:49:15 PM

In Progress
Non-technical admin content studio for core pages

Provide easy editing for homepage/about with publish forms, revisions, and admin quick access so operations can update content without code changes.

Updated 3/8/2026, 2:46:43 PM

In Progress
Global smart admin quick tools across site

When admin is logged in, show context-aware quick links on every page for fast edits (media, competitions, members, DVHL, page-specific actions like championship photo updates).

Updated 3/8/2026, 2:40:36 PM

In Progress
Championship rosters must link to canonical player profiles

Updated 3/8/2026, 2:36:50 PM

In Progress
Player HQ landing page lacks useful first-login info

Updated 3/8/2026, 2:34:50 PM

In Progress
Need Help?