[object Object]

← back to Ticket Action Viewer

Viewer: start stamp shows date + time (was time-only); full ISO in title=

06752dbbd03e27f5ea33c0977b8a62ddc5d81c00 · 2026-08-10 08:18:26 -0700 · Steve Abrams

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

Files touched

Diff

commit 06752dbbd03e27f5ea33c0977b8a62ddc5d81c00
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Mon Aug 10 08:18:26 2026 -0700

    Viewer: start stamp shows date + time (was time-only); full ISO in title=
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
 public/index.html | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/public/index.html b/public/index.html
index dbc065e..052f36c 100644
--- a/public/index.html
+++ b/public/index.html
@@ -80,7 +80,7 @@ function render(){
     <td class="rank">${i+1}</td>
     <td><div class="tid">${t.shortId}</div><div class="ttl">${esc(t.title)}</div></td>
     <td class="proj">${esc(t.project)}</td>
-    <td><span class="st ${t.status}">${t.status==='doing'?'doing now':t.status}</span>${t.status==='doing'&&t.startedAt?`<div class="timer" data-start="${esc(t.startedAt)}"><span class="tdot"></span><span class="tval">⏱ …</span></div><div class="startedat">▶ started ${fmtStart(t.startedAt)}</div>`:''}</td>
+    <td><span class="st ${t.status}">${t.status==='doing'?'doing now':t.status}</span>${t.status==='doing'&&t.startedAt?`<div class="timer" data-start="${esc(t.startedAt)}"><span class="tdot"></span><span class="tval">⏱ …</span></div><div class="startedat" title="${esc(t.startedAt)}">▶ started ${fmtStart(t.startedAt)}</div>`:''}</td>
     <td class="owner">${esc(t.owner)}</td>
     <td class="next">${esc(t.nextStep)}${t.note?`<div class="proj" style="margin-top:4px">↳ ${esc(t.note)}</div>`:''}</td>
     <td><div class="needs ${t.gated?'gated':''}">${t.gated?'🔒 ':''}${esc(t.needs||'—')}</div></td>
@@ -100,7 +100,7 @@ function fmtElapsed(ms){if(ms<0)ms=0;const s=Math.floor(ms/1000),d=Math.floor(s/
   if(d)return d+'d '+p(h)+':'+p(m);            // ≥1 day: 10d 04:07
   if(h)return h+':'+p(m)+':'+p(ss);            // ≥1 hour: 3:04:07
   return m+':'+p(ss);}                          // <1 hour: 4:07
-function fmtStart(iso){try{return new Date(iso).toLocaleTimeString([],{hour:'numeric',minute:'2-digit'});}catch(e){return '';}}
+function fmtStart(iso){try{return new Date(iso).toLocaleString([],{month:'short',day:'numeric',hour:'numeric',minute:'2-digit'});}catch(e){return '';}}
 function tickTimers(){const now=Date.now();document.querySelectorAll('.timer[data-start]').forEach(elm=>{const st=Date.parse(elm.dataset.start);const v=elm.querySelector('.tval');if(v)v.textContent='⏱ '+fmtElapsed(now-st);});}
 setInterval(tickTimers,1000);
 async function detail(id,sid){el('mtitle').textContent=sid;el('mbody').textContent='loading…';el('modal').style.display='flex';

← a5da5f6 Ticket Action Viewer: RUN NOW flips card to 'doing now' + li  ·  back to Ticket Action Viewer  ·  Viewer: flag doing tickets running >1 day (red timer + ⚠ >1d 144ca64 →