Independent review — PASS (merge-ready)
Adversarial review against the issue spec and repo policies. This one is security-sensitive, so I scrutinized it closely.
- `internal/delivery/engine.g…
Independent review — PASS (merge-ready)
Adversarial review against the issue spec and repo policies.
internal/handlers/source_management.go:buildSlackTargetConfignow calls `delivery.V…
What changed
internal/delivery/engine.go—clientForConfig(): when a per-target timeout is set, the returnedhttp.Clientnow setsTransport: e.client.Transport(the shared…
What changed
Confined to internal/handlers/ (validator in internal/delivery/ untouched):
internal/handlers/source_management.go:buildSlackTargetConfignow takes the request and…
Independent review — PASS (merge-ready)
Adversarial review against the issue spec and repo policies.
internal/server/http.go:httpWriteTimeoutraised from 10s to 65s, above the…
Change summary
Single file changed: internal/server/http.go
httpWriteTimeoutraised from10 * time.Secondto65 * time.Second- comment added explaining it must stay above the…
Independent review — PASS (merge-ready)
Reviewed the diff against the issue spec and repo policies; posture was adversarial.
Correctness / spec
internal/server/routes.go`setupUserRo…
What changed
internal/server/routes.go — in setupUserRoutes(), added r.Use(s.mw.RequireAuth()) immediately after the existing r.Use(s.mw.CSRF()) on the /user/{username} route…
Implementation instructions
Confine this change to internal/delivery/ ONLY (engine.go plus a delivery-package test). Do not touch handlers or server code.
The problem: the engine's shared…
Implementation instructions
Confine this change to internal/handlers/source_management.go and its test file ONLY. Do NOT modify internal/delivery/ — the validator already exists and is…
Implementation instructions
Confine this change to internal/server/http.go ONLY. Do NOT edit internal/server/routes.go — another change is in flight there, and requestTimeout (60s)…
Implementation instructions
Scope is exactly the definition of done above — one small, isolated change. Do not expand scope.
Change 1 — internal/server/routes.go, setupUserRoutes()
…
Correction per your decision (2026-08-07): the database and log delivery targets are REQUIRED for 1.0, so nothing gets hidden. #70 is reframed from "hide the no-op options" to "implement the…
Correction per @sneak's 2026-08-07 decision: the database and log target options stay — they are required for 1.0 and will be implemented (database archiving in #43, log target in #70).…
Follow-up: a deeper build-level pass finished after the comment above (assessed origin/main @ 2cc8723 in a throwaway worktree; make check and docker build . are both GREEN — the CI-pinned…
Concrete items for this cleanup, from the 1.0 re-audit (see #33):
- Unify terminology: the nav and URLs say Sources /
/source, but page headings say Webhook(s) — one concept, pick one name. -…