{"slug":"ticket-action-viewer","total":19,"limit":100,"offset":0,"since":null,"commits":[{"hash":"423b4d4","date":"2026-09-15 18:50:46 -0700","author":"Steve Abrams","subject":"security: add rel=noopener noreferrer to target=_blank links (yoloforever cycle 3)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01UxvvaJ7p6VRZ4RzKDaBXqK"},{"hash":"8868f25","date":"2026-08-25 10:49:02 -0700","author":"Steve","subject":"creds-safe fetch guard: resolve relative fetch vs credential-free location (creds-in-URL trap)","body":"Fleet inoculation — opening this basic-auth app with credentials in the URL\npoisoned document.baseURI and made relative fetch('/api/…') throw. Guard resolves\nnon-absolute request URLs against location instead. Ref: creds-in-url-fetch-guard-fleet-pattern.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"d42ed24","date":"2026-08-20 08:14:35 -0700","author":"Steve Abrams","subject":"nav-agent: sync v1.3 (host left-sidebar collapse on load)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"441bd72","date":"2026-08-19 14:31:03 -0700","author":"Steve","subject":"nav-agent: List data full-width tight columns (grid) — layout fix","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"b5c4aba","date":"2026-08-19 14:05:24 -0700","author":"Steve","subject":"Refresh nav-agent to v1.2 (adds kv-list compact List view, default-off)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"917906c","date":"2026-08-13 13:24:25 -0700","author":"Steve Abrams","subject":"Move default PORT 9971->10075 (9971 collided with gmc-viewer) so the local operator console can run without a port clash","body":""},{"hash":"dc11065","date":"2026-08-13 11:55:21 -0700","author":"Steve Abrams","subject":"Serve public/ static assets (nav-agent js/css) — raw http had no static route, so /nav-agent/* 404'd; add traversal-guarded handler before the 404","body":""},{"hash":"76fc7f9","date":"2026-08-13 09:27:28 -0700","author":"Steve Abrams","subject":"nav-agent: universal grid-controls drop-in on internal dashboard/command-center pages (STRONG-only)","body":""},{"hash":"c1736a2","date":"2026-08-11 12:38:07 -0700","author":"steve","subject":"Viewer: make all data columns sortable (clickable headers + sort select, numeric ticket/priority, persisted) + Table⇄List view toggle","body":""},{"hash":"8372673","date":"2026-08-10 10:15:54 -0700","author":"Steve Abrams","subject":"chore: lint (fix act() /^TK-\\\\d+/ regex bug) + refactor (LA_TZ/derive/STALE_MS consts) (session close)","body":""},{"hash":"144ca64","date":"2026-08-10 08:23:19 -0700","author":"Steve Abrams","subject":"Viewer: flag doing tickets running >1 day (red timer + ⚠ >1d) so stale long-runners self-surface for cleanup","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"06752db","date":"2026-08-10 08:18:26 -0700","author":"Steve Abrams","subject":"Viewer: start stamp shows date + time (was time-only); full ISO in title=","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"a5da5f6","date":"2026-08-10 08:10:49 -0700","author":"Steve Abrams","subject":"Ticket Action Viewer: RUN NOW flips card to 'doing now' + live start-time timer","body":"- runNow() reloads the row after launch so status flips blocked→doing now\n- status cell shows a live ⏱ timer (ticks every 1s) + '▶ started <time>'\n- start time sourced by priority: explicit click-stamp (runstate.json) →\n  true doing-entry from the shared event log → now; backfill never frozen\n- server: stamp start on RUN NOW/Take, prune on leave-doing, expose startedAt\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"e52db3d","date":"2026-08-10 08:03:53 -0700","author":"Steve Abrams","subject":"5x: report — 2 consecutive clean sweeps (fixed favicon-404 console error, bbbe42d)","body":""},{"hash":"bbbe42d","date":"2026-08-10 08:01:13 -0700","author":"Steve Abrams","subject":"5x sweep 1: serve 204 for /favicon.ico (kills the favicon-404 console error)","body":""},{"hash":"c465d6a","date":"2026-08-10 07:58:42 -0700","author":"Steve Abrams","subject":"viewer: RUN NOW reserves+timestamps the ticket at click, then launches a graph-engineering a2a swarm (N subagents + contrarian gate) in a new iTerm2 window","body":""},{"hash":"dccd5ab","date":"2026-08-10 07:56:29 -0700","author":"Steve Abrams","subject":"viewer: add RUN NOW — opens a new iTerm2 window with a Claude session that takes + drives the ticket (gates intact)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"292eb42","date":"2026-08-10 07:48:10 -0700","author":"Steve Abrams","subject":"viewer: Take now stamps start date+time into the ticket log (TK-10374)","body":""},{"hash":"bec41b1","date":"2026-08-10 07:43:46 -0700","author":"Steve Abrams","subject":"Ticket Action Viewer — ranked board with next-steps, gated-needs, and per-ticket action keys (TK-10374)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\n"}]}