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
This commit is contained in:
Nuwan 2026-02-08 13:36:23 +05:30
parent a5b5c7f550
commit 2ae1764176
1 changed files with 44 additions and 30 deletions

View File

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