Skip to content

[AGENT] Design long-running recording architecture #240

Description

@BASIC-BIT

[AGENT]

Summary

Design and implement an architecture for effectively long-running Chronote recordings across desktop and Discord without unbounded memory, disk, network, or AI-call backlog.

Product direction

The desired path is staged:

  1. Near term: compressed upload after stop for desktop recordings.
  2. Next: rolling upload and rolling transcription for desktop recordings.
  3. Long term: Discord meetings and desktop recordings should support effectively indefinite sessions by rolling artifacts, transcripts, summaries, and processing windows.

Current constraints

  • Desktop recorder stores WAV sources locally until Stop.
  • Desktop upload submits completed source files after capture stops.
  • Desktop upload currently shares the 500 MB total upload cap.
  • Desktop upload reads completed files into memory before POSTing.
  • Discord meeting transcription can backlog behind global transcription concurrency and rate limits.
  • Meeting end waits on pending transcription before notes generation.

Proposed scope

  • Define bounded local storage rules for active recordings.
  • Compress desktop audio during or immediately after capture.
  • Add resumable/chunked upload semantics for desktop sources.
  • Add rolling server-side processing units with durable status.
  • Track queue depth, age, and per-meeting backlog.
  • Decide when to generate rolling summaries versus final summaries.
  • Define recovery behavior after desktop crash, network loss, backend restart, or worker restart.
  • Revisit transcription concurrency/rate limits with production-safe configuration rather than hardcoded low limits.

Acceptance criteria

  1. A design exists for bounded long-running capture across desktop and Discord.
  2. Desktop no longer requires a full WAV file to remain below a single upload cap before any upload can start.
  3. Uploads can resume or recover without duplicating completed meetings.
  4. Transcription work can be processed incrementally without unbounded backlog.
  5. Meeting end latency is bounded or at least observable and recoverable.
  6. Metrics expose queue depth, queue age, and per-meeting processing lag.
  7. Tests cover chunk state transitions, retry/recovery, and final meeting assembly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions