Spaces:
Sleeping
Sleeping
Commit History
-
Add per-container memory limits and OOM-kill priority
Contain a runaway app to its own container instead of letting a global OOM event pick any process on the droplet (see 2026-08-14 incident: archiveai-tts got OOM-killed with zero swap configured, driving load average to ~40 while the whole box stalled). Content apps get --memory ceilings sized to real observed usage plus 2-4x headroom, and a positive --oom-score-adj so they're sacrificed before Orchestrator, which is biased negative to stay up as the last line of visibility.f1056c7
-
Stagger nightly deploy cron to :20 UTC, avoid prune-lock collisions
All four DO apps' deploy-do.yml ran docker image prune -af on the same 00:00 UTC schedule, sharing one droplet. On 2026-08-13 two prunes overlapped and the losing workflow died with "a prune operation is already running" before it ever reached the container restart step. Each app now runs 10 minutes apart (:00/:10/:20/:30).88f8f15
-
Prune old images before pulling on DO droplet deploy
Nightly deploys never removed old images, filling the shared droplet's disk and breaking last night's deploy (no space left on device). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>1a3d259
-
Add DO deploy path with local-file project storage backend
project_store.py now supports two backends, auto-selected by environment: local files on a mounted volume (TTS_DATA_DIR set, e.g. DO) or the original HF dataset (HF_TOKEN set, no TTS_DATA_DIR, e.g. the HF Space). Necessary because both deploy targets build from the same main branch — a local-only rewrite would have broken persistence on the still-live HF Space on its next deploy. Local files rather than a database, since most of what's stored here is generated audio, which fits a filesystem more naturally than DB rows. Function signatures are unchanged, so app.py needs no changes. glossary.py is untouched — its existing /data-if-present cache plus best-effort HF sync already does the right thing once a volume is mounted at /data, and the shared glossary dataset is intentionally kept shared between HF and DO (see deploy-do.yml). deploy-do.yml is additive, doesn't touch deploy.yml, and deploys to a droplet shared with TranslationUI: same Caddy instance and oauth2-proxy auth gate (cooki…07e532f
-
Bump actions/checkout and actions/setup-python to v7
Clears the Node.js 20 deprecation warning GitHub Actions attaches to every run (both actions now ship Node 24-native releases). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>d51261b
-
Add project nickname + explicit Save button; fix shallow-push deploy failure
Turn Review now mirrors TranslationUI's project management: a Project Name field (renames + autosaves on submit) and a Save button (flushes the current page's text edits and autosaves) alongside the existing autosave-on-blur/generate behavior. Also fix the deploy workflow: actions/checkout@v4 defaults to a shallow clone, which Hugging Face's git server rejects when pushed ("shallow update not allowed") — add fetch-depth: 0. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>93c910b -
Add nightly automated deploy, skipped when main is unchanged
deploy.yml now also triggers on a 00:00 UTC schedule. A check-for-changes job runs first on the scheduled trigger only (manual runs always deploy) and compares HEAD against hf-tts/main directly — if they're the same commit, the deploy job is skipped, so a quiet night doesn't rebuild the Space. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>2e993b5 -
ci: install ffmpeg before running tests
pydub-backed tests (turn audio synthesis, pause insertion, clip splicing) need ffmpeg on PATH; the runner never installed it, so ~40 unrelated tests failed on every CI run regardless of what changed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>c81718a
-
Add GitHub Actions CI + HF deploy workflows
CI runs unit tests on every PR/push. Production deploy moves to a manual workflow_dispatch that pushes straight to the HF Space instead of a local `git push hf-tts`. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>556c1c6