Render dashboard live progress markdown (#67)

* review: harden readonly git checks and lint verification

* test: satisfy readonly reviewer sandbox typing

* test: fix readonly reviewer sandbox assertions

* test: remove impossible readonly sandbox guards

* test: relax readonly sandbox assertions

* test: cast readonly sandbox expectation shape

* test: cast readonly sandbox expectation through unknown

* Phase 0 — STEP_DONE/TASK_DONE split + owner-follow-up integration smoke

* Add STEP_DONE guards, verdict storage, and stale delivery suppression

* style: format paired stepdone telemetry files

* Route STEP_DONE through reviewer

* Add structured Discord attachments

* style: format structured attachment test

* Fix room thread bot output parity

* Remove duplicate work item attachment migration from owner branch

* Remove legacy dashboard rooms renderer

* Extract dashboard parsed body renderer

* Extract dashboard redaction helpers

* Extract dashboard RoomCardV2 component

* Include RoomCardV2 test in vitest suite

* Extract dashboard RoomBoardV2 component

* Extract dashboard EmptyState component

* Extract dashboard InboxPanel component

* Split dashboard InboxPanel card renderer

* Extract dashboard TaskPanel component

* Extract dashboard UsagePanel component

* Fix dashboard room thread chunk rendering

* Extract dashboard ServicePanel component

* Render dashboard live progress markdown
This commit is contained in:
Eyejoker
2026-04-28 16:37:43 +09:00
committed by GitHub
parent 74cb43b1d8
commit e68ce6c616
2 changed files with 62 additions and 2 deletions

View File

@@ -519,7 +519,7 @@ function CollapsedLiveTurn({
</time>
</header>
{turn.progressText && turn.progressText.trim() ? (
<pre className="live-progress">{turn.progressText}</pre>
<LiveProgressBody text={turn.progressText} />
) : turn.activeRunId ? (
<code className="live-run">{turn.activeRunId}</code>
) : null}
@@ -527,6 +527,14 @@ function CollapsedLiveTurn({
);
}
function LiveProgressBody({ text }: { text: string }) {
return (
<div className="live-progress">
<ParsedBody text={text} />
</div>
);
}
function CollapsedOutputPreview({
expanded,
isProcessing,
@@ -824,7 +832,7 @@ function RoomLiveTimelineEntry({
</header>
<div className="room-timeline-body">
{liveProgressDisplay ? (
<pre className="live-progress">{liveProgressDisplay}</pre>
<LiveProgressBody text={liveProgressDisplay} />
) : (
<p className="room-empty">{t.rooms.loadingActivity}</p>
)}