github riffado/riffado v0.5.4

3 hours ago

[0.5.4] - 2026-05-29

Added

  • PLAUD_PROXY_SCOPE env var (all default | api-only) controlling whether resource.plaud.ai signed-URL audio downloads go through the Webshare residential proxy. Audio bytes dominate proxy bandwidth; operators who verify resource.plaud.ai serves direct from their egress IPs (via scripts/plaud-egress-probe.sh) can flip to api-only and save most of the Webshare quota without affecting API correctness. Default all preserves existing behavior.
  • PLAUD_SYNC_RATE_LIMIT_PER_MINUTE env var (default 10) capping per-user sync requests. Backstops the new client-side throttling at the route boundary so a script hammering POST /api/plaud/sync is rejected before any Plaud or Webshare call is issued.

Changed

  • WEBSHARE_API_KEY proxy path now uses native fetch through undici.ProxyAgent instead of the previous wreq-js dependency. Drops a Rust napi addon from the standalone Docker image and removes the Turbopack workaround in next.config.ts. No behavioral change for proxy users; direct-egress path unchanged.
  • Sync flow now coalesces concurrent calls for the same user inside one Next.js worker into a single Plaud round-trip; secondary callers receive the same result with an inProgress: true marker and the client renders it as a quiet no-op (no extra router.refresh(), no duplicate toast). Combined with a new client-side cross-tab localStorage in-flight stamp (90s TTL) and a 5s floor on manual sync taps, this collapses N-tab fan-out and rage-clicks before they reach the API.

Removed

  • wreq-js dependency.

Full changelog: CHANGELOG.md
Install: see docker-compose.yml and env.example attached below, or follow README → Quick Start.

Don't miss a new riffado release

NewReleases is sending notifications on new releases.