diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 7a3d42771..9fca22b05 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -466,7 +466,7 @@ Plans: 6. All existing Playwright tests still pass (no regressions) Plans: -- [ ] 23-01: TBD +- [ ] 23-01-PLAN.md — Regression tests and manual memory verification UAT ## Progress @@ -497,4 +497,4 @@ Phases execute in numeric order: 1 → 2 → ... → 18 → 19 → 20 → 21 → | 20. VU Meter Fixes | v1.4 | 1/1 | Complete | 2026-02-08 | | 21. Chat Window Fixes | v1.4 | 1/1 | Complete | 2026-02-08 | | 22. Session Screen Fixes | v1.4 | 1/1 | Complete | 2026-02-08 | -| 23. Verification | v1.4 | 0/TBD | Not started | - | +| 23. Verification | v1.4 | 0/1 | Not started | - | diff --git a/.planning/phases/23-verification/23-01-PLAN.md b/.planning/phases/23-verification/23-01-PLAN.md new file mode 100644 index 000000000..4cdbabbb1 --- /dev/null +++ b/.planning/phases/23-verification/23-01-PLAN.md @@ -0,0 +1,204 @@ +--- +phase: 23-verification +plan: 01 +type: execute +wave: 1 +depends_on: [] +files_modified: + - .planning/phases/23-verification/23-UAT.md +autonomous: false + +must_haves: + truths: + - "All existing Playwright tests pass without regressions" + - "Manual UAT checklist exists for memory verification" + - "User can verify session stability with documented steps" + artifacts: + - path: ".planning/phases/23-verification/23-UAT.md" + provides: "Manual verification checklist for memory leaks" + contains: "15+ minutes" + key_links: + - from: "Phase 20 fixes" + to: "VU meter verification steps" + via: "UAT checklist section" + - from: "Phase 21 fixes" + to: "Chat verification steps" + via: "UAT checklist section" + - from: "Phase 22 fixes" + to: "Session cleanup verification steps" + via: "UAT checklist section" +--- + + +Verify all memory leak fixes from Phases 20-22 work correctly through automated regression tests and manual memory profiling checklist. + +Purpose: Confirm v1.4 Memory Leak Prevention milestone is complete before shipping +Output: Passing test suite + UAT.md checklist for human verification + + + +@/Users/nuwan/.claude/get-shit-done/workflows/execute-plan.md +@/Users/nuwan/.claude/get-shit-done/templates/summary.md + + + +@.planning/PROJECT.md +@.planning/ROADMAP.md +@.planning/STATE.md +@.planning/phases/20-vumeter-fixes/20-01-SUMMARY.md +@.planning/phases/21-chat-window-fixes/21-01-SUMMARY.md +@.planning/phases/22-session-screen-fixes/22-01-SUMMARY.md + + + + + + Task 1: Run Playwright regression tests + N/A (test execution only) + +Execute all existing Playwright tests to verify memory leak fixes don't introduce regressions. + +Run command: +```bash +cd /Users/nuwan/Code/jam-cloud/jam-ui && npx playwright test --config=playwright.chrome.config.ts +``` + +If any tests fail: +1. Document which tests failed +2. Analyze if failures are related to Phase 20-22 changes or pre-existing issues +3. Note pre-existing failures (documented in STATE.md deferred issues) vs new failures + +Key test areas to verify pass: +- chat/*.spec.ts (chat functionality) +- attachments/*.spec.ts (attachment functionality) +- session-settings/*.spec.ts (session settings) +- e2e/*.spec.ts (end-to-end flows) + + Test execution completes and results are documented + Playwright test results captured showing pass/fail status for all test files + + + + Task 2: Create UAT checklist for manual memory verification + .planning/phases/23-verification/23-UAT.md + +Create comprehensive UAT checklist for manual memory leak verification. Memory profiling requires human interaction with browser dev tools and cannot be fully automated. + +UAT.md must include: + +**Header:** +```markdown +--- +phase: 23-verification +type: uat +status: pending +--- + +# Phase 23: Memory Leak Verification UAT + +## Prerequisites +- Browser: Chrome (recommended for DevTools memory profiling) +- DevTools open with Performance Monitor and Memory tabs +- jam-ui running locally (npm run start) +- web backend running (./runweb) +``` + +**Section 1: VU Meter Verification (Phase 20 fixes)** +Steps to verify vuStates cleanup: +1. Open React DevTools, find VuContext provider +2. Join session with tracks +3. Note initial vuStates keys +4. Add/remove tracks multiple times +5. Verify vuStates only contains active mixer IDs (no orphaned entries) + +**Section 2: Chat Memory Verification (Phase 21 fixes)** +Steps to verify bounded messages and cleanup: +1. Open session, open chat window +2. Send 10+ messages +3. Open Redux DevTools, check sessionChat.messages array +4. Close session (leave button) +5. Verify sessionChat.messages is empty +6. Verify no memory growth after repeated open/close cycles + +**Section 3: Session Screen Verification (Phase 22 fixes)** +Steps to verify callback cleanup: +1. Join session +2. Leave session via button +3. Navigate back to dashboard +4. Join again +5. Verify no duplicate callbacks registered (check console for warnings) + +**Section 4: 15-Minute Stability Test (VRFY-01)** +Extended session test: +1. Join session +2. Open/close chat window 5 times +3. Show/hide VU meters 5 times +4. Leave and rejoin session 3 times +5. Keep session active for 15+ minutes +6. Verify app remains responsive (no freezes) + +**Section 5: Memory Growth Check (VRFY-02)** +Using Chrome DevTools: +1. Open Performance Monitor (More tools > Performance monitor) +2. Note initial JS heap size +3. Perform all actions from Section 4 +4. Take heap snapshot +5. Verify heap doesn't show unbounded growth (should stabilize) + +**Verification Results Section:** +Template for recording pass/fail with timestamps and notes. + + File exists at .planning/phases/23-verification/23-UAT.md with all 5 sections + UAT.md contains comprehensive checklist covering VU meters, chat, session screen, 15-min stability, and memory growth verification + + + + Task 3: Execute manual memory verification + Automated tests passed (Task 1) and UAT checklist created (Task 2) + +Follow the UAT checklist in `.planning/phases/23-verification/23-UAT.md`: + +1. **Quick verification (5 min):** + - Join session, open/close chat 3 times + - Show/hide VU meters 3 times + - Verify no console errors + - App should remain responsive + +2. **Full verification (15+ min):** + - Complete all sections in UAT.md + - Record results in the verification results section + +3. **Memory check:** + - Open Chrome DevTools > Performance Monitor + - Note JS heap size before and after test + - Should stabilize, not grow unbounded + +Expected results: +- No console errors related to cleanup +- No memory growth patterns visible +- App remains responsive throughout + + Type "approved" with brief summary of results, or describe any issues found + + + + + +1. Playwright tests: All tests pass or failures documented as pre-existing +2. UAT.md: File exists with complete checklist +3. Manual verification: User confirms session stability + + + +1. All existing Playwright tests pass (no new regressions from Phase 20-22 changes) +2. UAT.md created with comprehensive memory verification checklist +3. User executes manual verification and confirms: + - Session remains stable for 15+ minutes (VRFY-01) + - Memory usage doesn't grow unbounded (VRFY-02) + + + +After completion, create `.planning/phases/23-verification/23-01-SUMMARY.md` + +Update UAT.md status from `pending` to `passed` or `failed` based on verification results. +