Files
recap/startos/versions/v0.2.57.ts
T
Keysat 0ae59f3550 Add multi-tenant cloud mode: self-serve purchase, credit metering, core-decoupling
Introduces RECAP_MODE=multi alongside single-mode self-host:
- Tenant auth + accounts (magic-link via System SMTP), per-tenant credit pool,
  anonymous trial minting with per-IP/-64 caps
- Self-serve Pro/Max purchase: inline Lightning (BTCPay) + card (Zaprite),
  prepaid 30-day periods, expiry-reminder emails
- Core-decoupling: relay owns cloud tier/expiry keyed by Recaps user-id
- SQLite (better-sqlite3) schema for multi-mode; filesystem unchanged for single
- StartOS actions/versions through 0.2.155
2026-06-13 14:25:05 -05:00

17 lines
1.3 KiB
TypeScript

import { VersionInfo } from '@start9labs/start-sdk'
export const v_0_2_57 = VersionInfo.of({
version: '0.2.57:10',
releaseNotes: {
en_US:
'Relay transcribe-url now uses async job polling.\n\n' +
'The relay-URL fast-path used to hold one HTTP connection open for the entire transcribe duration — minutes to tens of minutes for long audio. That broke when any proxy or load balancer in the network path silently dropped the long-running connection mid-flight, with the symptom "fetch failed (other side closed)".\n\n' +
'Recap now POSTs to the relay, gets back a job_id immediately, and polls GET /relay/jobs/:id every 5 seconds until the job lands as "complete" or "failed". Poll requests are short and cheap so no proxy in the path can drop them. The relay surfaces incremental progress messages ("downloading…", "transcribing 105 min audio…") via the poll response so the activity log keeps moving while the background work runs.\n\n' +
'Requires Recap Relay 0.2.15 or newer (which serves the async job endpoint). Older relay versions return the old sync response shape; Recap detects this and surfaces a clear "old relay version" error rather than spinning.',
},
migrations: {
up: async ({ effects }) => {},
down: async ({ effects }) => {},
},
})