docs(23): create phase plan for Memory Leak Verification

Phase 23: Verification
- 1 plan in 1 wave
- Regression tests + manual UAT checklist
- Ready for execution
This commit is contained in:
Nuwan 2026-02-10 14:26:55 +05:30
parent 41972973ca
commit c23169a870
2 changed files with 206 additions and 2 deletions

View File

@ -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 | - |

View File

@ -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"
---
<objective>
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
</objective>
<execution_context>
@/Users/nuwan/.claude/get-shit-done/workflows/execute-plan.md
@/Users/nuwan/.claude/get-shit-done/templates/summary.md
</execution_context>
<context>
@.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
</context>
<tasks>
<task type="auto">
<name>Task 1: Run Playwright regression tests</name>
<files>N/A (test execution only)</files>
<action>
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)
</action>
<verify>Test execution completes and results are documented</verify>
<done>Playwright test results captured showing pass/fail status for all test files</done>
</task>
<task type="auto">
<name>Task 2: Create UAT checklist for manual memory verification</name>
<files>.planning/phases/23-verification/23-UAT.md</files>
<action>
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.
</action>
<verify>File exists at .planning/phases/23-verification/23-UAT.md with all 5 sections</verify>
<done>UAT.md contains comprehensive checklist covering VU meters, chat, session screen, 15-min stability, and memory growth verification</done>
</task>
<task type="checkpoint:human-verify" gate="blocking">
<name>Task 3: Execute manual memory verification</name>
<what-built>Automated tests passed (Task 1) and UAT checklist created (Task 2)</what-built>
<how-to-verify>
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
</how-to-verify>
<resume-signal>Type "approved" with brief summary of results, or describe any issues found</resume-signal>
</task>
</tasks>
<verification>
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
</verification>
<success_criteria>
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)
</success_criteria>
<output>
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.
</output>