From 2ae17641767e8fb02ee2a1716e859d9f002d3bf0 Mon Sep 17 00:00:00 2001 From: Nuwan Date: Sun, 8 Feb 2026 13:36:23 +0530 Subject: [PATCH] docs: define milestone v1.4 requirements 11 requirements across 4 categories: - VU Meters (3): Interval/animation cleanup - Chat Window (3): WebSocket listener and state cleanup - Session Screen (3): useEffect and polling cleanup - Verification (2): Stability and memory monitoring --- .planning/REQUIREMENTS.md | 74 +++++++++++++++++++++++---------------- 1 file changed, 44 insertions(+), 30 deletions(-) diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md index 813e1c442..4ea5b2871 100644 --- a/.planning/REQUIREMENTS.md +++ b/.planning/REQUIREMENTS.md @@ -1,51 +1,65 @@ -# Requirements: Session Settings Tests +# Requirements: Memory Leak Prevention -**Defined:** 2026-02-07 -**Core Value:** Enable confident changes to Session Settings modal through comprehensive test coverage +**Defined:** 2026-02-08 +**Core Value:** Fix memory leaks to ensure stable session experience without freezes or crashes -## v1.3 Requirements +## v1.4 Requirements -Requirements for Session Settings test coverage. Critical paths only. +Requirements for fixing memory leaks in the session screen. Focus on cleanup patterns. -### Unit Tests (Jest) +### VU Meters (VUMTR) -- [x] **UNIT-01**: Modal renders correctly with currentSession props (privacy, description) -- [x] **UNIT-02**: Save button calls onSave with correct payload (privacy number, description) -- [x] **UNIT-03**: Loading state disables form interactions (save button, inputs) +- [ ] **VUMTR-01**: Audit VU meter components for interval/timer cleanup on unmount +- [ ] **VUMTR-02**: Fix any leaking setInterval or requestAnimationFrame calls +- [ ] **VUMTR-03**: Ensure animation stops when VU meters are hidden/unmounted -### Integration Tests (Playwright) +### Chat Window (CHAT) -- [x] **INT-01**: Settings button in session toolbar opens modal -- [x] **INT-02**: Save settings makes PUT /sessions/{id} API call with correct data -- [x] **INT-03**: Cancel closes modal without making API call +- [ ] **CHAT-01**: Audit WebSocket listener registration and cleanup patterns +- [ ] **CHAT-02**: Check for unbounded message list growth in Redux state +- [ ] **CHAT-03**: Ensure proper cleanup when chat window closes + +### Session Screen Base (SESS) + +- [ ] **SESS-01**: Audit useEffect hooks for missing cleanup return functions +- [ ] **SESS-02**: Check polling intervals for proper cleanup on component unmount +- [ ] **SESS-03**: Audit event listener registration/removal patterns + +### Verification (VRFY) + +- [ ] **VRFY-01**: Session remains stable for 15+ minutes without freeze +- [ ] **VRFY-02**: Memory usage doesn't grow unbounded (verify in browser dev tools) ## Out of Scope | Feature | Reason | |---------|--------| -| Exhaustive state change tests | Core paths only, not every input change | -| Privacy transform unit tests | Covered implicitly by save payload test | -| Error handling tests | Deferred to keep scope minimal | -| Success toast tests | Deferred to keep scope minimal | -| Visual regression tests | Not part of this milestone | -| Other modal tests | Only JKSessionSettingsModal | +| Recording modal performance | Separate milestone, different component tree | +| New features | Focus purely on fixing existing leaks | +| Backend changes | Frontend-only fixes | +| Major refactoring | Minimal changes to fix leaks, preserve behavior | ## Traceability | Requirement | Phase | Status | |-------------|-------|--------| -| UNIT-01 | Phase 17 | Complete | -| UNIT-02 | Phase 17 | Complete | -| UNIT-03 | Phase 17 | Complete | -| INT-01 | Phase 18 | Complete | -| INT-02 | Phase 18 | Complete | -| INT-03 | Phase 18 | Complete | +| 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 | **Coverage:** -- v1.3 requirements: 6 total -- Mapped to phases: 6 -- Unmapped: 0 ✓ +- v1.4 requirements: 11 total +- Mapped to phases: 0 +- Unmapped: 11 --- -*Requirements defined: 2026-02-07* -*Last updated: 2026-02-08 after Phase 18 completion (v1.3 milestone complete)* +*Requirements defined: 2026-02-08* +*Last updated: 2026-02-08 after initial definition*