Skip to content

Commit f17f467

Browse files
committed
feat(web): redesign session UI with split layout and scorecard rail
Split the session view into a two-column layout: transcript left, right rail (260px) with progress tracker, scorecard display, session meta, and privacy note. Apply Direction E styling to all message blocks (amber border for assistant, ruleStr border for user, // comment ornament for system). Add post-session CTAs and scorecard fetch on completion.
1 parent 193bb19 commit f17f467

8 files changed

Lines changed: 412 additions & 171 deletions

File tree

apps/web/src/features/dashboard/SessionReplay.tsx

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { useParams, useNavigate } from 'react-router'
77
import { getContainerSession } from '../session/containerApi'
88
import type { ContainerSessionResponse } from '../session/containerTypes'
99
import ContainerSession from '../session/ContainerSession'
10+
import { Dot } from '../../shared/components'
1011

1112
export default function SessionReplay() {
1213
const { installationId, sessionId } = useParams<{
@@ -26,14 +27,14 @@ export default function SessionReplay() {
2627

2728
if (error) {
2829
return (
29-
<div className="min-h-screen bg-primary text-text-primary flex items-center justify-center">
30+
<div className="flex items-center justify-center py-20">
3031
<div className="text-center">
31-
<p className="text-[14px] font-sans mb-4" style={{ color: '#ff6961' }}>{error}</p>
32+
<p className="text-danger text-sm font-sans mb-4">{error}</p>
3233
<button
3334
onClick={() => navigate(`/installations/${installationId}`)}
34-
className="text-[13px] font-sans text-text-secondary hover:text-text-primary transition-colors cursor-pointer"
35+
className="text-dim text-sm font-mono hover:text-ink2 transition-colors cursor-pointer"
3536
>
36-
&larr; Back to sessions
37+
{'\u2190'} Back to sessions
3738
</button>
3839
</div>
3940
</div>
@@ -42,8 +43,10 @@ export default function SessionReplay() {
4243

4344
if (!sessionData) {
4445
return (
45-
<div className="min-h-screen bg-primary text-text-primary flex items-center justify-center">
46-
<span className="text-text-muted text-[14px] font-sans">Loading session...</span>
46+
<div className="flex items-center justify-center py-20">
47+
<span className="text-dim text-sm font-mono">
48+
<Dot pulse className="mr-2" /> Loading session...
49+
</span>
4750
</div>
4851
)
4952
}

0 commit comments

Comments
 (0)