diff --git a/src/ClaudeDo.Localization/locales/de.json b/src/ClaudeDo.Localization/locales/de.json
index 4278521..a9671f3 100644
--- a/src/ClaudeDo.Localization/locales/de.json
+++ b/src/ClaudeDo.Localization/locales/de.json
@@ -231,7 +231,12 @@
"chipDone": "FERTIG",
"chipFailed": "FEHLGESCHLAGEN",
"reviewContinueTip": "Dieses Feedback senden und die Aufgabe erneut ausführen",
- "reviewResetTip": "Alle Änderungen verwerfen und die Aufgabe auf Leerlauf zurücksetzen"
+ "reviewResetTip": "Alle Änderungen verwerfen und die Aufgabe auf Leerlauf zurücksetzen",
+ "composer": {
+ "placeholder": "Nachricht an die Sitzung…",
+ "send": "Senden",
+ "stop": "Sitzung beenden"
+ }
},
"missionControl": {
"openInApp": "In App öffnen",
diff --git a/src/ClaudeDo.Localization/locales/en.json b/src/ClaudeDo.Localization/locales/en.json
index 33c22cf..0115698 100644
--- a/src/ClaudeDo.Localization/locales/en.json
+++ b/src/ClaudeDo.Localization/locales/en.json
@@ -231,7 +231,12 @@
"chipDone": "DONE",
"chipFailed": "FAILED",
"reviewContinueTip": "Send this feedback and re-run the task",
- "reviewResetTip": "Discard all changes and reset the task to Idle"
+ "reviewResetTip": "Discard all changes and reset the task to Idle",
+ "composer": {
+ "placeholder": "Message the session…",
+ "send": "Send",
+ "stop": "Stop session"
+ }
},
"missionControl": {
"openInApp": "Open in app",
diff --git a/src/ClaudeDo.Ui/Design/IslandStyles.axaml b/src/ClaudeDo.Ui/Design/IslandStyles.axaml
index 75552f1..194be8c 100644
--- a/src/ClaudeDo.Ui/Design/IslandStyles.axaml
+++ b/src/ClaudeDo.Ui/Design/IslandStyles.axaml
@@ -528,6 +528,10 @@
+
+
diff --git a/src/ClaudeDo.Ui/Views/Islands/Detail/WorkConsole.axaml b/src/ClaudeDo.Ui/Views/Islands/Detail/WorkConsole.axaml
index e421f86..1a91f03 100644
--- a/src/ClaudeDo.Ui/Views/Islands/Detail/WorkConsole.axaml
+++ b/src/ClaudeDo.Ui/Views/Islands/Detail/WorkConsole.axaml
@@ -263,6 +263,36 @@
Command="{Binding RejectReviewCommand}" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
(nameof(IsDone));
public static readonly StyledProperty IsFailedProperty =
AvaloniaProperty.Register(nameof(IsFailed));
+ public static readonly StyledProperty IsComposerVisibleProperty =
+ AvaloniaProperty.Register(nameof(IsComposerVisible), defaultValue: false);
+ public static readonly StyledProperty ComposerTextProperty =
+ AvaloniaProperty.Register(nameof(ComposerText), defaultBindingMode: BindingMode.TwoWay);
+ public static readonly StyledProperty SubmitCommandProperty =
+ AvaloniaProperty.Register(nameof(SubmitCommand));
+ public static readonly StyledProperty ComposerPlaceholderProperty =
+ AvaloniaProperty.Register(nameof(ComposerPlaceholder));
public IEnumerable? Entries { get => GetValue(EntriesProperty); set => SetValue(EntriesProperty, value); }
public string? Label { get => GetValue(LabelProperty); set => SetValue(LabelProperty, value); }
public bool IsRunning { get => GetValue(IsRunningProperty); set => SetValue(IsRunningProperty, value); }
public bool IsDone { get => GetValue(IsDoneProperty); set => SetValue(IsDoneProperty, value); }
public bool IsFailed { get => GetValue(IsFailedProperty); set => SetValue(IsFailedProperty, value); }
+ public bool IsComposerVisible { get => GetValue(IsComposerVisibleProperty); set => SetValue(IsComposerVisibleProperty, value); }
+ public string? ComposerText { get => GetValue(ComposerTextProperty); set => SetValue(ComposerTextProperty, value); }
+ public ICommand? SubmitCommand { get => GetValue(SubmitCommandProperty); set => SetValue(SubmitCommandProperty, value); }
+ public string? ComposerPlaceholder { get => GetValue(ComposerPlaceholderProperty); set => SetValue(ComposerPlaceholderProperty, value); }
private INotifyCollectionChanged? _subscribedCollection;
diff --git a/src/ClaudeDo.Ui/Views/MissionControl/MonitorPaneView.axaml b/src/ClaudeDo.Ui/Views/MissionControl/MonitorPaneView.axaml
index 5036550..fd6dcdc 100644
--- a/src/ClaudeDo.Ui/Views/MissionControl/MonitorPaneView.axaml
+++ b/src/ClaudeDo.Ui/Views/MissionControl/MonitorPaneView.axaml
@@ -107,7 +107,11 @@
Label="{Binding DisplayTitle}"
IsRunning="{Binding IsRunning}"
IsDone="{Binding IsDone}"
- IsFailed="{Binding IsFailed}" />
+ IsFailed="{Binding IsFailed}"
+ IsComposerVisible="{Binding IsInteractiveLive}"
+ ComposerText="{Binding ComposerDraft, Mode=TwoWay}"
+ SubmitCommand="{Binding SubmitComposerCommand}"
+ ComposerPlaceholder="{loc:Tr session.composer.placeholder}" />