The SAM framework currently lacks automated artifact retention or cleanup for artifacts stored via FilesystemArtifactService, S3ArtifactService, or AzureArtifactService, leading to indefinite persistence without TTL or expiry.
### Feature Description ## The Issue The SAM framework has no automated artifact retention or cleanup mechanism. Artifacts stored via `FilesystemArtifactService`, `S3ArtifactService`, or `AzureArtifactService` persist indefinitely — there is no TTL, no expiry, and no cleanup on session end or gateway shutdown. The `DataRetentionService` handles cleanup for tasks (`task_retention_days`), feedback (`feedback_retention_days`), SSE events (`sse_event_retention_days`), and conversion cache (`conversion_cache_retention_hours`) — but artifacts are not covered. The only ways to remove artifacts today are explicit manual operations: - **REST API** — `DELETE /{session_id}/{filename}` endpoint in the HTTP/SSE gateway - **LLM builtin tool** — `delete_artifact` tool available to agents - **Project service** — `delete_artifact_from_project` for project-scoped artifacts None of these are automated or scheduled. ## How Artifacts Are Scoped The storage path depends on the `artifact_scope` confi