Test

Merged
SW
4mo ago
+0-0

Summary by cubic

Unifies async chat generation on a durable run workflow, adds a first-class emails API, and tightens Songstats/catalog flows. Also expands connectors, improves admin access, and updates links to .dev.

  • New Features

    • POST /api/chat/runs to start headless runs (returns runId, chatId, sessionId) and GET /api/chat/runs/{runId} for status, using short‑lived per‑run API keys (chat#1813).
    • POST /api/emails to send account‑scoped emails; to and subject are optional with sensible defaults; replaces /api/notifications (chat#1815).
    • Connectors: whitelist LinkedIn and X (Twitter), plus POST /api/connectors/files to stage images for posts (chat#1793, chat#1809).
    • POST /api/catalogs to create and materialize a catalog from a valuation snapshot (chat#1801).
    • Admin controls: cross‑account chat/task access and an account override for artist deletes (chat#1811, chat#1810).
  • Bug Fixes

    • Songstats historical drain: bounded backoff/defer on 4xx/5xx, remove the local quota gate, and add free‑tier card‑on‑file gate with instant start after enqueue (chat#1796, chat#1797).
    • Catalog visibility/materialization: use distinct ISRCs from song_measurements, LEFT‑join artists so materialized tracks show, and enrich captured songs with artists/notes (chat#1801).
    • Platform plumbing: install renamed global skills so email tools load in sandboxes; enforce API‑key expiry and accept recoup_sk_ over Bearer; repoint dead .com links to .dev and widen link extractors (chat#1819).