App — Live Notes Editor
Notes textarea autosave in the recording view, debounced PATCH, restore on refresh, and display in the finalized meeting detail via the M03 shared note components.
App — Live Notes Editor
Owner: App Engineer Domain: app Complexity: S Prerequisite: Core Live Notes slice merged
When this slice is complete, the recording view renders a private notes textarea that accepts edits at any time, debounces them into PATCH /meetings/{id}, and keeps the last acknowledged value in the editor if a save fails. The finalized meeting page renders the saved notes next to the M03 shared note components, and a fresh page load restores the latest autosaved content.
Required Capabilities
- The recording view renders a notes textarea that accepts edits at any time during an active recording.
- Edits are debounced into
PATCH /meetings/{id} { notes }— there is no manual "Save" action. - On page load, the editor restores the latest autosaved
notesvalue fromGET /meetings/{id}. - The finalized meeting page renders the saved notes alongside the M03 shared note components.
- A failed autosave surfaces an error and keeps the last acknowledged
notesvalue in the editor rather than reverting to empty or stale content.
Dependencies
- Core Live Notes slice must be merged — specifically
PATCH /meetings/{id}acceptingnotesand echoing the saved value. - Milestone 03 (
reusable-note-components) must be merged — the finalized meeting page reuses its note rendering components.
Domain Notes
The editor has no separate autosave endpoint to call — every debounced edit is just another PATCH /meetings/{id}, so the App's only autosave responsibility is when to fire the request (debounce timing) and how to render its outcome (restore on load, keep last-good value on failure).
Test Cases
Test cases map to tests/bets/meeting-recording/test_milestone_06_live_notes.py. Run via ./dev test bet meeting-recording.
| Test | Location | Assertion |
|---|---|---|
test_user_can_edit_private_notes_while_recording | test_milestone_06 (App Vitest test_app_notes_autosave_debounced) | The notes editor accepts edits during an active recording and schedules a debounced autosave PATCH. |
test_notes_autosave_without_manual_save | test_milestone_06 (App Vitest test_app_notes_restore_on_load) | The editor restores the latest autosaved value with no manual save action ever invoked. |
test_app_renders_notes_on_the_finalized_meeting_page | test_milestone_06 (App Vitest test_app_final_notes_display) | The finalized meeting page shows the saved notes next to the M03 shared note list. |
test_app_keeps_last_saved_notes_when_a_save_fails | test_milestone_06 (App Vitest test_app_notes_save_failure_keeps_saved_content) | A failed autosave surfaces an error and keeps the last acknowledged notes visible in the editor. |
Completion Checklist
- Code merged and deployed
- Bet progress tests pass (
./dev test bet meeting-recording) - Permanent service tests implemented per testing strategy
- Code review completed
- Testing review completed
- System documentation updated (as applicable)