feat(shell): 30/55/15 layout, formatted activity log, instant resume, stop confirmation
Left panels 30vw / central 55% / right rail 15vw, minimal padding. Model-activity log and documents render via .thot-prose; decisions become hairline rows with semantic type chips. Resume switches the view optimistically (instant feedback). The Stop button now asks for confirmation before interrupting. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -30,8 +30,8 @@ export function ModelActivityPanel({ onClose }: { onClose: () => void }) {
|
||||
const source = shown.join("\n\n");
|
||||
|
||||
return (
|
||||
<aside className="flex w-[380px] shrink-0 flex-col border-r border-border bg-sidebar">
|
||||
<div className="flex items-center justify-between border-b border-border/70 px-4 py-3">
|
||||
<aside className="flex w-[30vw] max-w-[30vw] shrink-0 flex-col border-r border-border bg-sidebar">
|
||||
<div className="flex items-center justify-between border-b border-border/70 px-3 py-3">
|
||||
<h2 className="font-heading text-sm font-semibold text-foreground">Model activity</h2>
|
||||
<div className="flex items-center gap-1">
|
||||
{canExpand && (
|
||||
@@ -50,11 +50,11 @@ export function ModelActivityPanel({ onClose }: { onClose: () => void }) {
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex-1 overflow-y-auto px-4 py-4">
|
||||
<div className="flex-1 overflow-y-auto px-3 py-5">
|
||||
{shown.length === 0 ? (
|
||||
<p className="text-sm text-muted-foreground">No activity yet.</p>
|
||||
) : (
|
||||
<div className="prose prose-sm dark:prose-invert max-w-none text-foreground/90">
|
||||
<div className="thot-prose max-w-[74ch]">
|
||||
<ReactMarkdown remarkPlugins={[remarkGfm]}>{source}</ReactMarkdown>
|
||||
</div>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user