Skip to content

History & Migrations

This page is a concise timeline of infrastructure migrations, for context — it does not describe current operational procedure; see the other Operations pages for that.

Warehouse migration

The system of record moved from Supabase to DigitalOcean Managed Postgres. Writers now explicitly refuse to connect to a Supabase host as a safety check, so a stale connection string fails loudly instead of silently writing to the old, dead copy. See Warehouse Schema.

Outreach daemon migration

The reply daemon and cron jobs moved from Fly.io to a DigitalOcean droplet running Coolify, for cost/reliability reasons. Fly.io is being phased out as a fallback. See Deployment.

CSV mirror deprecation

The pipeline used to maintain CSV files as a fallback/mirror alongside the warehouse. CSV writing is now off by default, and the warehouse is required — there is no more silent CSV-only fallback if the database is unreachable. See Data Pipeline.

Chrome extension retirement

The Chrome extension (relive-overlay) and its dedicated backend (extension-api/) were retired; the extension is no longer deployed against anything live. See Chrome Extension.

Next.js dashboard removal

An earlier in-repo dashboard was removed; the current reporting surface is the CLI (metrics/target/report commands) plus a separate internal dashboard application fed by internal-api. See Internal API.

Outbound SMTP port block

The VPS hosting provider blocks outbound SMTP ports platform-wide. Outreach mail is now relayed over HTTPS through internal-api's /mail?resource=relay endpoint instead of sending SMTP directly from the VPS. See Internal API.

Rent observation ledger introduced

Rent readings were previously overwritten on each new sighting ("newest wins," no history). An append-only ledger now records every source's reading. See Rent Ledger.


Note

Specific historical incident reports, dated experiment results, and session logs from before the docs reorganization are preserved in the project's archive folder rather than in this documentation site, for anyone who needs the full detail.

See also