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:
parent
2ae1764176
commit
5fbb51158f
|
|
@ -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*
|
||||
|
|
|
|||
|
|
@ -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 | - |
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue