AX Agent 레거시 plan 도구와 상태 배지 노출을 추가 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
Some checks failed
Release Gate / gate (push) Has been cancelled
- code 탭에서 enter_plan_mode/exit_plan_mode 도구를 항상 비활성화해 레거시 설정값이 런타임을 흔들지 않도록 정리 - queue/재시도 대기만 남은 상태에서는 RuntimeActivityBadge와 상단 strip이 기본 노출되지 않게 조정 - idle Cowork/Code 헤더 소음을 줄이도록 ChatWindow 상태 표시 조건을 추가 보정 - README와 DEVELOPMENT 문서에 2026-04-05 20:48 (KST) 기준 변경 내역 반영 - 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
This commit is contained in:
@@ -942,6 +942,15 @@ ow + toggle 시각 언어로 통일했습니다.
|
||||
- 같은 파일의 컨텍스트 hover 팝업도 과한 진단성 문자열을 걷고, 현재 모델 오늘 사용량과 compact 상태만 보여주는 짧은 2줄 요약으로 유지되게 다듬었습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
||||
- 업데이트: 2026-04-05 20:34 (KST)
|
||||
- Cowork/Code 상단 활동 배지도 더 조용하게 만들었습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `UpdateTaskSummaryIndicators()` 는 이제 실제 진행 중 대화나 활성 작업이 있을 때만 `RuntimeActivityBadge` 를 보이게 합니다. idle 상태에서는 상단 보조 메타가 남아 있지 않습니다.
|
||||
- 같은 파일의 `UpdateAgentProgressBar(...)` 에 남아 있던 미사용 debug 체크 변수도 제거해 상태 갱신 경로를 조금 더 단순화했습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
||||
- 업데이트: 2026-04-05 20:40 (KST)
|
||||
- `claw-code` 기준으로 남아 있던 plan 도구 레거시도 더 잘랐습니다. [AgentTabSettingsResolver.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentTabSettingsResolver.cs) 는 이제 저장값과 무관하게 `enter_plan_mode`, `exit_plan_mode` 를 항상 비활성 목록에 넣습니다. plan mode 도구는 완전 레거시 호환 영역으로만 남고 실제 code 실행 경로에는 개입하지 않습니다.
|
||||
- [AppStateService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AppStateService.cs) 의 운영 상태 요약도 더 `claw-code`처럼 조용하게 맞췄습니다. 기본 `RuntimeActivityBadge` 와 상단 strip 은 이제 실제 실행/권한 대기/백그라운드 작업이 있을 때만 살아나며, 단순 queue/재시도 대기만으로는 기본 헤더를 흔들지 않습니다.
|
||||
- 이번 정리 후 추정 parity 는 `core engine 92% / main transcript UI 97% / Cowork·Code runtime UX 97% / internal settings 92% / overall 96%` 정도로 재평가했습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
||||
- 업데이트: 2026-04-05 20:48 (KST)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -4710,3 +4710,8 @@ ow + toggle ?쒓컖 ?몄뼱濡??ㅼ떆 ?뺣젹?덈떎.
|
||||
- 이번 묶음 후 추정 parity는 `core engine 91% / main transcript UI 97% / Cowork·Code runtime UX 97% / internal settings 92% / overall 96%` 정도로 재평가했습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\` 경고 0 / 오류 0
|
||||
- 업데이트: 2026-04-05 20:34 (KST)
|
||||
- `claw-code` 기준의 레거시 plan 도구 경로도 더 정리했습니다. [AgentTabSettingsResolver.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentTabSettingsResolver.cs) 는 이제 persisted 설정과 무관하게 `enter_plan_mode`, `exit_plan_mode` 를 항상 비활성 목록에 포함합니다. 숨겨진 설정값이 code 실행 경로에 다시 영향을 주지 않게 한 변경입니다.
|
||||
- [AppStateService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AppStateService.cs) 의 `GetOperationalStatus(...)` 도 기본 노출을 더 줄였습니다. queue/재시도 대기만 남은 상태로는 `RuntimeActivityBadge` 와 상단 strip 을 켜지 않고, 실제 실행/권한 대기/백그라운드 작업만 기본 헤더 메타를 살리도록 맞췄습니다.
|
||||
- 이번 묶음 후 추정 parity 는 `core engine 92% / main transcript UI 97% / Cowork·Code runtime UX 97% / internal settings 92% / overall 96%` 정도로 재평가했습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\` 경고 0 / 오류 0
|
||||
- 업데이트: 2026-04-05 20:48 (KST)
|
||||
|
||||
@@ -21,11 +21,10 @@ internal static class AgentTabSettingsResolver
|
||||
|
||||
public static IEnumerable<string> EnumerateCodeTabDisabledTools(CodeSettings code)
|
||||
{
|
||||
if (!code.EnablePlanModeTools)
|
||||
{
|
||||
yield return "enter_plan_mode";
|
||||
yield return "exit_plan_mode";
|
||||
}
|
||||
// Plan mode tools are legacy compatibility only and stay disabled
|
||||
// regardless of any persisted value.
|
||||
yield return "enter_plan_mode";
|
||||
yield return "exit_plan_mode";
|
||||
|
||||
if (!code.EnableWorktreeTools)
|
||||
{
|
||||
|
||||
@@ -544,9 +544,7 @@ public sealed class AppStateService
|
||||
var latestDeniedPermission = GetLatestDeniedPermission();
|
||||
|
||||
var showRuntimeBadge = taskSummary.HasActiveTasks
|
||||
|| queueSummary.QueuedCount > 0
|
||||
|| queueSummary.RunningCount > 0
|
||||
|| queueSummary.BlockedCount > 0
|
||||
|| taskSummary.PendingPermissionCount > 0
|
||||
|| backgroundSummary.ActiveCount > 0;
|
||||
|
||||
var runtimeLabel = taskSummary.PendingPermissionCount > 0
|
||||
@@ -582,20 +580,6 @@ public sealed class AppStateService
|
||||
stripKind = "failed_run";
|
||||
stripText = $"최근 실패 {FormatDate(taskSummary.LatestFailedRun.UpdatedAt)}";
|
||||
}
|
||||
else if (queueSummary.RunningCount > 0 || queueSummary.QueuedCount > 0)
|
||||
{
|
||||
stripKind = "queue";
|
||||
stripText = queueSummary.RunningCount > 0
|
||||
? $"큐 실행 중 {queueSummary.RunningCount} · 다음 {Truncate(queueSummary.NextItem?.Text, 24)}"
|
||||
: $"대기열 {queueSummary.QueuedCount} · 다음 {Truncate(queueSummary.NextItem?.Text, 24)}";
|
||||
}
|
||||
else if (queueSummary.BlockedCount > 0)
|
||||
{
|
||||
stripKind = "queue_blocked";
|
||||
stripText = queueSummary.NextReadyAt.HasValue
|
||||
? $"재시도 대기 {queueSummary.BlockedCount} · {FormatDate(queueSummary.NextReadyAt.Value)}"
|
||||
: $"재시도 대기 {queueSummary.BlockedCount}";
|
||||
}
|
||||
else if (backgroundSummary.ActiveCount > 0)
|
||||
{
|
||||
stripKind = "background";
|
||||
|
||||
@@ -9275,9 +9275,11 @@ public partial class ChatWindow : Window
|
||||
private void UpdateTaskSummaryIndicators()
|
||||
{
|
||||
var status = _appState.GetOperationalStatus(_activeTab);
|
||||
var hasLiveRuntimeActivity = !string.Equals(_activeTab, "Chat", StringComparison.OrdinalIgnoreCase)
|
||||
&& (_runningConversationCount > 0 || _appState.ActiveTasks.Count > 0);
|
||||
|
||||
if (RuntimeActivityBadge != null)
|
||||
RuntimeActivityBadge.Visibility = status.ShowRuntimeBadge
|
||||
RuntimeActivityBadge.Visibility = status.ShowRuntimeBadge && hasLiveRuntimeActivity
|
||||
? Visibility.Visible
|
||||
: Visibility.Collapsed;
|
||||
|
||||
@@ -17913,8 +17915,6 @@ public partial class ChatWindow : Window
|
||||
|
||||
private void UpdateAgentProgressBar(AgentEvent evt)
|
||||
{
|
||||
var isDebugLogLevel = string.Equals(_settings.Settings.Llm.AgentLogLevel, "debug", StringComparison.OrdinalIgnoreCase);
|
||||
|
||||
switch (evt.Type)
|
||||
{
|
||||
case AgentEventType.Planning when evt.Steps is { Count: > 0 }:
|
||||
|
||||
Reference in New Issue
Block a user