Add support for web pages and recordings as context

  • Added web pages as context: memloom context add https://… (or the viewer's Add link card) fetches and parses the page in-process, so nothing about it reaches a reader service. Pages that build themselves in the browser are refused with advice instead of stored empty, and re-adding a link refreshes it
  • Added audio and video as context: recordings are transcribed on this machine (Parakeet under sherpa-onnx; memloom audio setup fetches the models once) and cited by timestamp, so recall answers from standup.mkv › 12:30 - 14:28. Every audio track is mixed in, the transcript opens with when the recording was made, and transcripts are cached by file hash so a re-add never transcribes twice (docs)
  • Recordings tell you who is speaking. Multi-voice recordings are diarized locally, sections break where the speaker changes, and headings carry the label. Rename Speaker 2 to a real name from the viewer (each voice has a playable sample), and the voice library remembers it: later recordings of a voice you have named arrive pre-labeled, entirely on-device
  • Slow ingests run through a durable queue: link one recording or fifty, watch per-file progress with a live percentage for every stage, cancel or resume, and the queue survives a daemon restart. Transcription and diarization run in a worker thread, so the daemon stays responsive throughout
  • Uploads from the browser are capped at ~512 MB with a clear pointer to Link file, and uploaded recordings now live in memloom's own uploads directory instead of the OS temp dir, so playback and samples keep working after Windows cleans up
  • The viewer feels faster: tab data is prefetched on hover and cached, so switching tabs shows data instead of a loading message; the queue and entities sections render immediately with honest empty and loading states
  • The daemon no longer dies when the Postgres wire port cannot bind. The wire is a convenience for database tools, so a blocked port now costs you the wire and nothing else: memloom serve reports the bind error, keeps the HTTP API and viewer running, and releases the data-dir lock cleanly on exit. This mostly bites on Windows, where Hyper-V, WSL and Docker reserve random port blocks inside the ephemeral range at every boot and one can land on the default 54329
  • Added MEMLOOM_PG_PORT to move the Postgres wire off 54329. Set it in ~/.memloom/config.env (or the environment) to any free port; memloom serve and memloom init print the live one