Skip to content

Worktree generic rolling finch#117

Merged
GMSoudersJr merged 22 commits intomainfrom
worktree-generic-rolling-finch
Apr 24, 2026
Merged

Worktree generic rolling finch#117
GMSoudersJr merged 22 commits intomainfrom
worktree-generic-rolling-finch

Conversation

@GMSoudersJr
Copy link
Copy Markdown
Owner

No description provided.

GMSoudersJr and others added 20 commits April 17, 2026 21:22
Next.js 14 → 16, React 18 → 19, ESLint 8 → 9 — async params codemod applied to review pages — webpack enforced for serwist compatibility — ChromeIcon replaced with GlobeIcon (removed in lucide-react 1.8)

Critical bug fixes — ReviewLink DB query moved from render body into useEffect — tautological object store guard removed from actions.ts — hardcoded localhost URL replaced with direct JSON import — Program.tsx useEffect dependency corrected — SkipDayButton now notifies PastWorkouts directly after skip

DB initialization — handlers attached at module level to eliminate race condition between IDB setup and first query — dbInitialized promise exported so consumers can await DB readiness before reading

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ed mutable object

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…te mutation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…cumulation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… useEffect

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… all modals

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…show save error

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…for production build load

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…se to DataVisualization

Skipped days were silently dropped from the D1/D2/D3/D4 review pages
because DataVisualization had no rendering case for "SKPD". Users with
non-consecutive skips saw fewer chart entries than their actual history.

Also removes the now-empty initializeIDB() export and its call site in
Program.tsx — all IDB setup happens at module level in index.ts.

Adds dayReviewPage.spec.ts: seeds 10 weeks of Day 1 data with skips on
weeks 3, 6, 9 and asserts all 10 entries render (full page + modal).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…click batching

Timer modal race (Day One flaky, Day Three flaky/failing):
- closeTimerModal() now waits for the modal to be hidden after clicking
  close, so the next action never fires while React is still unmounting
  the portal.

Click batching (Day Three flaky/failing):
- pressPlusIcon() and pressMinusIcon() used click({ clickCount: N }),
  which fires N events in a rapid burst. React 19 automatic batching
  collapsed multiple rapid events into fewer state updates, so small
  counts like 5 would only register 1-2 increments.
- Replaced with a sequential await loop so each click fully settles
  before the next fires. Day Four retains clickCount because its tests
  rely on reaching the capped max value (100) via many fast clicks and
  would time out with sequential awaits.

Privacy policy mobile fix:
- Added overflow-wrap: break-word to PrivacyPolicy.module.css so long
  Google URLs wrap correctly on narrow mobile viewports.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix dead assertion in landingPage — expect().toBeVisible() was missing
- Fix program-page goto() — isVisible() doesn't wait; use expect().toBeVisible()
- Make closeTimerModal() self-contained — waitFor close button visible before clicking
- Document force:true on animated buttons (pulse/wiggle prevent stability check)
- Add screenshot: only-on-failure for faster CI debugging
- Increase test timeout to 45s for Firefox CI headroom

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
waitFor without explicit timeout inherits fullWeek's 180s test timeout,
causing each stalled call to hang for the full duration before failing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Desktop Firefox on ubuntu-latest runners degrades progressively during
the test run, causing later tests to time out even on basic navigation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Reset All Progress button inside the past workouts scrollable area
  with confirmation modal before clearing IndexedDB data
- Fix SkipDayButton wrapping back to day 1 after skipping day 5 (was
  setting programDayNumber to 6 which matched nothing in DAYS)
- Fix PastWorkouts layout to use flex instead of fixed 61.8vh height,
  preventing main page from scrolling with many workout rows

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 24, 2026

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

Project Deployment Actions Updated (UTC)
armstrong-pull-up-program Ready Ready Preview, Comment Apr 24, 2026 9:39am

Adds 5 tests covering the new reset progress feature (button visibility,
modal cancel/confirm) and the day 5 → DAY 1 wrap-around fix.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@GMSoudersJr GMSoudersJr merged commit bb216af into main Apr 24, 2026
3 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.

1 participant