Fase 11 (produksjon) validert — LiveKit, pruning og podcast-RSS:
- rss.rs + synops-rss: Les filstørrelse fra både 'size_bytes' (intentions)
og 'size' (publishing) med COALESCE — forhindrer manglende enclosure-
størrelse i podcast-feeds avhengig av opplastingsmetode.
- pruning.rs + synops-prune: Samme COALESCE-fix for konsistent size-tracking.
- rss.rs + synops-rss: Fiks truncate_description til å bruke char-indeksering
istedenfor byte-indeksering — forhindrer panic på norsk tekst (å, ø, æ).
LiveKit kjører i Docker (healthy), token-generering via join_communication,
pruning-loop aktiv, RSS-endepunkt returnerer korrekt 404 for ukjent slug.
Alle 61 maskinrommet-tester bestått.
Implementerer automatisk opprydding av CAS-filer basert på dokumentert
spec i docs/retninger/maskinrommet.md:
- TTL per modalitet: lyd 30d, bilde 30d, video 14d, tekst aldri
- Signaler som forlenger levetid: publishing-edge, siste tilgang
(last_accessed_at), utranskribert lyd beholdes
- Tre-trinns disk-nødventil:
- >85%: slett generert innhold (TTS osv, kan regenereres)
- >90%: aggressiv pruning med kraftig redusert TTL
- >95%: kritisk — alt uten publishing-edge slettes
- Periodisk bakgrunnsloop: hvert 6. time, oftere ved høy disk
- Tilgangslogging: serving oppdaterer last_accessed_at (fire-and-forget)
- Pruning-hendelser logges til resource_usage_log
Ny modul: maskinrommet/src/pruning.rs
Ny migrasjon: 010_pruning.sql (last_accessed_at kolonne + indeks)
CasStore utvidet med delete(), disk_usage_bytes(), disk_usage_percent()
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>