Agents Builders

Fix off-board auth modal

Archived
fix-off-board-auth-modal

Created

Jun 26, 06:55

Started

Jun 26, 06:55

Completed

Jun 26, 08:03

DevOps handoff

Type

Bug

Shape

ui+db

Worktree Slug

fix-off-board-auth-modal

Repositories

turf-monster

Release Train

Branch

feat/fix-off-board-auth-modal

QA URL

Production URL

auth regression

Acceptance Criteria

  • Google sign-in works on non-board pages logged out
  • Email magic-link request works on non-board pages
  • Modal auth buttons no longer require a contest board

Expected Test Plan

  • [e2e] modal Google and email work without board mounted
  • [component] auth modal renders self-sufficient fallback handlers
  • [integration] POST /magic_link and /auth/google_popup reachable
  • [unit] magic-link request path covered

Checks Run

  • [unit] bin/rails test test/services/google_oauth_validator_test.rb — green
  • [component] bin/rails test test/integration/off_board_auth_modal_test.rb — modal renders loginGoogle()/submitMagicLink() on a non-board page
  • [integration] bin/rails test test/controllers/magic_links_controller_test.rb test/controllers/omniauth_callbacks_controller_test.rb — 36 runs, 0 failures
  • [e2e] npx playwright test e2e/auth_modal.spec.js — 5 passed; 2 new off-board Google+email specs, red-proven against unfixed views
  • [full-suite@701dab18e077906a8949cd37d2bfe120be9ba62d] bin/rails test green
  • [rubocop@701dab18e077906a8949cd37d2bfe120be9ba62d] bin/rubocop clean

Agent Context

Root cause: app/views/modals/_auth.html.erb Google (@click $dispatch('auth-google-click')) and email (@submit $dispatch('auth-magic-link-submit')) only act if the contest board (_turf_totals_board.html.erb:1600-1602 — @auth-google-click.window / @auth-magic-link-submit.window on x-data=selectionBoard()) is mounted to catch the events. Navbar 'Sign in' (_navbar.html.erb:101-102) opens this modal on EVERY page, so on non-board surfaces (homepage w/o active contest, /contests index, /account, completed contests) both buttons are silently dead — no console errors, hover works, click does nothing. Reproduced on prod AND local (works on active-board page; dead on /contests). Solana is unaffected because openWalletHub() already has a handled-flag fallback. Regressed in PR #93 (2026-06-04) when navbar 'Sign in' switched from a /signin link to opening the board-coupled modal. FIX: give modal Google+email a no-board fallback mirroring Solana — dispatch carries detail.handled; the board sets handled=true; if still unhandled, run directly in the modal (open /auth/google_popup popup for Google; window.postMagicLink + advance to 'magic-link-sent' for email), matching the already-working /signin auth card.

Stage Timeline

Who handled each stage, the time it took (measured), and the model / tokens / cost reported (best-effort) — plus who's on it right now. means the agent didn't report that metric.

Sizing Avi · PO SMALL Dev SMALL Actual XL ≠ forecast
  1. Created Designed
    P Poliwhirl
    Poliwhirl
    Model
    Duration
    Tokens
    Cost
    Completed Jun 26, 06:55 · 1 day ago
    api
  2. Designed Building
    P Poliwhirl
    Poliwhirl
    Model
    claude-opus-4-8
    Duration
    under a minute
    Tokens
    1,004,100
    Cost
    ~$0.82
    Started Jun 26, 06:55
    Completed Jun 26, 06:55 · 1 day ago
    cli
  3. Building Submitted
    P Poliwhirl
    Poliwhirl
    Model
    claude-opus-4-8
    Duration
    18 minutes
    Tokens
    19,768,010
    Cost
    ~$15.63
    Started Jun 26, 06:55
    Completed Jun 26, 07:14 · 1 day ago
    cli
  4. Submitted Reviewed
    C Carl
    Carl primary
    S Shannon
    Shannon light
    Model
    Duration
    15 minutes
    Tokens
    Cost
    Started Jun 26, 07:14
    Completed Jun 26, 07:29 · 1 day ago
    cli
  5. Reviewed Assembled
    S Steffon
    Steffon
    Model
    Duration
    16 minutes
    Tokens
    Cost
    Started Jun 26, 07:29
    Completed Jun 26, 07:45 · 1 day ago
  6. Assembled Shipped
    A Avi
    Avi
    Model
    Duration
    18 minutes
    Tokens
    Cost
    Started Jun 26, 07:45
    Completed Jun 26, 08:03 · 1 day ago
  7. Shipped Archived
    Model
    Duration
    about 11 hours
    Tokens
    Cost
    Started Jun 26, 08:03
    Completed Jun 26, 18:43 · about 15 hours ago

Conversation

QA review feedback, agent handoffs, and follow-up notes for this task.

No task feedback has been recorded yet.

Sealed-bid sizing

Edit →

Alex (PM)

Avi (PO)

SMALL

Dev

SMALL

Actual

XL