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>
Nytt endepunkt streamer CAS-filer fra disk med riktig Content-Type
(oppslått fra media-nodens metadata i PG) og Cache-Control: immutable.
Hash-validering (64 hex-tegn) hindrer path traversal.
Tokio-streaming for effektiv håndtering av store filer.
Docker-compose oppdatert med CAS-volum for maskinrommet-containeren.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>