OD_PROJECT_STORAGE=s3 backend is implemented but never wired into project routes

Author: zenprocessCreated Aug 18, 2026Updated Sep 17, 2026
Labelsbughelp wanted

Summary

apps/daemon/src/storage/project-storage.ts implements a complete S3-compatible ProjectStorage backend (SigV4 signing, MinIO-compatible, OD_PROJECT_STORAGE=s3

  • OD_S3_* knobs), but nothing ever calls resolveProjectStorage():
  • resolveProjectStorage has zero callers outside the module itself (non-test grep across the repo: only its own definition).
  • OD_PROJECT_STORAGE appears only inside project-storage.ts.
  • Project routes still read/write through the legacy local-fs helpers in apps/daemon/src/projects.ts.

So setting OD_PROJECT_STORAGE=s3 today has no effect — the opt-in flag described in the module docs isn't wired into the daemon's project routes.

Why this matters for us

We self-host the daemon and want projects (all generated artifacts) to live in MinIO instead of a container volume. Right now we work around it with an external mc mirror sidecar, but the native adapter (when wired) would remove the sync latency and the split-brain risk.

Ask

  1. Confirm whether wiring OD_PROJECT_STORAGE into the project routes is planned (the header comment says "opt-in flag away" — the flag just isn't read anywhere).
  2. If there's an existing plan/tracking issue, happy to test the first build that wires it against our MinIO deployment.