// Session view — turn list aside + linear transcript const SessionScreen = () => { const { go, route } = useRouter(); const session = SESSIONS.find(s => s.id === (route.id || 'a1')) || SESSIONS[0]; const turnList = [ [1, 'U', 'lockfile design for the …', 32], [2, 'A', 'Both, but for diff reasons …', 980], [3, '⚙', 'Read("build.zig")', 0], [4, '⚙', '→ 14.2 KB, 318 lines', 0], [5, 'A', 'Looking at your build.zig …', 1240, true], [6, 'U', 'ok so transitive deps from…', 18], [7, 'A', 'Transitive deps need a sep…', 760], [8, '⚙', 'Grep("vendor/")', 0], [9, '⚙', '→ 47 matches', 0], [10, 'A', 'Three of those are header-…', 540], [11, 'U', 'how would the cache key …', 22], [12, 'A', 'sha256 over the sorted…', 880], ]; return ( <>
go({ name: 'project', cwd: session.cwd })}>{session.cwd} {session.q.slice(0, 56)}{session.q.length > 56 ? '…' : ''} {session.model.replace('claude-', '')} {session.turns} turns · {session.tok} tok · started {session.when} · ●open
{TURNS.map((t, i) => (
{t.role.toUpperCase()} {t.kind && {t.kind}} {t.model && {t.model}} {t.tIn != null && in {t.tIn} · out {t.tOut}} #{i + 1}
{t.text}
))}
); }; Object.assign(window, { SessionScreen });