{"slug":"purelymail-fleet-viewer","total":16,"limit":100,"offset":0,"since":null,"commits":[{"hash":"f3cd950","date":"2026-05-31 16:56:05 -0700","author":"SteveStudio2","subject":"Link favicon.svg in head (use branded SVG, not .ico fallback)","body":""},{"hash":"4b8c997","date":"2026-05-31 16:32:37 -0700","author":"SteveStudio2","subject":"Add per-site favicon (kills /favicon.ico 404)","body":""},{"hash":"21a690a","date":"2026-05-19 18:33:22 -0700","author":"SteveStudio2","subject":"viewer: add noreferrer to every target=_blank anchor","body":""},{"hash":"336eef0","date":"2026-05-19 18:33:07 -0700","author":"SteveStudio2","subject":"server: 404 bak/pre/orig/rej/swp/tilde paths before static lookup","body":""},{"hash":"e42a811","date":"2026-05-19 18:32:10 -0700","author":"SteveStudio2","subject":"gitignore: broaden patterns to cover bak/pre/swp/orig/rej detritus","body":""},{"hash":"2aafd6e","date":"2026-05-18 17:28:30 -0700","author":"SteveStudio2","subject":"viewer: add fleet-cover hero with 1-up/4-up rotate toggle","body":""},{"hash":"d0d1ab6","date":"2026-05-18 16:54:29 -0700","author":"SteveStudio2","subject":"viewer: server-rendered screenshots for every domain + Site reachability column","body":"~half the fleet blocks iframe embedding (X-Frame-Options/CSP). Added a\nheadless-Chromium screenshot service (/api/shot, disk-cached 24h, conc 3)\nso grid + table previews show every site reliably. New Site column shows\nreachable/no-embed/unreachable per domain via /api/embedcheck."},{"hash":"7696460","date":"2026-05-18 16:41:42 -0700","author":"SteveStudio2","subject":"viewer: grid view + density slider + collapsible per-domain iframe","body":""},{"hash":"cdf96c3","date":"2026-05-18 16:37:10 -0700","author":"SteveStudio2","subject":"receive+send test complete — 202/203 receive, 203/203 send","body":""},{"hash":"adfb025","date":"2026-05-18 16:36:41 -0700","author":"SteveStudio2","subject":"viewer: each domain is a clickable hyperlink to its site","body":""},{"hash":"3e70a7c","date":"2026-05-18 16:15:05 -0700","author":"SteveStudio2","subject":"viewer renders sendTest stage card","body":""},{"hash":"5acda4b","date":"2026-05-18 16:14:31 -0700","author":"SteveStudio2","subject":"add 206-domain SEND test — Purelymail cross-domain send-as runner","body":""},{"hash":"880c1c8","date":"2026-05-18 16:10:03 -0700","author":"SteveStudio2","subject":"receive test v2 — send from agentabrams to dodge Gmail self-dedup","body":""},{"hash":"20fb341","date":"2026-05-18 15:36:16 -0700","author":"SteveStudio2","subject":"add 211-domain receive-test runner + receive-test stage status","body":""},{"hash":"c7b4ed0","date":"2026-05-18 15:33:25 -0700","author":"SteveStudio2","subject":"bind viewer to 0.0.0.0 for tailnet access","body":""},{"hash":"8e1cb84","date":"2026-05-18 15:30:53 -0700","author":"SteveStudio2","subject":"purelymail fleet remediation live viewer on :9779","body":""}]}