docs: create milestone v1.4 roadmap (5 phases)

Phases:
19. Audit and Discovery: investigate all areas, identify leaks
20. VU Meter Fixes: VUMTR-01, VUMTR-02, VUMTR-03
21. Chat Window Fixes: CHAT-01, CHAT-02, CHAT-03
22. Session Screen Fixes: SESS-01, SESS-02, SESS-03
23. Verification: VRFY-01, VRFY-02

All 11 milestone requirements mapped to phases.
This commit is contained in:
Nuwan 2026-02-08 13:57:58 +05:30
parent 2ae1764176
commit 5fbb51158f
3 changed files with 163 additions and 43 deletions

View File

@ -43,23 +43,30 @@ Requirements for fixing memory leaks in the session screen. Focus on cleanup pat
| Requirement | Phase | Status |
|-------------|-------|--------|
| VUMTR-01 | TBD | Pending |
| VUMTR-02 | TBD | Pending |
| VUMTR-03 | TBD | Pending |
| CHAT-01 | TBD | Pending |
| CHAT-02 | TBD | Pending |
| CHAT-03 | TBD | Pending |
| SESS-01 | TBD | Pending |
| SESS-02 | TBD | Pending |
| SESS-03 | TBD | Pending |
| VRFY-01 | TBD | Pending |
| VRFY-02 | TBD | Pending |
| VUMTR-01 | Phase 20 | Pending |
| VUMTR-02 | Phase 20 | Pending |
| VUMTR-03 | Phase 20 | Pending |
| CHAT-01 | Phase 21 | Pending |
| CHAT-02 | Phase 21 | Pending |
| CHAT-03 | Phase 21 | Pending |
| SESS-01 | Phase 22 | Pending |
| SESS-02 | Phase 22 | Pending |
| SESS-03 | Phase 22 | Pending |
| VRFY-01 | Phase 23 | Pending |
| VRFY-02 | Phase 23 | Pending |
**Coverage:**
- v1.4 requirements: 11 total
- Mapped to phases: 0
- Unmapped: 11
- Mapped to phases: 11
- Unmapped: 0
**Phase Summary:**
- Phase 19 (Audit and Discovery): 0 requirements (discovery phase - informs subsequent phases)
- Phase 20 (VU Meter Fixes): 3 requirements (VUMTR-01, VUMTR-02, VUMTR-03)
- Phase 21 (Chat Window Fixes): 3 requirements (CHAT-01, CHAT-02, CHAT-03)
- Phase 22 (Session Screen Fixes): 3 requirements (SESS-01, SESS-02, SESS-03)
- Phase 23 (Verification): 2 requirements (VRFY-01, VRFY-02)
---
*Requirements defined: 2026-02-08*
*Last updated: 2026-02-08 after initial definition*
*Last updated: 2026-02-08 after roadmap creation*

View File

@ -10,10 +10,11 @@ None
## Milestones
- ✅ **v1.0 Media Players** - Phases 1-5 (shipped 2026-01-14)
- ✅ **v1.1 Music Session Chat** - Phases 6-11 (shipped 2026-01-31)
- ✅ **v1.2 Session Attachments** - Phases 12-16 (shipped 2026-02-07)
- ✅ **v1.3 Session Settings Tests** - Phases 17-18 (shipped 2026-02-08)
- v1.0 Media Players - Phases 1-5 (shipped 2026-01-14)
- v1.1 Music Session Chat - Phases 6-11 (shipped 2026-01-31)
- v1.2 Session Attachments - Phases 12-16 (shipped 2026-02-07)
- v1.3 Session Settings Tests - Phases 17-18 (shipped 2026-02-08)
- **v1.4 Memory Leak Prevention** - Phases 19-23 (in progress)
## Phases
@ -23,7 +24,7 @@ None
Decimal phases appear between their surrounding integers in numeric order.
### v1.0 Media Players (Phases 1-5) - SHIPPED 2026-01-14
### v1.0 Media Players (Phases 1-5) - SHIPPED 2026-01-14
<details>
<summary>Show completed phases</summary>
@ -36,7 +37,7 @@ Decimal phases appear between their surrounding integers in numeric order.
</details>
### v1.1 Music Session Chat (Phases 6-11) - SHIPPED 2026-01-31
### v1.1 Music Session Chat (Phases 6-11) - SHIPPED 2026-01-31
<details>
<summary>Show completed phases</summary>
@ -52,7 +53,7 @@ Decimal phases appear between their surrounding integers in numeric order.
</details>
### v1.2 Session Attachments (Phases 12-16) - SHIPPED 2026-02-07
### v1.2 Session Attachments (Phases 12-16) - SHIPPED 2026-02-07
<details>
<summary>Show completed phases</summary>
@ -67,16 +68,31 @@ Decimal phases appear between their surrounding integers in numeric order.
</details>
### ✅ v1.3 Session Settings Tests (Phases 17-18) - SHIPPED 2026-02-08
### v1.3 Session Settings Tests (Phases 17-18) - SHIPPED 2026-02-08
<details>
<summary>Show completed phases</summary>
**Milestone Goal:** Add test coverage for the Session Settings modal component (JKSessionSettingsModal) to enable confident changes.
- [x] **Phase 17: Unit Tests (Jest)** - Component rendering, save payload, loading state
- [x] **Phase 18: Integration Tests (Playwright)** - Settings button, save API call, cancel behavior
</details>
### v1.4 Memory Leak Prevention (Phases 19-23) - IN PROGRESS
**Milestone Goal:** Fix memory leaks causing session screen freezes after ~10 minutes. Audit and fix cleanup patterns in VU meters, chat window, and session screen components.
- [ ] **Phase 19: Audit and Discovery** - Investigate all three areas, identify actual memory leaks with evidence
- [ ] **Phase 20: VU Meter Fixes** - Fix identified VU meter interval/animation cleanup issues
- [ ] **Phase 21: Chat Window Fixes** - Fix identified chat WebSocket listener and state cleanup issues
- [ ] **Phase 22: Session Screen Fixes** - Fix identified session screen useEffect and polling cleanup issues
- [ ] **Phase 23: Verification** - Validate session stability after fixes
## Phase Details
### ✅ v1.0 Media Players - SHIPPED 2026-01-14
### v1.0 Media Players - SHIPPED 2026-01-14
<details>
<summary>Show completed phase details</summary>
@ -136,7 +152,7 @@ Plans:
</details>
### v1.1 Music Session Chat (Phases 6-11) - SHIPPED 2026-01-31
### v1.1 Music Session Chat (Phases 6-11) - SHIPPED 2026-01-31
<details>
<summary>Show completed phase details</summary>
@ -207,7 +223,7 @@ Plans:
</details>
### v1.2 Session Attachments (Phases 12-16) - SHIPPED 2026-02-07
### v1.2 Session Attachments (Phases 12-16) - SHIPPED 2026-02-07
<details>
<summary>Show completed phase details</summary>
@ -319,7 +335,7 @@ Plans:
</details>
### v1.3 Session Settings Tests (Phases 17-18) - SHIPPED 2026-02-08
### v1.3 Session Settings Tests (Phases 17-18) - SHIPPED 2026-02-08
<details>
<summary>Show completed phase details</summary>
@ -362,10 +378,100 @@ Plans:
</details>
### v1.4 Memory Leak Prevention (Phases 19-23) - IN PROGRESS
**Milestone Goal:** Fix memory leaks causing session screen freezes after ~10 minutes. Audit and fix cleanup patterns in VU meters, chat window, and session screen components.
#### Phase 19: Audit and Discovery
**Goal**: Investigate all three areas (VU meters, chat, session screen) and identify actual memory leaks with evidence
**Depends on**: Phase 18 (previous milestone complete)
**Research**: Likely (code audit to identify actual leak sources)
**Requirements**: None (discovery phase - informs subsequent phases)
**Plans**: TBD (1-2 plans expected)
**Success Criteria:**
1. VU meter components audited - all setInterval, setTimeout, and requestAnimationFrame calls documented
2. Chat window components audited - all WebSocket listeners and state growth patterns documented
3. Session screen components audited - all useEffect hooks and cleanup functions documented
4. Leak sources identified with evidence (missing cleanup, unbounded growth, etc.)
5. Priority ranking of fixes based on severity (which leaks cause the 10-minute freeze)
Plans:
- [ ] 19-01: TBD
#### Phase 20: VU Meter Fixes
**Goal**: Fix identified VU meter interval/animation cleanup issues
**Depends on**: Phase 19
**Research**: Unlikely (fixing issues identified in Phase 19)
**Requirements**: VUMTR-01, VUMTR-02, VUMTR-03
**Plans**: TBD (1-2 plans expected)
**Success Criteria:**
1. All setInterval calls in VU meter components have corresponding clearInterval in cleanup
2. All requestAnimationFrame calls have corresponding cancelAnimationFrame in cleanup
3. VU meter animations stop completely when component is hidden or unmounted
4. No orphaned intervals or animation frames accumulate over time
5. VU meters can be shown/hidden repeatedly without memory growth
Plans:
- [ ] 20-01: TBD
#### Phase 21: Chat Window Fixes
**Goal**: Fix identified chat WebSocket listener and state cleanup issues
**Depends on**: Phase 19
**Research**: Unlikely (fixing issues identified in Phase 19)
**Requirements**: CHAT-01, CHAT-02, CHAT-03
**Plans**: TBD (1-2 plans expected)
**Success Criteria:**
1. WebSocket listeners are properly removed when chat window closes
2. Message list has bounded growth (e.g., max messages, pagination, or virtualization)
3. Chat window can be opened/closed repeatedly without memory growth
4. No duplicate WebSocket listeners accumulate over time
5. Redux state cleanup happens when session ends or user leaves
Plans:
- [ ] 21-01: TBD
#### Phase 22: Session Screen Fixes
**Goal**: Fix identified session screen useEffect and polling cleanup issues
**Depends on**: Phase 19
**Research**: Unlikely (fixing issues identified in Phase 19)
**Requirements**: SESS-01, SESS-02, SESS-03
**Plans**: TBD (1-2 plans expected)
**Success Criteria:**
1. All useEffect hooks that set up subscriptions/intervals have cleanup return functions
2. All polling intervals are cleared on component unmount
3. All event listeners have corresponding removal on cleanup
4. Session screen can be mounted/unmounted without memory growth
5. No orphaned polling or listeners accumulate during normal session use
Plans:
- [ ] 22-01: TBD
#### Phase 23: Verification
**Goal**: Validate session stability after all fixes are applied
**Depends on**: Phase 20, Phase 21, Phase 22
**Research**: Unlikely (verification of completed fixes)
**Requirements**: VRFY-01, VRFY-02
**Plans**: 1 plan
**Success Criteria:**
1. Session remains stable and responsive for 15+ minutes of continuous use
2. Memory usage in browser dev tools remains stable (no unbounded growth)
3. Multiple session join/leave cycles don't accumulate memory
4. Chat window open/close cycles don't accumulate memory
5. VU meter show/hide cycles don't accumulate memory
6. All existing Playwright tests still pass (no regressions)
Plans:
- [ ] 23-01: TBD
## Progress
**Execution Order:**
Phases execute in numeric order: 1 → 2 → ... → 16 → 17 → 18
Phases execute in numeric order: 1 → 2 → ... → 18 → 19 → 20 → 21 → 22 → 23
| Phase | Milestone | Plans Complete | Status | Completed |
|-------|-----------|----------------|--------|-----------|
@ -387,3 +493,8 @@ Phases execute in numeric order: 1 → 2 → ... → 16 → 17 → 18
| 16. Attachment Finalization | v1.2 | 2/2 | Complete | 2026-02-07 |
| 17. Unit Tests (Jest) | v1.3 | 1/1 | Complete | 2026-02-08 |
| 18. Integration Tests (Playwright) | v1.3 | 1/1 | Complete | 2026-02-08 |
| 19. Audit and Discovery | v1.4 | 0/TBD | Not started | - |
| 20. VU Meter Fixes | v1.4 | 0/TBD | Not started | - |
| 21. Chat Window Fixes | v1.4 | 0/TBD | Not started | - |
| 22. Session Screen Fixes | v1.4 | 0/TBD | Not started | - |
| 23. Verification | v1.4 | 0/TBD | Not started | - |

View File

@ -4,17 +4,17 @@
See: .planning/PROJECT.md (updated 2026-02-08)
**Core value:** Fix memory leaks to ensure stable session experience
**Current focus:** v1.4 Memory Leak Prevention
**Core value:** Fix memory leaks to ensure stable session experience without freezes
**Current focus:** v1.4 Memory Leak Prevention - Phase 19 Audit and Discovery
## Current Position
Phase: Not started (defining requirements)
Plan:
Status: Defining requirements
Last activity: 2026-02-08 — Milestone v1.4 started
Phase: 19 of 23 (Audit and Discovery)
Plan: Not started
Status: Ready to plan
Last activity: 2026-02-08 — Roadmap created for v1.4
Progress: ░░░░░░░░░░░░ 0%
Progress (v1.4): [░░░░░░░░░░░░░░░░░░░░] 0%
## Performance Metrics
@ -42,6 +42,11 @@ Progress: ░░░░░░░░░░░░ 0%
- Completion date: 2026-02-08
- Duration: 1 day
**v1.4 Memory Leak Prevention (In Progress):**
- Phases: 5 (phases 19-23)
- Requirements: 11
- Plans completed: 0
## Accumulated Context
### Decisions
@ -50,12 +55,8 @@ Decisions are logged in PROJECT.md Key Decisions table.
| Date | Phase | Decision | Rationale |
|------|-------|----------|-----------|
| 2026-02-08 | 17-01 | renderModal helper pattern with defaultProps | Reduces test boilerplate |
| 2026-02-08 | 17-01 | react-i18next mock with translation map | Enables testing actual label values |
| 2026-02-08 | 17-01 | Requirement-labeled describe blocks (UNIT-XX) | Traceability from tests to requirements |
| 2026-02-08 | 18-01 | Use privacy select as modal indicator | Avoids toast notification collision |
| 2026-02-08 | 18-01 | page.route() for API interception | Simpler than APIInterceptor for single-request |
| 2026-02-08 | 18-01 | INT-XX labeled test names | Traceability to integration test requirements |
### Deferred Issues
@ -64,7 +65,7 @@ Decisions are logged in PROJECT.md Key Decisions table.
3. **Volume control not working in popup mode** (Medium) - From v1.0
4. **WebSocket chat messages only broadcast to musicians** (Medium) - From v1.2
5. **mp3 backend support** (Medium) - Frontend allows, backend whitelist doesn't support
6. **Pre-existing test failures in JKChatMessageList.test.js** (Low) - Missing activeSession state in store
6. **Pre-existing test failures in JKChatMessageList.test.js** (Low) - Missing activeSession state
### Roadmap Evolution
@ -72,14 +73,15 @@ Decisions are logged in PROJECT.md Key Decisions table.
- **v1.1 Music Session Chat** (Phases 6-11): Shipped 2026-01-31
- **v1.2 Session Attachments** (Phases 12-16): Shipped 2026-02-07
- **v1.3 Session Settings Tests** (Phases 17-18): Shipped 2026-02-08
- **v1.4 Memory Leak Prevention** (Phases 19-23): In progress
## Session Continuity
Last session: 2026-02-08
Stopped at: Started v1.4 Memory Leak Prevention milestone
Stopped at: Roadmap created for v1.4 Memory Leak Prevention
Resume file: None
**Next steps:**
1. Define requirements for memory leak fixes
2. Create roadmap with phases
3. Begin auditing session screen components
1. Run `/gsd:plan-phase 19` to plan Audit and Discovery phase
2. Investigate VU meters, chat window, and session screen for memory leaks
3. Document findings before implementing fixes