# Requirements Archive: v1.5 Fix Session Recording

**Archived:** 2026-02-25
**Status:** ✅ SHIPPED

This is the archived requirements specification for v1.5.
For current requirements, see `.planning/REQUIREMENTS.md` (created for next milestone).

---

# Requirements: Fix Session Recording

**Defined:** 2026-02-19
**Core Value:** Fix recording so users can record their jam sessions without crashes

## v1.5 Requirements

Requirements for fixing session recording. Each maps to roadmap phases.

### Crash Fix

- [x] **CRASH-01**: Call RegisterRecordingCallbacks before recording operations ✓
- [x] **CRASH-02**: Use correct method name StartRecording (not StartMediaRecording) ✓ *Moot - original research incorrect*
- [x] **CRASH-03**: Use correct method name StopRecording (not FrontStopRecording) ✓ *Moot - original research incorrect*
- [x] **CRASH-04**: Pass individual parameters to StartRecording (not settings object) ✓ *Moot - original research incorrect*

**Note:** CRASH-02/03/04 were based on incorrect research. Actual crash fix was JSON parsing in rest.js. Recording works with original method names (StartMediaRecording, FrontStopRecording).

### Basic Controls

- [x] **CTRL-01**: Start recording works - initiates recording like desktop native app ✓ *Implicitly satisfied*
- [x] **CTRL-02**: Stop recording works - ends recording like desktop native app ✓ *Implicitly satisfied*
- [ ] **CTRL-03**: Pause recording works - pauses recording like desktop native app *Not tested*

**Note:** CTRL requirements were not explicitly mapped to phases but start/stop verified working by user during Phase 24 testing.

### Memory Leak Audit

- [x] **MEM-01**: Audit recording modal useEffect cleanup functions ✓
- [x] **MEM-02**: Audit timer/interval cleanup during recording lifecycle ✓
- [x] **MEM-03**: Verify no memory growth while recording modal is open ✓

## Future Requirements

Deferred to future milestones.

### Recording Management

- **RMGT-01**: Track selection - Choose which tracks to include in recording
- **RMGT-02**: Recording playback - Play back recordings within the modal
- **RMGT-03**: Recording management - Save, delete, rename recordings

## Out of Scope

Explicitly excluded for this milestone.

| Feature | Reason |
|---------|--------|
| Track selection | Keep v1.5 focused on crash fix and basic controls |
| Recording playback | Not blocking core recording functionality |
| Recording management | Defer to future milestone |
| Backend changes | Frontend-only fixes |
| Metronome | Separate feature |

## Traceability

Which phases cover which requirements.

| Requirement | Phase | Status |
|-------------|-------|--------|
| CRASH-01 | Phase 24 | Complete |
| CRASH-02 | Phase 24 | Complete (moot - research incorrect) |
| CRASH-03 | Phase 24 | Complete (moot - research incorrect) |
| CRASH-04 | Phase 24 | Complete (moot - research incorrect) |
| CTRL-01 | — | Complete (implicit, user verified) |
| CTRL-02 | — | Complete (implicit, user verified) |
| CTRL-03 | — | Not tested |
| MEM-01 | Phase 25 | Complete |
| MEM-02 | Phase 25 | Complete |
| MEM-03 | Phase 25 | Complete |

**Coverage:**
- v1.5 requirements: 10 total
- Complete: 9
- Not tested: 1 (CTRL-03 pause)

---

## Milestone Summary

**Shipped:** 9 of 10 v1.5 requirements
**Adjusted:** CRASH-02/03/04 research was incorrect, actual fix was JSON parsing
**Not tested:** CTRL-03 (pause recording)

---
*Archived: 2026-02-25 as part of v1.5 milestone completion*
