AX Agent 진행 시간·글로우 경로 정리 및 최근 로컬 변경 일괄 반영

- AX Agent 스트리밍 경과 시간을 공용 helper로 통일해 비정상적인 수천만 시간 표시를 방지함

- 채팅 입력창 글로우를 런처와 같은 표시/숨김 중심의 얇은 외곽 글로우로 정리하고 런처 글로우 설정은 일반 설정에 유지함

- README와 DEVELOPMENT 문서를 2026-04-08 12:02 (KST) 기준으로 갱신하고 Release 빌드 경고 0 / 오류 0을 확인함
This commit is contained in:
2026-04-08 23:20:53 +09:00
parent 6e99837a4c
commit 1b4a2bfb1c
24 changed files with 1103 additions and 173 deletions
@@ -36,17 +36,16 @@ public class ClipboardTool : IAgentTool
Required = ["action"],
};
public Task<ToolResult> ExecuteAsync(JsonElement args, AgentContext context, CancellationToken ct = default)
public async Task<ToolResult> ExecuteAsync(JsonElement args, AgentContext context, CancellationToken ct = default)
{
var action = args.GetProperty("action").GetString() ?? "";
try
{
// 클립보드는 STA 스레드에서만 접근 가능
ToolResult? result = null;
Application.Current.Dispatcher.Invoke(() =>
// 클립보드는 STA 스레드에서만 접근 가능 — InvokeAsync로 UI 스레드 블로킹 방지
var result = await Application.Current.Dispatcher.InvokeAsync(() =>
{
result = action switch
return action switch
{
"read" => ReadClipboard(),
"write" => WriteClipboard(args),
@@ -55,11 +54,11 @@ public class ClipboardTool : IAgentTool
_ => ToolResult.Fail($"Unknown action: {action}"),
};
});
return Task.FromResult(result ?? ToolResult.Fail("클립보드 접근 실패"));
return result ?? ToolResult.Fail("클립보드 접근 실패");
}
catch (Exception ex)
{
return Task.FromResult(ToolResult.Fail($"클립보드 오류: {ex.Message}"));
return ToolResult.Fail($"클립보드 오류: {ex.Message}");
}
}