feat(ui): live task updates from worker events + planning polish
Wire TasksIslandViewModel to TaskUpdated/WorktreeUpdated/TaskMessage worker events so rows refresh without a full reload; add ForegroundHelper to permit wt.exe to take foreground on planning launch; misc UI polish on lists, task rows and settings modal. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -13,7 +13,7 @@ namespace ClaudeDo.Worker.Planning;
|
||||
public sealed class WindowsTerminalPlanningLauncher : IPlanningTerminalLauncher
|
||||
{
|
||||
private const string AllowedTools = "mcp__claudedo__*,Read,Grep,Glob,WebFetch,WebSearch,Skill";
|
||||
private const string Model = "claude-sonnet-4-6";
|
||||
private const string Model = "claude-opus-4-7";
|
||||
|
||||
private readonly string _wtPath;
|
||||
private readonly string _claudePath;
|
||||
@@ -49,17 +49,19 @@ public sealed class WindowsTerminalPlanningLauncher : IPlanningTerminalLauncher
|
||||
|
||||
psi.Environment["MAX_THINKING_TOKENS"] = "20000";
|
||||
|
||||
// Arg order matters: --allowedTools and --mcp-config are variadic (space-separated).
|
||||
// The positional prompt must follow a single-value flag, or it will be swallowed.
|
||||
psi.ArgumentList.Add("-d");
|
||||
psi.ArgumentList.Add(ctx.WorkingDir);
|
||||
psi.ArgumentList.Add(resolvedClaude);
|
||||
psi.ArgumentList.Add("--model");
|
||||
psi.ArgumentList.Add(Model);
|
||||
psi.ArgumentList.Add("--allowedTools");
|
||||
psi.ArgumentList.Add(AllowedTools);
|
||||
psi.ArgumentList.Add("--mcp-config");
|
||||
psi.ArgumentList.Add(ctx.Files.McpConfigPath);
|
||||
psi.ArgumentList.Add("--append-system-prompt-file");
|
||||
psi.ArgumentList.Add(ctx.Files.SystemPromptPath);
|
||||
psi.ArgumentList.Add("--allowedTools");
|
||||
psi.ArgumentList.Add(AllowedTools);
|
||||
psi.ArgumentList.Add(File.ReadAllText(ctx.Files.InitialPromptPath));
|
||||
|
||||
var proc = Process.Start(psi)
|
||||
@@ -91,10 +93,10 @@ public sealed class WindowsTerminalPlanningLauncher : IPlanningTerminalLauncher
|
||||
psi.ArgumentList.Add("-d");
|
||||
psi.ArgumentList.Add(ctx.WorkingDir);
|
||||
psi.ArgumentList.Add(resolvedClaude);
|
||||
psi.ArgumentList.Add("--resume");
|
||||
psi.ArgumentList.Add(ctx.ClaudeSessionId);
|
||||
psi.ArgumentList.Add("--mcp-config");
|
||||
psi.ArgumentList.Add(ctx.McpConfigPath);
|
||||
psi.ArgumentList.Add("--resume");
|
||||
psi.ArgumentList.Add(ctx.ClaudeSessionId);
|
||||
|
||||
var proc = Process.Start(psi)
|
||||
?? throw new PlanningLaunchException("Failed to start Windows Terminal process.");
|
||||
|
||||
@@ -60,7 +60,8 @@ builder.Services.AddSingleton(sp =>
|
||||
new PlanningSessionManager(
|
||||
sp.GetRequiredService<IDbContextFactory<ClaudeDoDbContext>>(),
|
||||
planningSessionsDir));
|
||||
builder.Services.AddSingleton<IPlanningTerminalLauncher, WindowsTerminalPlanningLauncher>();
|
||||
builder.Services.AddSingleton<IPlanningTerminalLauncher>(sp =>
|
||||
new WindowsTerminalPlanningLauncher("wt.exe", cfg.ClaudeBin));
|
||||
builder.Services.AddHttpContextAccessor();
|
||||
builder.Services.AddScoped<PlanningMcpContextAccessor>();
|
||||
builder.Services.AddScoped<ClaudeDoDbContext>(sp =>
|
||||
|
||||
Reference in New Issue
Block a user