feat(ui): interactive chat composer state on the session monitor VM

TaskMonitorViewModel gains IsInteractiveLive + ComposerDraft + SubmitComposer
(optimistic LogKind.User echo, then SendInteractiveMessageAsync) + StopInteractive,
driven by the InteractiveSessionStarted/Ended events. Since DetailsIslandViewModel
embeds this monitor, both task detail and Mission Control get the composer. Mission
Control auto-creates a monitor on InteractiveSessionStarted. Adds LogKind.User.
This commit is contained in:
Mika Kuns
2026-06-26 09:29:58 +02:00
parent 9effddeb2c
commit 140b8e1551
5 changed files with 190 additions and 3 deletions

View File

@@ -1,6 +1,6 @@
namespace ClaudeDo.Ui.ViewModels.Islands;
public enum LogKind { Sys, Tool, Claude, Stdout, Stderr, Done, Msg }
public enum LogKind { Sys, Tool, Claude, Stdout, Stderr, Done, Msg, User }
public sealed class LogLineViewModel
{
@@ -16,6 +16,7 @@ public sealed class LogLineViewModel
LogKind.Stderr => "err",
LogKind.Done => "done",
LogKind.Msg => "claude",
LogKind.User => "you",
_ => "",
};
public string ClassName => Kind switch
@@ -27,6 +28,7 @@ public sealed class LogLineViewModel
LogKind.Stderr => "log-stderr",
LogKind.Done => "log-done",
LogKind.Msg => "log-msg",
LogKind.User => "log-user",
_ => "",
};
}