# Tasks ## 1. Make object URLs origin-relative - [x] 1.1 In `backend/internal/storage/signer.go`, return a path-only URL (`/api/objects/?e&s`) and drop the `baseURL` field/parameter from `Signer`/`NewSigner`; verify with `go test ./internal/storage/...`. - [x] 1.2 In `backend/internal/storage/storage.go`, stop passing `cfg.Server.BaseURL` to `NewSigner`; verify with `go build ./...`. ## 2. Remove the base-URL configuration - [x] 2.1 Remove `Server.BaseURL` from `backend/internal/config/config.go` and delete the `APP_BASE_URL` line from `.env.example` and the README table; verify `go build ./...` and that no `APP_BASE_URL`/`Server.BaseURL` references remain. - [x] 2.2 Update every other `storage.NewSigner(...)` call site (tests/helpers in `internal/storage`, `internal/photos`, `internal/app`, `internal/e2e`) to drop the base argument; verify with `make test`. ## 3. Integration verification - [x] 3.1 Run `make test` (backend) and `npm run build` (frontend); verify both pass and that an issued object URL has no scheme or host. ## Workflow follow-up - Run `/opsx-apply` to implement this change. - Archive the change after review and verification (sync the delta spec into `storage-backends`).