WordloopWordloop
WorkMeeting RecordingTechnical Design DocMilestones06 Live Notes

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 notes value from GET /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 notes value in the editor rather than reverting to empty or stale content.

Dependencies

  • Core Live Notes slice must be merged — specifically PATCH /meetings/{id} accepting notes and 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.

TestLocationAssertion
test_user_can_edit_private_notes_while_recordingtest_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_savetest_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_pagetest_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_failstest_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)

On this page