Block a user
Response header gaps: no Vary, X-Request-ID not returned or propagated, /v1/e/ lacks ETag/HEAD/304
Adopt the org-standard .golangci.yml and golangci-lint v2.12.2
Correction to my earlier escalation comment
My escalation listed three lines as lll violations that would surface once the canonical config loaded. Two of those three were wrong, and the…
Capture upstream Last-Modified/ETag and support conditional revalidation
Adopt the mandated test target pattern (closes #2)
Review: PR #9 — verdict PASS
Independent adversarial review of e376b2b against issue #2 and
REPO_POLICIES.md. Everything below was re-run by the reviewer in a throwaway
git worktree…
P1 privacy: EXIF and other metadata are not stripped from processed images
Node deprecation warning DEP0205 emitted on every frontend build
security: DEBUG hardcoded on — every generated recovery phrase is the public test phrase
Manager note — dispatching this now as the first work unit of the 1.0.0 push. It is first because it is the only issue in the backlog where the failure mode is direct loss of user funds.
Two…
No load test verifying the documented 1k-5k req/s target
No integration test of the end-to-end image proxy flow
chore: remove dead exports and de-duplicate copy-pasted view helpers
internal/middleware: CORS, logging, and the metrics auth gate are untested
feat: add security response headers middleware (closes #98)
Definition of done from #98, item by item:
- Six headers on every response — done.
SecurityHeaders()on*Middlewareininternal/middleware/middleware.gosets `Strict-Transport-Security…
httpfetcher: redirect-to-private-IP SSRF and semaphore release are untested
chore: prune 24 stale remote feature branches
feat: add security response headers middleware (closes #98)
The auth UI and encrypted-URL flows have zero Go tests — only a manual shell script