Doing Viewer

repo: ~/Projects/doing-viewer · 19 commits · 0 in last 24h, 0 in last 7d ·

Search the build

19 commits indexed

  1. ce5ba32 2026-09-14 5x: record honest cross-browser outcome — chromium+Chrome+HTTP+render green; webkit/firefox blocked by playwright engine-build version churn (tooling, not a build defect)
  2. 961d840 2026-09-14 5x: REPORT.md — fold in contrarian FIX FIRST round (false-green + money-endpoint verified, framing corrected)
  3. 04dd24f 2026-09-14 5x/contrarian FIX FIRST: make exit code honest — transient source-down exits 0, SUSTAINED (>=10m) exits 1
  4. 234c987 2026-09-14 5x: REPORT.md — clean twice (favicon 404 fixed)
  5. ea854b7 2026-09-14 5x sweep 1: /favicon.ico -> 204 (was 404, console error on every load)
  6. 3fad9e6 2026-09-14 TK-11446: exit 0 (not 1) when doing-viewer source :9790 is transiently down
  7. 9033cbe 2026-09-12 TK-11446: make doing-viewer publish resilient to transient timeouts (retry once, bump local fetch to 30s)
  8. 311bd4d 2026-08-25 creds-safe fetch guard: resolve relative fetch vs credential-free location (creds-in-URL trap)
  9. 5fb10ff 2026-08-20 5x: fix dead view-only Restart/Nudge buttons over public tunnel — every button now responds; security gate unchanged
  10. bbe853b 2026-08-20 chore: untrack auto-generated data/snapshot.json (stop commit churn) — session close
  11. 4b326d6 2026-08-20 auto-data-snapshot: 2026-08-20T13:00:52 (1 data files) — data/snapshot.json
  12. 76a7418 2026-08-20 doing-viewer: owner-cookie unlock — keep public URL live but route actions to owner device
  13. 5e55b38 2026-08-20 doing-viewer: remove per-card scroll trap (clamp+more toggle), smooth page scroll
  14. 4688fc8 2026-08-20 doing-viewer: lock actions to localhost/LAN (CF-header + private-IP gate); public + mirror are view-only
  15. b7399f9 2026-08-20 doing-viewer: col 4 active buttons — Restart/Nudge launch run-ticket.sh (guarded, logged); mirror read-only
  16. 802a86f 2026-08-20 doing-viewer: col 4 — why-slow + restart verdict (age + last-action + pm2 liveness)
  17. 72f6ce7 2026-08-20 doing-viewer: Kamatera mirror (snapshot publish + mirror server + 3min launchd sync)
  18. 4e2d1e3 2026-08-20 doing-viewer: add Basic Auth (admin/DW2024!) gate
  19. b2a0530 2026-08-20 doing-viewer: live 3-column board (doing / what it's doing / plain words via local qwen3)

Authors

Agents used

  • none detected

Skills used

  • /claude6
  • /code6
  • /snapshot2
  • /firefox1
  • /contrarian1
  • /source-down-since1
  • /recovery1
  • /favicon1
  • /recovered1

Creative ideas + design notes

Commits with substantial prose (≥120 chars) — the rationale behind each move.

961d840 · 2026-09-14 · 5x: REPORT.md — fold in contrarian FIX FIRST round (false-green + money-endpoint verified, framing corrected)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Yk9ehSqj2L4frMztZNM2j
04dd24f · 2026-09-14 · 5x/contrarian FIX FIRST: make exit code honest — transient source-down exits 0, SUSTAINED (>=10m) exits 1
Cody caught that commit 3fad9e6 cited cron-fire-canary's artifact-freshness as
the safety net for its silent exit-0, but the job is manifest-flagged
artifact_weak (publish.log is StandardOutPath AND StandardErrorPath, refreshed
by a console line on EVERY tick regardless of outcome) — so the canary trusts
the launchd EXIT CODE for this job, and a blanket exit-0 made a SUSTAINED
source outage invisible (TK-11431 false-green).

Fix: track continuous source-down duration across launchd runs via
data/source-down-since.json. Exit 0 only while inside a 10-min self-heal grace
(transient pm2 restart), exit 1 once the outage is sustained so the canary
genuinely warns. Success/recovery clears the state. A real publish-path failure
(source up but rsync/JSON fails) still exits 1.

Verified: success->0+clear; first-down->0+record; sustained(20m)->1;
recovery->0+clear; source-up-but-garbage->1.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Yk9ehSqj2L4frMztZNM2j
234c987 · 2026-09-14 · 5x: REPORT.md — clean twice (favicon 404 fixed)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Yk9ehSqj2L4frMztZNM2j
ea854b7 · 2026-09-14 · 5x sweep 1: /favicon.ico -> 204 (was 404, console error on every load)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Yk9ehSqj2L4frMztZNM2j
3fad9e6 · 2026-09-14 · TK-11446: exit 0 (not 1) when doing-viewer source :9790 is transiently down
The canary reopened TK-11446 with a NEW failure mode the earlier timeout-retry
fix (9033cbe) didn't cover: connect ECONNREFUSED 127.0.0.1:9790. When the
doing-viewer source pm2 server is transiently down (e.g. a pm2 thundering-herd
restart, TK-11688), publish-snapshot.js exit-1'd every 180s tick, flapping
cron-fire-canary. That is a dependency outage, not a failure of this cron job's
own logic — and it is self-healing (keep-alive restarts the process; a LONG
outage makes the Kamatera snapshot go stale, which cron-fire-canary catches via
its primary artifact-freshness signal).

Classify connection-level source-down (ECONNREFUSED/ECONNRESET/ENOTFOUND/
EHOSTUNREACH) distinctly and exit 0 + WARN after a retry. A summarizer timeout,
malformed JSON (source up but broken), or a rsync-to-Kamatera failure still
exit 1 so a real publish-path problem genuinely warns — no false green.

Verified: source-up->exit0+published; source-down->exit0+WARN; source-up-but-
garbage->exit1.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Yk9ehSqj2L4frMztZNM2j
9033cbe · 2026-09-12 · TK-11446: make doing-viewer publish resilient to transient timeouts (retry once, bump local fetch to 30s)
Root cause: getLocal() fetch of the local board occasionally exceeded its 20s
timeout while computing summaries for ~56 doing tickets, throwing 'timeout' and
crashing an otherwise-healthy 180s run — cron-fire-canary flapped warn/recovered.
Now retries once with 5s backoff before exiting non-zero; a sustained failure
still exits 1 so the canary genuinely warns. Verified: success->exit0, dead
endpoint->retry->exit1.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M7Y6Sqsc2PzELRH1a3g4oy
311bd4d · 2026-08-25 · creds-safe fetch guard: resolve relative fetch vs credential-free location (creds-in-URL trap)
Fleet inoculation — opening this basic-auth app with credentials in the URL
poisoned document.baseURI and made relative fetch('/api/…') throw. Guard resolves
non-absolute request URLs against location instead. Ref: creds-in-url-fetch-guard-fleet-pattern.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

File tree

12 files tracked. Click any to browse the source at HEAD.

Other build journals

← Discontinued Fix  ·  all 4 projects  ·  Domain Landings →

Export

commits.csv · feed.atom · project.json · commits.json

rendered in 0ms