2026-08-05 - 2026-08-12

Overview

23 Active Pull Requests
42 Active Issues
Excluding merges, 1 author has pushed 10 commits to main and 24 commits to all branches. On main, 48 files have changed and there have been 4213 additions and 1214 deletions.

21 Pull requests merged by 1 user

Merged #116 Clarify web UI terminology, copy, and the entrypoint URL (closes #57) 2026-08-11 15:42:09 +02:00

Merged #121 Mask the target URL in delivery errors, SSRF logs and log page data (closes #118) 2026-08-11 15:11:58 +02:00

Merged #87 Rate-limit the public webhook receiver endpoint (closes #64) 2026-08-11 14:47:22 +02:00

Merged #91 Enforce the body size limit before CSRF parses the form (closes #90) 2026-08-11 14:37:39 +02:00

Merged #114 Mask target config on the source detail page (closes #113) 2026-08-11 14:37:10 +02:00

Merged #96 Allow retention_days of 0 to mean retain forever (closes #79) 2026-08-11 14:35:35 +02:00

Merged #105 Add inactivity-based session timeout (closes #66) 2026-08-10 16:12:40 +02:00

Merged #92 Fail loudly on set-but-unparseable env config values (closes #80) 2026-08-10 16:06:12 +02:00

Merged #104 Terminally fail retrying deliveries with a non-retry target type (closes #82) 2026-08-10 16:00:04 +02:00

Merged #95 Evict archive writers on deletion and sweep idle archives (closes #89) 2026-08-10 15:52:21 +02:00

Merged #100 Root background loops at context.Background() (closes #97) 2026-08-10 15:44:56 +02:00

Merged #83 Add admin password change flow (closes #65) 2026-08-07 23:23:05 +02:00

Merged #86 Update golangci-lint to v2.12.2 with canonical config 2026-08-07 23:18:49 +02:00

Merged #84 Implement the database archiving target (closes #43) 2026-08-07 22:50:08 +02:00

Merged #81 Refactor delivery targets to a Target interface (closes #77) 2026-08-07 17:07:49 +02:00

Merged #78 Add per-webhook event retention reaper (closes #63) 2026-08-07 16:15:14 +02:00

Merged #75 Add NoCache middleware for authenticated pages (closes #61) 2026-08-07 15:33:44 +02:00

Merged #73 Validate Slack target URLs at creation time (closes #68) 2026-08-07 14:03:56 +02:00

Merged #74 Keep the SSRF-safe transport in clientForConfig (closes #69) 2026-08-07 14:03:38 +02:00

Merged #71 Wrap /user/{username} in RequireAuth middleware (closes #60) 2026-08-07 14:00:17 +02:00

Merged #72 Raise HTTP WriteTimeout above the request middleware timeout (closes #62) 2026-08-07 13:58:29 +02:00

2 Pull requests proposed by 1 user

22 Issues closed from 2 users

Closed #57 Clean up and clarify the web UI 2026-08-11 15:42:09 +02:00

Closed #118 Slack webhook credential still leaks via delivery errors, SSRF logs, and the source_logs template data 2026-08-11 15:11:58 +02:00

Closed #64 Rate-limit the public webhook receiver endpoint 2026-08-11 14:47:22 +02:00

Closed #90 Enforce request body size limit before CSRF middleware parses the form 2026-08-11 14:37:39 +02:00

Closed #113 Source detail page renders raw target config, exposing the Slack webhook URL credential 2026-08-11 14:37:10 +02:00

Closed #79 RetentionDays cannot be set to 0 (retain forever) via the normal create path 2026-08-11 14:35:35 +02:00

Closed #110 TOP PRIORITY: consolidate all open PRs onto one next branch, one PR 2026-08-11 13:56:44 +02:00

Closed #66 Add inactivity-based session timeout 2026-08-10 16:12:40 +02:00

Closed #80 Config parsing should fail loudly on set-but-unparseable env values (envInt, etc.) 2026-08-10 16:06:12 +02:00

Closed #82 Recovery skips orphaned retrying deliveries whose target type changed to a non-retry type 2026-08-10 16:00:04 +02:00

Closed #89 Archive writer lifecycle: evict writers on webhook deletion and sweep idle archives 2026-08-10 15:52:21 +02:00

Closed #97 CRITICAL: delivery engine and retention reaper both die ~15s after startup (fx OnStart context) 2026-08-10 15:44:56 +02:00

Closed #65 Add an admin password change flow in the web UI 2026-08-07 23:23:05 +02:00

Closed #43 configure db target type for archiving 2026-08-07 22:50:08 +02:00

Closed #77 Refactor delivery targets to a Target interface 2026-08-07 17:07:49 +02:00

Closed #63 Enforce per-webhook event retention (RetentionDays reaper) 2026-08-07 16:15:14 +02:00

Closed #61 Set Cache-Control: no-store on authenticated pages 2026-08-07 15:33:45 +02:00

Closed #70 Implement the log delivery target 2026-08-07 15:26:46 +02:00

Closed #68 Validate Slack target URLs at creation time (SSRF parity with HTTP targets) 2026-08-07 14:03:56 +02:00

Closed #69 Keep the SSRF-safe Transport in clientForConfig when a per-target timeout is set 2026-08-07 14:03:38 +02:00

Closed #60 Wrap the /user/{username} route in RequireAuth middleware 2026-08-07 14:00:17 +02:00

Closed #62 Reconcile HTTP WriteTimeout with the request middleware timeout 2026-08-07 13:58:29 +02:00

40 Issues created by 1 user

Opened #60 Wrap the /user/{username} route in RequireAuth middleware 2026-08-07 13:10:51 +02:00

Opened #61 Set Cache-Control: no-store on authenticated pages 2026-08-07 13:10:55 +02:00

Opened #62 Reconcile HTTP WriteTimeout with the request middleware timeout 2026-08-07 13:10:59 +02:00

Opened #63 Enforce per-webhook event retention (RetentionDays reaper) 2026-08-07 13:11:03 +02:00

Opened #64 Rate-limit the public webhook receiver endpoint 2026-08-07 13:11:08 +02:00

Opened #65 Add an admin password change flow in the web UI 2026-08-07 13:11:13 +02:00

Opened #66 Add inactivity-based session timeout 2026-08-07 13:11:16 +02:00

Opened #67 Optional inbound webhook HMAC signature verification 2026-08-07 13:11:19 +02:00

Opened #68 Validate Slack target URLs at creation time (SSRF parity with HTTP targets) 2026-08-07 13:16:06 +02:00

Opened #69 Keep the SSRF-safe Transport in clientForConfig when a per-target timeout is set 2026-08-07 13:16:10 +02:00

Opened #70 Implement the log delivery target 2026-08-07 13:16:13 +02:00

Opened #77 Refactor delivery targets to a Target interface 2026-08-07 15:05:53 +02:00

Opened #79 RetentionDays cannot be set to 0 (retain forever) via the normal create path 2026-08-07 15:26:51 +02:00

Opened #80 Config parsing should fail loudly on set-but-unparseable env values (envInt, etc.) 2026-08-07 15:29:22 +02:00

Opened #82 Recovery skips orphaned retrying deliveries whose target type changed to a non-retry type 2026-08-07 17:12:07 +02:00

Opened #85 Design: should delivery targets own their recovery/sweep loop, not just backoff? 2026-08-07 18:07:15 +02:00

Opened #88 Gate forwarded-header trust behind trusted-proxy config in rate limiters 2026-08-07 19:11:38 +02:00

Opened #89 Archive writer lifecycle: evict writers on webhook deletion and sweep idle archives 2026-08-07 19:11:43 +02:00

Opened #90 Enforce request body size limit before CSRF middleware parses the form 2026-08-07 19:12:08 +02:00

Opened #93 Follow-ups from the PR #91 review: body-limit docs and route-ordering test coverage 2026-08-09 04:03:32 +02:00

Opened #94 Follow-ups from the PR #92 review: config test hygiene and env docs 2026-08-09 04:08:12 +02:00

Opened #97 CRITICAL: delivery engine and retention reaper both die ~15s after startup (fx OnStart context) 2026-08-09 04:43:26 +02:00

Opened #98 Deprecated gomodguard linter in the org-standard .golangci.yml (needs an upstream decision) 2026-08-09 05:01:01 +02:00

Opened #99 Follow-ups from the PR #96 re-review: retention bound docs and untested normalisation 2026-08-09 05:11:44 +02:00

Opened #101 Archive sweep repeats open/prune/close once per database target instead of once per webhook 2026-08-09 07:26:46 +02:00

Opened #102 Shutdown hooks ignore their context and wg.Wait() unbounded 2026-08-09 07:27:39 +02:00

Opened #103 Pin the pre-reopen close in archiveWriter.sweepExpired (unprotected connection-leak guard) 2026-08-09 07:44:18 +02:00

Opened #106 script/lint uses the host golangci-lint and a shared cache, so lint results can be wrong in either direction 2026-08-09 08:09:02 +02:00

Opened #107 Two remaining delivery terminal-state gaps: opaque failure and deletion-orphaned retries 2026-08-09 08:13:05 +02:00

Opened #108 Session codec max-age still 30 days: bring securecookie codecs in line with the 7-day cap 2026-08-09 08:19:57 +02:00

Opened #109 Run all linting in Docker via Dockerfile.lint + script/lint 2026-08-10 13:14:12 +02:00

Opened #110 TOP PRIORITY: consolidate all open PRs onto one next branch, one PR 2026-08-10 14:30:12 +02:00

Opened #112 Decision: TODO.md Completed Steps guarantees a merge conflict on every unit landing on next 2026-08-10 15:46:14 +02:00

Opened #113 Source detail page renders raw target config, exposing the Slack webhook URL credential 2026-08-11 13:56:16 +02:00

Opened #115 HTTP target destination URL is rendered in full and can itself be a bearer credential 2026-08-11 14:28:51 +02:00

Opened #117 Page {{define "title"}} blocks never render; every browser tab reads "Webhooker" 2026-08-11 14:32:36 +02:00

Opened #118 Slack webhook credential still leaks via delivery errors, SSRF logs, and the source_logs template data 2026-08-11 14:37:28 +02:00

Opened #119 CI can report success without running lint or tests, because script/cibuild replays a cached image 2026-08-11 14:38:28 +02:00

Opened #120 No JS linting, so the styleguide REPO_POLICIES binds us to is unenforced 2026-08-11 14:45:30 +02:00

Opened #123 renderTemplate streams to the ResponseWriter, so a mid-render template error ships a partial page 2026-08-11 15:20:53 +02:00

2 Unresolved Conversations

Open #33 1.0/mvp 2026-08-09 07:46:12 +02:00

Open #56 Move schema_migrations table creation into 000.sql with INTEGER version column 2026-08-07 18:07:44 +02:00