{"slug":"dw-boardroom-governance","total":7,"limit":100,"offset":0,"since":null,"commits":[{"hash":"8861196","date":"2026-06-21 18:53:05 -0700","author":"Steve Abrams","subject":"auto-save: 2026-06-21T18:53:00 (2 files) — ecosystem.config.cjs ecosystem.config.cjs.rotbak","body":""},{"hash":"3c19ba6","date":"2026-05-30 10:01:47 -0700","author":"Steve","subject":"security: strip hardcoded dw_admin DSN password -> env-first (.cjs straggler). No rotation/deploy.","body":""},{"hash":"83b5830","date":"2026-05-18 20:19:26 -0700","author":"Steve Abrams","subject":"Add error handling to frontend API mutation handlers to prevent unhandled promise rejections","body":""},{"hash":"44b2fa8","date":"2026-05-18 20:17:51 -0700","author":"Steve Abrams","subject":"Fix useWebSocket: prevent zombie reconnect timer firing after component unmount","body":""},{"hash":"79f893e","date":"2026-05-18 20:17:15 -0700","author":"Steve Abrams","subject":"Harden basic-auth middleware: timing-safe compare, malformed-header guard, fail-closed on unset creds","body":""},{"hash":"a6dac82","date":"2026-05-18 20:16:44 -0700","author":"Steve Abrams","subject":"Fix meeting phase auto-advance to use per-phase durations instead of a fixed 120s","body":""},{"hash":"1e62bab","date":"2026-05-06 10:25:14 -0700","author":"Steve Abrams","subject":"initial scaffold (gitify-all 2026-05-06)","body":""}]}