Files
AX-Copilot-Codex/docs/DEVELOPMENT.md
lacvet 227f5ab0d3
Some checks are pending
Release Gate / gate (push) Waiting to run
에이전트 진행 표시 구조를 claude-code식 row 기반으로 재정리
- AgentTranscriptDisplayCatalog를 row presentation 중심으로 재구성해 thinking/waiting/compact/tool activity/permission/tool result/status를 타입별로 분리함
- PermissionRequestPresentationCatalog와 ToolResultPresentationCatalog를 정리해 권한 요청과 결과 상태를 행위/상태 기준으로 더 명확하게 표현함
- ChatWindow.AgentEventRendering에서 process feed 계열 이벤트를 GroupKey 기준으로 병합해 append 수를 줄이고 진행 흐름이 기본 transcript에 남도록 조정함
- FooterPresentation에서 Cowork/Chat 프리셋 안내 카드가 execution event 이후 자동으로 숨겨지도록 하고 입력 워터마크와 footer 기본 문구를 정리함
- render_messages 성능 로그에 processFeed append/merge 수치와 rowKindCounts를 추가해 %APPDATA%\\AxCopilot\\perf 기준 실검증이 가능하도록 함
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 기준 경고 0 / 오류 0 확인
2026-04-09 14:49:53 +09:00

28 KiB
Raw Blame History

AX Copilot - 媛쒕컻 臾몄꽌

claude-code식 transcript 표시 구조 정리

  • 업데이트: 2026-04-09 13:05 (KST)
  • AgentTranscriptDisplayCatalog를 row presentation 중심으로 재구성해 thinking / waiting / compact / tool activity / permission / tool result / status를 개별 transcript row 의미로 다룰 수 있게 정리했습니다.
  • ChatWindow.AgentEventRendering은 process feed 계열 이벤트를 같은 GroupKey 단위로 병합해, 긴 Cowork/Code 실행 중 append 수를 줄이면서도 주요 활동 흐름이 기본 transcript에 남도록 조정했습니다.
  • PermissionRequestPresentationCatalog, ToolResultPresentationCatalog를 다시 정리해 권한 요청과 도구 결과를 행위/상태 기준으로 구분하고, transcript 렌더와 popup이 같은 메타를 공유하도록 맞췄습니다.
  • ChatWindow.FooterPresentation은 execution event가 생긴 뒤에는 프리셋 안내 카드를 자동으로 숨기도록 바꿔 결과/진행 화면을 덮지 않게 했고, Cowork/Code 입력 워터마크와 footer 기본 문구도 정상 한국어 기준으로 다시 정리했습니다.
  • render_messages 성능 로그에는 processFeedAppends, processFeedMerges, rowKindCounts를 함께 남겨 %APPDATA%\AxCopilot\perf 기준으로 transcript grouping 효과를 수치로 비교할 수 있게 했습니다.

1. ?꾨줈?앺듃 媛쒖슂

AX Copilot?€ Windows???앹궛???곗쿂 + AI ?먯씠?꾪듃 ?곗뒪?ы넲 ?깆엯?덈떎.

  • ?곗쿂: Alfred/Raycast ?ㅽ??쇱쓽 ?쇱? 寃€?? 紐낅졊 ?ㅽ뻾, ?꾩젽
  • ?먯씠?꾪듃: LLM 湲곕컲 ?€?뷀삎 肄붾뱶/臾몄꽌 ?묒뾽 ?먮룞??(?꾧뎄 ?몄텧 猷⑦봽)
  • **??諛?*: ?쒖뒪??由ъ냼?? ?대┰蹂대뱶, ?ㅽ겕由곗꺑 ??鍮좊Ⅸ ?묎렐

2. 湲곗닠 ?ㅽ깮

??ぉ 媛?
?꾨젅?꾩썙?? .NET 8 (net8.0-windows10.0.17763.0)
UI WPF + Windows Forms (?섏씠釉뚮━??
?몄뼱 C# 12
?⑦꽩 MVVM, ?대깽??湲곕컲, ?깃????쒕퉬??
?뚯뒪?? xUnit 2.9 + FluentAssertions 6.12
鍮뚮뱶 dotnet CLI, PublishSingleFile

二쇱슂 NuGet ?⑦궎吏€

?⑦궎吏€ ?⑸룄
DocumentFormat.OpenXml 3.2.0 DOCX/XLSX/PPTX ?앹꽦
Markdig 0.37.0 Markdown ??HTML ?뚮뜑留?
Microsoft.Data.Sqlite 8.0 SQLite (?€???€?μ냼)
Microsoft.Web.WebView2 HTML 誘몃━蹂닿린, 媛€?대뱶 酉곗뼱
QRCoder 1.6.0 QR 肄붾뱶 ?앹꽦
System.Security.Cryptography.ProtectedData DPAPI ?뷀샇??
UglyToad.PdfPig PDF ?쎄린

3. ?붾(??援ъ“

src/
?쒋??€ AxCopilot/              # 硫붿씤 WPF ??(v0.7.3)
??  ?쒋??€ Assets/             # ?꾩씠肄? ?꾨━??JSON, ?뷀샇?붾맂 媛€?대뱶, 留덉뒪肄뷀듃
??  ?쒋??€ Core/               # FuzzyEngine, CommandResolver, InputListener, PluginHost
??  ?쒋??€ Handlers/           # 136媛?鍮뚰듃??紐낅졊 ?몃뱾????  ?쒋??€ Models/             # AppSettings, ChatModels, McpSettings
??  ?쒋??€ Security/           # AntiTamper (?붾쾭嫄??붿뺨?뚯씪???먯?)
??  ?쒋??€ Services/           # 60媛??쒕퉬????  ??  ?붴??€ Agent/          # ?먯씠?꾪듃 猷⑦봽 + 114媛??꾧뎄
??  ?쒋??€ Themes/             # 9媛??뚮쭏 (Dark, Light, OLED, Nord, Monokai ??
??  ?쒋??€ ViewModels/         # LauncherViewModel, SettingsViewModel, StatisticsViewModel
??  ?붴??€ Views/              # 30媛?XAML ?덈룄???쒋??€ AxCopilot.SDK/          # ?뚮윭洹몄씤 SDK (IActionHandler ?명꽣?섏씠??
?쒋??€ AxCopilot.Installer/    # Windows Forms ?ㅼ튂 ?꾨줈洹몃옩 (.NET Framework 4.8)
?쒋??€ AxCopilot.Tests/        # xUnit ?⑥쐞/?듯빀 ?뚯뒪???붴??€ AxKeyEncryptor/         # API ??DPAPI ?뷀샇???좏떥由ы떚

4. ???쒖옉 ?먮쫫 (App.xaml.cs)

OnStartup()
  ?쒋? AntiTamper ?붾쾭嫄?媛먯? (Release 鍮뚮뱶)
  ?쒋? ?⑥씪 ?몄뒪?댁뒪 裕ㅽ뀓???뺤씤
  ?쒋? SettingsService 珥덇린??+ ?ㅼ젙 濡쒕뱶
  ?쒋? ChatStorageService 蹂닿? ?뺤콉 ?ㅽ뻾 (留뚮즺 ?€???뺣━)
  ?쒋? L10n ?몄뼱 珥덇린??  ?쒋? ?쒕퉬??珥덇린??  ??  ?쒋? AgentMemoryService
  ??  ?쒋? ChatSessionStateService
  ??  ?쒋? AppStateService
  ??  ?쒋? IndexService (諛깃렇?쇱슫???뚯씪 ?몃뜳??
  ??  ?쒋? FuzzyEngine + CommandResolver
  ??  ?쒋? ContextManager
  ??  ?쒋? SessionTrackingService
  ??  ?쒋? WorktimeReminderService
  ??  ?붴? ClipboardHistoryService
  ?쒋? 鍮뚰듃???몃뱾???깅줉 (136媛?
  ?쒋? SchedulerService + PluginHost 珥덇린??  ?쒋? InputListener ?쒖옉 (湲€濡쒕쾶 ?ロ궎)
  ?붴? ?곗쿂/?ㅼ젙/?몃젅???덈룄???앹꽦

5. ?듭떖 ?꾪궎?띿쿂

5.1 ?곗쿂 (Launcher)

**寃€???뚯씠?꾨씪??*: ?ъ슜???낅젰 ??CommandResolver (?묐몢??留ㅼ묶) ??FuzzyEngine (?쇱? 寃€?? ??寃곌낵 ?뺣젹 ??UI ?뚮뜑留?

  • FuzzyEngine: ?뚯씪 ?몃뜳??湲곕컲 ?쇱? 留ㅼ묶, ?먯닔 ?쒖쐞
  • CommandResolver: ?몃뱾???쇱슦??(?묐몢??@, !, #, ~, >, $ ??
  • IndexService: 諛깃렇?쇱슫???뚯씪 ?몃뜳??(.git, node_modules ???쒖쇅)

?꾩젽: ?깅뒫 紐⑤땲?? ?щえ?꾨줈, 硫붾え, ?좎뵪, 罹섎┛?? 諛고꽣由?

5.2 ?먯씠?꾪듃 (Agent Loop)

?ъ슜??硫붿떆吏€
  ??LlmService.StreamAsync() (LLM API ?몄텧)
  ???묐떟 ?ㅽ듃由щ컢 ?섏떊
  ???꾧뎄 ?몄텧 媛먯? ??
      ??ToolRegistry?먯꽌 ?꾧뎄 議고쉶
      ??沅뚰븳 ?뺤씤 (AskPermissionCallback)
      ???꾧뎄 ?ㅽ뻾
      ??寃곌낵瑜?而⑦뀓?ㅽ듃??異붽?
      ??LLM ?ы샇異?(諛섎났)
  ??理쒖쥌 ?띿뒪???묐떟 諛섑솚

**?듭떖 ?대옒??*:

  • AgentLoopService ??猷⑦봽 ?붿쭊 (諛섎났, ?쇱떆?뺤?/?ш컻, ?대깽??諛쒗뻾)
  • AxAgentExecutionEngine ???꾧뎄 ?ㅽ뻾 議곗쑉
  • AgentLoopParallelExecution ??蹂묐젹 ?꾧뎄 ?ㅽ뻾
  • AgentLoopTransitions / .Execution ???곹깭 ?꾩씠 濡쒖쭅
  • ToolRegistry ???꾧뎄 ?깅줉/議고쉶
  • ContextCondenser ??而⑦뀓?ㅽ듃 ?뺤텞 (?좏겙 愿€由?

?꾧뎄 移댄뀒怨좊━ (114媛?:

移댄뀒怨좊━ ?덉떆
?뚯씪 I/O FileReadTool, FileEditTool, FileManageTool, FileWriteTool
寃€?? GlobTool, GrepTool, CodeSearchTool, FileSearchTool
臾몄꽌 DocumentReaderTool, ExcelSkill, DocxSkill, PptxSkill, CsvSkill, HtmlSkill
肄붾뱶 BuildRunTool, SnippetRunnerTool, CodeReviewTool, TestLoopTool, LspTool
?곗씠?? JsonTool, XmlTool, SqlTool, DataPivotTool, RegexTool
?쒖뒪?? ProcessTool, EnvTool, ZipTool, ClipboardTool
怨꾪쉷/異붿쟻 TodoWriteTool, TaskTrackerTool, CheckpointTool, PlaybookTool
?ъ슜?? UserAskTool, SuggestActionsTool, NotifyTool
MCP McpTool, McpListResourcesTool, McpReadResourceTool

5.3 LLM ?쒕퉬??

**吏€??怨듦툒??*:

?쒕퉬?? ?ㅻ챸
claude / sigmoid Anthropic Claude (Sigmoid API 寃쎌쑀)
gemini Google Gemini API
vllm OpenAI ?명솚 vLLM (IBM CP4D 吏€???ы븿)
ollama 濡쒖뺄 Ollama 紐⑤뜽

**紐⑤뜽 ?쇱슦??: ModelRouterService瑜??듯븳 ?ㅻ쾭?쇱씠???ㅽ깮 ???€??以?紐⑤뜽/?쒕퉬?ㅻ? ?숈쟻?쇰줈 ?꾪솚 媛€?? **?좏겙 愿€由?: TokenEstimator濡?而⑦뀓?ㅽ듃 湲몄씠 異붿젙, ?ㅻ쾭?뚮줈????ContextCondenser媛€ ?먮룞 ?뺤텞

5.4 ?€???€?μ냼

  • ChatStorageService: SQLite 湲곕컲 ?€???곸냽??- ChatSessionStateService: 硫붾え由????몄뀡 ?곹깭 愿€由?- ChatConversation: 硫붿떆吏€ 紐⑸줉 + ?ㅽ뻾 ?대깽???€?꾨씪??

6. UI 怨꾩링

二쇱슂 ?덈룄??

?덈룄?? ??븷
LauncherWindow 硫붿씤 ?곗쿂 (寃€?? ?꾩젽, 寃곌낵 紐⑸줉)
ChatWindow AI ?먯씠?꾪듃 ?€??(梨꾪똿/Cowork/肄붾뱶 ??
DockBarWindow ??諛?(?쒖뒪??由ъ냼?? 鍮좊Ⅸ ?묎렐)
SettingsWindow ?ㅼ젙 愿€由?
AgentSettingsWindow ?먯씠?꾪듃 ?꾩슜 ?ㅼ젙
AgentStatsDashboardWindow ?먯씠?꾪듃 ?듦퀎 ?€?쒕낫??
SkillEditorWindow ?ㅽ궗 ?몄쭛湲?
SkillGalleryWindow ?ㅽ궗 媛ㅻ윭由?
TrayMenuWindow ?쒖뒪???몃젅??硫붾돱
PreviewWindow 臾몄꽌 誘몃━蹂닿린 (WebView2)

ChatWindow 遺꾪븷 援ъ“

ChatWindow.xaml.cs??partial class濡?湲곕뒫蹂?遺꾪븷:

?뚯씪 ??븷
ChatWindow.xaml.cs 硫붿씤 ?ㅼ??ㅽ듃?덉씠?? ?ㅽ듃由щ컢, ?낅젰 泥섎━
ChatWindow.AgentEventProcessor.cs ?먯씠?꾪듃 ?대깽???섏떊/?쇱슦??
ChatWindow.AgentEventRendering.cs ?먯씠?꾪듃 ?대깽??諛곕꼫/移대뱶 ?뚮뜑留?
ChatWindow.ComposerQueuePresentation.cs ?묒꽦湲???UI
ChatWindow.ContextUsagePresentation.cs 而⑦뀓?ㅽ듃 ?ъ슜??留??앹뾽
ChatWindow.ConversationFilterPresentation.cs ?€???꾪꽣留?
ChatWindow.ConversationListPresentation.cs ?ъ씠?쒕컮 ?€??紐⑸줉
ChatWindow.ConversationManagementPresentation.cs ?€???앹꽦/??젣/愿€由?
ChatWindow.FileBrowserPresentation.cs ?뚯씪 釉뚮씪?곗? UI
ChatWindow.FooterPresentation.cs ?섎떒 諛?(?대뜑, 沅뚰븳)
ChatWindow.GitBranchPresentation.cs Git 釉뚮옖移??쒖떆/?꾪솚
ChatWindow.LiveProgressPresentation.cs ?ㅼ떆媛?吏꾪뻾 ?곹깭
ChatWindow.MessageBubblePresentation.cs 硫붿떆吏€ 踰꾨툝 ?뚮뜑留?
ChatWindow.MessageInteractions.cs 硫붿떆吏€ 蹂듭궗/?몄쭛/?ъ쟾??
ChatWindow.PermissionPresentation.cs 沅뚰븳 ?앹뾽/諛곕꼫 UI
ChatWindow.PlanApprovalPresentation.cs 怨꾪쉷 ?뱀씤 移대뱶
ChatWindow.PopupPresentation.cs 怨듯넻 ?앹뾽 援ъ꽦
ChatWindow.PreviewPresentation.cs ?뚯씪 誘몃━蹂닿린 ??
ChatWindow.SelectionPopupPresentation.cs ?뚰겕?몃━ ?좏깮 ?앹뾽
ChatWindow.SidebarInteractionPresentation.cs ?ъ씠?쒕컮 ?곹샇?묒슜
ChatWindow.StatusPresentation.cs ?곹깭 諛곗?/?ㅽ듃由?
ChatWindow.SurfaceVisualPresentation.cs ?쒓컖 ?④낵 (湲€濡쒖슦, ?꾩뒪 ??
ChatWindow.TaskSummary.cs ?묒뾽 ?붿빟 移대뱶
ChatWindow.TimelinePresentation.cs ?€?꾨씪???뺣젹, 罹먯떆, ?대깽???꾪꽣留?
ChatWindow.TopicPresetPresentation.cs 二쇱젣 ?꾨━??UI
ChatWindow.TranscriptHost.cs ?몃옖?ㅽ겕由쏀듃 ?몄뒪??而⑦뀒?대꼫
ChatWindow.TranscriptPolicy.cs ?몃옖?ㅽ겕由쏀듃 ?쒖떆 ?뺤콉
ChatWindow.TranscriptRenderExecution.cs ?몃옖?ㅽ겕由쏀듃 ?뚮뜑 ?ㅽ뻾
ChatWindow.TranscriptRenderPlanner.cs ?몃옖?ㅽ겕由쏀듃 ?뚮뜑 怨꾪쉷
ChatWindow.TranscriptRendering.cs ?몃옖?ㅽ겕由쏀듃 ?뚮뜑留?
ChatWindow.TranscriptVirtualization.cs ?몃옖?ㅽ겕由쏀듃 媛€?곹솕 (?€洹쒕え ?€??
ChatWindow.UserAskPresentation.cs ?ъ슜??吏덈Ц ?몃씪??移대뱶
ChatWindow.VisualInteractionHelpers.cs ?쒓컖 ?곹샇?묒슜 ?ы띁

?뚮쭏 ?쒖뒪??

9媛??뚮쭏 XAML 由ъ냼???뺤뀛?덈━: Dark, Light, OLED, Nord, Monokai, Catppuccin, Sepia, Alfred, AlfredLight

?고????뚮쭏 ?꾪솚: SettingsService.Settings.Launcher.Theme 蹂€寃???由ъ냼???뺤뀛?덈━ 援먯껜


7. ?ㅼ젙 援ъ“ (AppSettings)

理쒖긽???ㅼ젙

?띿꽦 湲곕낯媛? ?ㅻ챸
AiEnabled true AI 湲곕뒫 ?쒖꽦??
OperationMode "internal" ?댁쁺 紐⑤뱶 (internal/external)
Hotkey "Alt+Space" ?곗쿂 ?⑥텞??
CleanupPeriodDays 30 ?€??蹂닿? 湲곌컙 (??
InternalModeEnabled true ?щ궡 紐⑤뱶 ?щ?

LauncherSettings (以묒꺽)

洹몃9 二쇱슂 ?띿꽦
?쒖떆 Theme, Opacity, Position, Width, MaxResults
湲€濡쒖슦 EnableRainbowGlow, EnableSelectionGlow, ShowLauncherBorder
?꾩젽 ShowWidgetPerf, ShowWidgetPomo, ShowWidgetNote, ShowWidgetWeather, ShowWidgetCalendar, ShowWidgetBattery
??諛? DockBarItems, DockBarAutoShow, DockBarOpacity, DockBarRainbowGlow
湲곕뒫 EnableFavorites, EnableRecent, EnableActionMode, EnableClipboardAutoCategory

LlmSettings (以묒꺽)

?먯씠?꾪듃??LLM ?곌껐 ?ㅼ젙: ?쒕퉬???좏깮, 紐⑤뜽, API ??(DPAPI ?뷀샇??, ?붾뱶?ъ씤?? ?⑤룄, 理쒕? ?좏겙 ??

?띿꽦 湲곕낯媛? ?ㅻ챸
UseAutomaticProfileTemperature true ?깅줉 紐⑤뜽 ?꾨줈?뚯씪???먮룞 temperature ?뺤콉
EnableDetailedLog false ?뚰겕?뚮줈???곸꽭 濡쒓렇 (LLM ?붿껌/?묐떟, ?꾧뎄 ?대젰)
DetailedLogRetentionDays 3 ?곸꽭 濡쒓렇 蹂닿? 湲곌컙 (??
EnableRawLlmLog false LLM ?붿껌/?묐떟 ?먮Ц 湲곕줉 (?붾쾭源낆슜)

RegisteredModel ?ㅽ뻾 ?꾨줈?뚯씪

紐⑤뜽蹂?ExecutionProfile濡??꾧뎄 ?몄텧 媛뺣룄, ?ъ떆?? 硫붾え由??뺤텞 二쇱엯?됱쓣 議곗젅:

?꾨줈?뚯씪 ?ㅻ챸
balanced 湲곕낯 洹좏삎 紐⑤뱶
tool_call_strict ?꾧뎄 ?몄텧 媛뺤젣/?꾧꺽 紐⑤뱶
reasoning_first 異붾줎 ?곗꽑 紐⑤뱶
fast_readonly 鍮좊Ⅸ ?쎄린 ?꾩슜 紐⑤뱶
document_heavy 臾몄꽌 泥섎━ 吏묒쨷 紐⑤뱶

8. ?뚮윭洹몄씤 ?쒖뒪??

SDK (AxCopilot.SDK)

public interface IActionHandler
{
    string? Prefix { get; }        // ?묐몢??(null?대㈃ ?쇱? 寃€?됰쭔)
    PluginMetadata Metadata { get; }
    Task<IEnumerable<LauncherItem>
## claude-code식 transcript 표시 구조 정리

- 업데이트: 2026-04-09 13:05 (KST)
- AgentTranscriptDisplayCatalog를 row presentation 중심으로 재구성해 	hinking / waiting / compact / tool activity / permission / tool result / status를 개별 transcript row 의미로 다룰  있게 정리했습니다.
- ChatWindow.AgentEventRendering은 process feed 계열 이벤트를 같은 GroupKey 단위로 병합해,  Cowork/Code 실행  append 수를 줄이면서도 주요 활동 흐름이 기본 transcript에 남도록 조정했습니다.
- PermissionRequestPresentationCatalog, ToolResultPresentationCatalog를 다시 정리해 권한 요청과 도구 결과를 행위/상태 기준으로 구분하고, transcript 렌더와 popup이 같은 메타를 공유하도록 맞췄습니다.
- ChatWindow.FooterPresentation은 execution event가 생긴 뒤에는 프리셋 안내 카드를 자동으로 숨기도록 바꿔 결과/진행 화면을 덮지 않게 했고, Cowork/Code 입력 워터마크와 footer 기본 문구도 정상 한국어 기준으로 다시 정리했습니다.
- 
ender_messages 성능 로그에는 processFeedAppends, processFeedMerges, 
owKindCounts를 함께 남겨 %APPDATA%\\AxCopilot\\perf 기준으로 transcript grouping 효과를 수치로 비교할  있게 했습니다.

## 9. 鍮뚮뱶 ??ㅽ뻾

### 媛쒕컻 鍮뚮뱶

```bash
dotnet build src/AxCopilot/AxCopilot.csproj

由대━??鍮뚮뱶 (?⑥씪 ?뚯씪)

dotnet publish src/AxCopilot/AxCopilot.csproj -c Release -r win-x64 --self-contained

由대━??鍮뚮뱶 ?듭뀡:

  • PublishSingleFile: ?⑥씪 ?ㅽ뻾 ?뚯씪
  • EnableCompressionInSingleFile: ?뺤텞 ?곸슜
  • PublishReadyToRun: AOT ?꾨━而댄뙆??- DebugType=none: ?붾쾭洹??щ낵 ?쒓굅
  • TrimMode=partial: IL ?몃━諛?

?뚯뒪??

dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj

10. 踰꾩쟾 愿€由?

  • AxCopilot.csproj??<Version> ?쒓렇 ?섎굹留?蹂€寃쏀븯硫????꾩껜??諛섏쁺
  • ?ㅼ젙 ?ㅽ궎留?踰꾩쟾?€ SettingsService.cs ??CurrentSettingsVersion?먯꽌 蹂꾨룄 愿€由?- 留덉씠洹몃젅?댁뀡: SettingsService媛€ ?댁쟾 踰꾩쟾 ?ㅼ젙 ?뚯씪???먮룞 ?낃렇?덉씠??

11. 蹂댁븞

??ぉ 援ы쁽
API ???€?? DPAPI ?뷀샇??(System.Security.Cryptography.ProtectedData)
??愿€由??꾧뎄 AxKeyEncryptor (蹂꾨룄 ?좏떥由ы떚)
?덊떚 ?ы띁 ?붾쾭嫄??붿뺨?뚯씪??媛먯? (Release 鍮뚮뱶, Security/AntiTamper.cs)
Unsafe 肄붾뱶 AllowUnsafeBlocks=true (ScreenCaptureHandler ?ъ씤???곗궛??

12. ?깅뒫 理쒖쟻???댁뿭

?좏쑕 CPU 理쒖쟻??(2026-04-09)

?€?? 蹂€寃??? 蹂€寃???
PerformanceMonitorService ?대쭅 2珥? 5珥?
?꾩젽 ?€?대㉧ 1珥? 3珥?
?덉씤蹂댁슦 湲€濡쒖슦 ?€?대㉧ 150ms 300ms
ServerStatusService ?? 15珥? 60珥?

?ㅽ듃由щ컢 ?뚮뜑留?理쒖쟻??(2026-04-09)

  • TypingTimer: 50ms ??80ms, string.Concat ??char[] 踰꾪띁 ?ъ궗??- CursorTimer: ?꾩껜 臾몄옄???ъ깮????留덉?留?臾몄옄留?援먯껜
  • StringBuilder.ToString(): 30ms 理쒖냼 媛꾧꺽 ?곕줈?€留?- RenderMessages: ?ㅽ듃由щ컢 以?遺덊븘?뷀븳 ?꾩껜 ?щ젋?붾쭅 諛⑹? (議곌린 諛섑솚)
  • **?€?꾨씪???대깽??*: ?묓엺 紐⑤뱶?먯꽌 ?곗냽 ?숈씪 ToolCall 蹂묓빀

?고????덉젙???섏젙 (2026-04-09)

?뚯씪 ?섏젙 ?댁슜
CsvSkill.cs JSON 諛곗뿴 泥??붿냼 ValueKind 寃€利?異붽?
HtmlSkill.cs gradient Split(',') 寃곌낵 Length >= 2 媛€??異붽?
ChatWindow.xaml.cs ParseGenericAction 鍮?諛곗뿴 媛€?? ShowDropActionMenu null 媛€?? GetAgentLoop .FirstOrDefault() ?꾪솚
ChatWindow.GitBranchPresentation.cs async void ?몃뱾??try/catch 蹂댄샇
ChatWindow.xaml.cs (BtnGitBranch_Click) async void ?몃뱾??try/catch 蹂댄샇

UI ?ㅻ젅??遺€??理쒖쟻??2李?(2026-04-09)

?€?? 蹂€寃??? 蹂€寃??? ?④낵
?ㅽ겕濡??좊땲硫붿씠?? 留ㅻ쾲 ??16ms ?€?대㉧ ?앹꽦 ?ъ궗??32ms ?€?대㉧ 1媛? GC ?뺣젰 + ?€?대㉧ ?꾩쟻 ?댁냼
?ъ씠?쒕컮 ?좊땲硫붿씠?? 留ㅻ쾲 ??10ms ?€?대㉧ ?앹꽦 ?ъ궗??32ms ?€?대㉧ 1媛? ?숈씪
Git 釉뚮옖移?UI Dispatcher.Invoke (釉붾줈?? Dispatcher.InvokeAsync (?쇰툝濡쒗궧) UI ?ㅻ젅??李⑤떒 ?댁냼
?좏겙 ?ъ슜???? 留?250ms PathGeometry ?ъ깮?? 1% 誘몃쭔 蹂€?????뚮뜑留??앸왂 遺덊븘?뷀븳 ?덉씠?꾩썐 ?곗궛 ?쒓굅
?€??寃€???€?대㉧ 140ms 300ms 珥덈떦 7????3??
?먯씠?꾪듃 ?대깽???€?대㉧ 140ms (?ㅽ듃由щ컢: 300/420) 200ms (?ㅽ듃由щ컢: 350/500) ?대깽??泥섎━ 鍮덈룄 ?꾪솕
諛섏쓳???덉씠?꾩썐 ?€?대㉧ 120ms 250ms 由ъ궗?댁쫰 ?붾컮?댁뒪 媛뺥솕
?€??紐⑸줉 LINQ Where횞2 + Count횞3 = 由ъ뒪??5???쒗쉶 Where 1??蹂묓빀 + ?⑥씪 猷⑦봽 移댁슫?? ?좊떦/?쒗쉶 ?€??媛먯냼

援ъ“??硫붾え由??덉젙???섏젙 (2026-04-09)

臾몄젣 ?꾩튂 ?섏젙
Events 而щ젆??臾댄븳 ?깆옣 AgentLoopService.cs 500媛?珥덇낵 ???ㅻ옒???대깽???먮룞 ?쒓굅
?뚯씪 釉뚮씪?곗? ?€?대㉧ 醫€鍮? ChatWindow.FileBrowserPresentation.cs 留ㅻ쾲 ???€?대㉧ ?앹꽦 ???ъ궗???⑦꽩
?섎━癒쇳듃 罹먯떆 誘몄젙由? ChatWindow.TranscriptVirtualization.cs 蹂댁쑀 ?쒕룄 240??20, 1.5諛?珥덇낵 ???뺣━
WorkflowAnalyzer UI 釉붾줈?? WorkflowAnalyzerWindow.xaml.cs Dispatcher.Invoke ??InvokeAsync

援ъ“??由ы뙥?좊쭅 P1 (2026-04-09)

?€?? ?뚯씪 蹂€寃?
?명겕由щ찘???뚮뜑 hiddenCount ?덉젙?? ChatWindow.TranscriptRenderPlanner.cs ?ㅽ듃由щ컢 以?hiddenCount 媛먯냼 李⑤떒 ??prefix ??遺덉씪移섎줈 ?명븳 ?꾩껜 ?щ퉴???대갚 諛⑹?
鍮꾧????뚮뜑 李⑤떒 ChatWindow.TranscriptRendering.cs 理쒖냼???④? ?곹깭?먯꽌 RenderMessages 利됱떆 諛섑솚 ??遺덊븘?뷀븳 UI ?ш뎄異??쒓굅
ConversationList ?대깽???꾩엫 ChatWindow.ConversationListPresentation.cs ??ぉ??5媛??뚮떎 ?몃뱾????ConversationPanel???⑥씪 ?꾩엫 ?몃뱾??(Tag 湲곕컲 遺꾧린). ???꾪솚 ??250媛??몃뱾???꾩쟻 ?댁냼
TopicPreset ?대깽???꾩엫 ChatWindow.TopicPresetPresentation.cs 移대뱶??3媛??뚮떎 ?몃뱾????TopicButtonPanel???⑥씪 ?꾩엫 ?몃뱾?? ???꾪솚 ??45媛??몃뱾???꾩쟻 ?댁냼
怨듯넻 VisualTree ?ы띁 ChatWindow.VisualInteractionHelpers.cs FindAncestorWithTag<T>, FindAncestor<T> ?좏떥 異붽?

援ъ“??由ы뙥?좊쭅 P2 (2026-04-09)

?€?? ?뚯씪 蹂€寃?
_agentLiveContainer ?명겕由щ찘???덉슜 TranscriptRenderPlanner.cs, TranscriptRenderExecution.cs ?쇱씠釉?而⑦뀒?대꼫瑜?expectedChildCount???ы븿, ?명겕由щ찘?????꾩떆 遺꾨━/?ъ궫????hasExternalChildren 李⑤떒 ?댁냼
?ㅽ듃由щ컢 append-only ?뚮뜑 TranscriptRenderExecution.cs, TranscriptRendering.cs prefix 鍮꾧탳 ?고쉶?섎뒗 TryApplyStreamingAppendRender 異붽? ??stable ??遺€遺꾩쭛??愿€怨꾨쭔 ?뺤씤, ????ぉ留?異붽?
Permission ?대깽???꾩엫 ChatWindow.PermissionPresentation.cs ?됰떦 4媛??뚮떎 ??PermissionItems???⑥씪 ?꾩엫 ?몃뱾??+ PermissionItemTag
Preview ???대깽???꾩엫 ChatWindow.PreviewPresentation.cs ??떦 7媛??뚮떎 ??PreviewTabPanel???⑥씪 ?꾩엫 ?몃뱾??+ PreviewTabTag
GitBranch ?대깽???꾩엫 ChatWindow.GitBranchPresentation.cs, SelectionPopupPresentation.cs CreateFlatPopupRow/CreatePopupMenuRow ?됱쓽 ?뚮떎 ??GitBranchItems???⑥씪 ?꾩엫 + PopupRowTag

援ъ“??由ы뙥?좊쭅 P3 (2026-04-09)

?€?? ?뚯씪 蹂€寃?
FileBrowser 紐낆떆???댁젣 ChatWindow.FileBrowserPresentation.cs TreeViewItem ?뚮떎?믩챸紐?硫붿꽌??FileTreeItem_Expanded/DoubleClick/RightClick) ?꾪솚. BuildFileTree() ??DetachFileTreeHandlers() ?ш? ?몄텧濡?Clear ???몃뱾???댁젣. ?몃━ ?ш뎄異뺣떦 300媛??몃뱾???꾩쟻 ?댁냼

claude-code식 transcript 표시 구조 정리

  • 업데이트: 2026-04-09 13:05 (KST)
  • AgentTranscriptDisplayCatalog를 row presentation 중심으로 재구성해 hinking / waiting / compact / tool activity / permission / tool result / status를 개별 transcript row 의미로 다룰 수 있게 정리했습니다.
  • ChatWindow.AgentEventRendering은 process feed 계열 이벤트를 같은 GroupKey 단위로 병합해, 긴 Cowork/Code 실행 중 append 수를 줄이면서도 주요 활동 흐름이 기본 transcript에 남도록 조정했습니다.
  • PermissionRequestPresentationCatalog, ToolResultPresentationCatalog를 다시 정리해 권한 요청과 도구 결과를 행위/상태 기준으로 구분하고, transcript 렌더와 popup이 같은 메타를 공유하도록 맞췄습니다.
  • ChatWindow.FooterPresentation은 execution event가 생긴 뒤에는 프리셋 안내 카드를 자동으로 숨기도록 바꿔 결과/진행 화면을 덮지 않게 했고, Cowork/Code 입력 워터마크와 footer 기본 문구도 정상 한국어 기준으로 다시 정리했습니다.

ender_messages 성능 로그에는 processFeedAppends, processFeedMerges, owKindCounts를 함께 남겨 %APPDATA%\AxCopilot\perf 기준으로 transcript grouping 효과를 수치로 비교할 수 있게 했습니다.

13. ?붾젆?좊━蹂?媛€?대뱶

?붾젆?좊━ ?섏젙 ??二쇱쓽?ы빆
Core/ FuzzyEngine ?먯닔 怨듭떇 蹂€寃???寃€???덉쭏??吏곸젒 ?곹뼢
Handlers/ ???몃뱾??異붽? ??App.xaml.cs???깅줉 ?꾩슂
Services/Agent/ ???꾧뎄 異붽? ??ToolRegistry???깅줉 + ?ㅽ궗 ?뚯씪(.skill.md) ?묒꽦
Themes/ 由ъ냼????蹂€寃???紐⑤뱺 ?뚮쭏???숈씪?섍쾶 ?곸슜 ?꾩슂
Models/AppSettings.cs ?띿꽦 異붽? ??SettingsService 留덉씠洹몃젅?댁뀡 怨좊젮
Views/ChatWindow.* partial class 遺꾪븷 ??愿€??湲곕뒫?€ ?대떦 ?뚯씪?먯꽌 ?섏젙

14. 愿€??臾몄꽌

臾몄꽌 ?댁슜
docs/AGENT_ROADMAP.md ?먯씠?꾪듃 湲곕뒫 濡쒕뱶留?
docs/LAUNCHER_ROADMAP.md ?곗쿂 湲곕뒫 濡쒕뱶留?
docs/CLAW_CODE_PARITY_PLAN.md Claude Code 湲곕뒫 ?€??怨꾪쉷
docs/TOOL_PARITY_REPORT.md ?꾧뎄 ?명솚??由ы룷??
docs/AX_AGENT_UI_CHECKLIST.md ?먯씠?꾪듃 UI 泥댄겕由ъ뒪??
docs/UI_UX_CHECKLIST.md UI/UX 泥댄겕由ъ뒪??

?좏깮???먯깋 援ъ“ 媛쒖꽑 (2026-04-09 10:36 KST)

  • claude-code??Glob/Grep/FileRead ?꾨\?꾪듃?€ toolOrchestration.ts ?먮쫫???ㅼ떆 ?€議고븳 寃곌낵, AX??folder_map???덈Т ?쎄쾶 癒쇱? ?몄텧?섎룄濡??좊룄?섎뒗 洹쒖튃 ?뚮Ц??吏덈Ц怨?臾닿????꾩껜 ?뚰겕?ㅽ럹?댁뒪瑜??묐뒗 寃쏀뼢???덉뿀?듬땲??
  • src/AxCopilot/Views/ChatWindow.xaml.cs
    • Cowork/Code ?쒖뒪???꾨\?꾪듃?먯꽌 folder_map????긽 泥??④퀎濡??붽뎄?섎뜕 臾멸뎄瑜??꾪솕?덉뒿?덈떎.
    • 醫곸? 踰붿쐞??吏덈Ц?€ glob/grep + targeted file_read瑜??곗꽑?섍퀬, ?€?μ냼 ?꾩껜 援ъ“媛€ ?뺣쭚 ?꾩슂???뚮쭔 folder_map???곕룄濡?諛붽엥?듬땲??
  • src/AxCopilot/Services/Agent/FolderMapTool.cs
    • 湲곕낯 ?먯깋 depth瑜?`3 -

claude-code식 transcript 표시 구조 정리

  • 업데이트: 2026-04-09 13:05 (KST)
  • AgentTranscriptDisplayCatalog를 row presentation 중심으로 재구성해 hinking / waiting / compact / tool activity / permission / tool result / status를 개별 transcript row 의미로 다룰 수 있게 정리했습니다.
  • ChatWindow.AgentEventRendering은 process feed 계열 이벤트를 같은 GroupKey 단위로 병합해, 긴 Cowork/Code 실행 중 append 수를 줄이면서도 주요 활동 흐름이 기본 transcript에 남도록 조정했습니다.
  • PermissionRequestPresentationCatalog, ToolResultPresentationCatalog를 다시 정리해 권한 요청과 도구 결과를 행위/상태 기준으로 구분하고, transcript 렌더와 popup이 같은 메타를 공유하도록 맞췄습니다.
  • ChatWindow.FooterPresentation은 execution event가 생긴 뒤에는 프리셋 안내 카드를 자동으로 숨기도록 바꿔 결과/진행 화면을 덮지 않게 했고, Cowork/Code 입력 워터마크와 footer 기본 문구도 정상 한국어 기준으로 다시 정리했습니다.

ender_messages 성능 로그에는 processFeedAppends, processFeedMerges, owKindCounts를 함께 남겨 %APPDATA%\AxCopilot\perf 기준으로 transcript grouping 효과를 수치로 비교할 수 있게 했습니다.

transcript row 怨꾩빟 諛?activity grouping ?뺣━ (2026-04-09 11:12 KST)

  • claude-code??Messages.tsx, MessageRow.tsx, GroupedToolUseContent.tsx, UserToolResultMessage, PermissionRequest瑜??ㅼ떆 ?€議고빐 AX transcript瑜?row ?€??以묒떖?쇰줈 ?뺣━?덉뒿?덈떎.
  • src/AxCopilot/Services/Agent/AgentTranscriptDisplayCatalog.cs
    • TranscriptRowKind, AgentTranscriptRowPresentation??異붽??덉뒿?덈떎.
    • thinking / waiting / compact / tool activity / permission / tool result / status瑜??섎굹??移댄깉濡쒓렇?먯꽌 ?뺢퇋?뷀븯?꾨줉 諛붽엥?듬땲??
    • process feed row??GroupKey, CanGroup, Emphasize 硫뷀?瑜??④퍡 怨꾩궛???뚮뜑?ш? 怨좊퉰???대깽?몃? ???곸? ?됱쑝濡?臾띠쓣 ???덇쾶 ?덉뒿?덈떎.
  • src/AxCopilot/Views/ChatWindow.AgentEventRendering.cs
    • process feed ?뚮뜑媛€ row presentation??吏곸젒 諛쏆븘 ?쒕ぉ/?ㅻ챸/媛뺤“ ?щ?瑜?援ъ꽦?섎룄濡?諛붽엥?듬땲??
    • 媛숈? 醫낅쪟??read/search/step ?대깽?몃뒗 留덉?留?grouped row瑜?援먯껜?섎뒗 諛⑹떇?쇰줈 merge?섏뿬 append ?섎? 以꾩??듬땲??
    • permission/result card??row 硫뷀??€ presentation catalog瑜???吏곸젒?곸쑝濡??ъ슜?섎룄濡??곌껐?덉뒿?덈떎.
  • src/AxCopilot/Services/Agent/ToolResultPresentationCatalog.cs
    • ?깃났/?ㅽ뙣/嫄곕?/痍⑥냼/?뱀씤 ?꾩슂/遺€遺??꾨즺瑜?clean??硫뷀? 援ъ“濡??ㅼ떆 ?뺣━?덉뒿?덈떎.
  • src/AxCopilot/Services/Agent/PermissionRequestPresentationCatalog.cs
    • bash / powershell / command / web / mcp / skill / ask / file edit / file write / git / document / filesystem???됱쐞蹂?沅뚰븳 移대뱶 硫뷀?濡??ъ젙?섑뻽?듬땲??
  • src/AxCopilot/Views/ChatWindow.TranscriptHost.cs
    • transcript 珥덇린????grouped process feed ?곹깭?€ 移댁슫?곕룄 ?④퍡 由ъ뀑?섎룄濡?蹂닿컯?덉뒿?덈떎.
  • src/AxCopilot/Views/ChatWindow.TranscriptRendering.cs
    • performance log detail??processFeedAppends, processFeedMerges瑜?異붽???grouped activity row???④낵瑜??ㅼ궗??濡쒓렇?먯꽌 ?뺤씤?????덇쾶 ?덉뒿?덈떎.