Some checks failed
Release Gate / gate (push) Has been cancelled
- Cowork와 Code 하단 바에 워크스페이스 진입 칩을 공통 추가해 작업 위치 전환 흐름을 먼저 보이도록 정리함 - 워크스페이스 검색 패널 상단에 현재·최근·전체 요약 strip을 넣어 현재 선택과 탐색 범위를 즉시 파악할 수 있게 보강함 - README.md와 docs/DEVELOPMENT.md에 2026-04-05 00:43 (KST) 기준 이력을 반영함 - 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ / 경고 0 / 오류 0
434 lines
36 KiB
Markdown
434 lines
36 KiB
Markdown
# AX Commander
|
|
|
|
Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
|
|
|
> Alfred (macOS)에서 영감을 받아 Windows 환경에 최적화된 키보드 중심 생산성 도구입니다.
|
|
|
|
개발 참고: Claw Code 동등성 작업 추적 문서
|
|
`docs/claw-code-parity-plan.md`
|
|
|
|
|
|
- 업데이트: 2026-04-05 00:43 (KST)
|
|
- Cowork/Code 하단 바에 `워크스페이스` 진입 칩을 공통으로 추가해, 작업 위치 전환을 파일/워크트리보다 먼저 찾을 수 있게 정리했습니다.
|
|
- 워크스페이스 검색 패널 상단에는 `현재 / 최근 / 전체` 요약 strip을 넣어 현재 선택과 탐색 범위를 한눈에 보이게 보강했습니다.
|
|
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
|
|
|
- 업데이트: 2026-04-05 00:34 (KST)
|
|
- AX Agent 하단 컨텍스트 카드에 현재 서비스·모델 기준 오늘 사용량을 함께 표시하고, hover에는 현재 모델의 일반 사용량·compact 이후 사용량·오늘 상위 모델 사용량까지 보이도록 보강했습니다.
|
|
- 큰 수 토큰 집계는 `K/M` 단위까지 같은 카드 안에서 일관되게 읽히도록 long 전용 포맷 경로를 추가했습니다.
|
|
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
|
|
|
- 업데이트: 2026-04-05 00:17 (KST)
|
|
- AX Agent 루프도 `claw-code`의 post-autocompact turn tracking 흐름을 참고해 compact 직후 턴을 별도 상태로 추적하도록 보강했습니다. 이제 compact 직후 첫 턴은 저노이즈 compact pill 중심으로 보이고, 불필요한 `LLM 요청 중`류 Thinking 로그는 자동으로 줄입니다.
|
|
- 개발자용 전체 통계에는 compact 직후 자동 축약된 Thinking 로그 건수도 함께 표시해, compact 이후 루프가 실제로 얼마나 조용해졌는지 바로 확인할 수 있게 했습니다.
|
|
- compact 직후 첫 턴의 `process/build_run/test_loop/git/http` 계열 도구 결과는 head/tail 중심의 post-compaction 요약으로 더 짧게 전달해, 압축 직후 문맥이 다시 길어지는 현상을 줄였습니다.
|
|
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
|
|
|
- 업데이트: 2026-04-04 23:47 (KST)
|
|
- AX Agent 컨텍스트 압축 경로에 `session memory compact`, `microcompact`, `collapse/snip` 단계를 추가해 오래된 요약·실행 로그·도구 결과를 LLM 요약 전에 더 세밀하게 줄이도록 보강했습니다.
|
|
- 현재 대화 기준 compact 누적 회수, 자동/수동 비중, 절감 토큰, session memory 적용 횟수, microcompact/snipped 메시지 수를 하단 컨텍스트 카드 hover에서 함께 확인할 수 있게 했습니다.
|
|
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
|
- compact 직후 첫 응답을 별도로 추적하는 post-compaction 흐름을 추가해, 압축 다음 턴의 응답 횟수와 사용 토큰을 현재 대화 기준으로 누적 집계하도록 보강했습니다.
|
|
- AX Agent 하단 컨텍스트 카드 hover에는 이제 `compact 후 첫 응답 대기 중`, `compact 이후 응답 수`, `compact 이후 사용 토큰`까지 함께 표시됩니다.
|
|
- 업데이트: 2026-04-05 00:01 (KST)
|
|
- 일별 사용 통계에 `service:model` 기준 토큰 집계를 추가해 일반 사용량과 compact 이후 사용량을 모델 단위로 나눠 기록하도록 보강했습니다.
|
|
- `microcompact_boundary`, `session_memory_compaction`, `collapsed_boundary` 메시지는 일반 AI 답변과 다른 전용 압축 카드로 렌더링하고, compact 관련 실행 로그는 얇은 compact pill로 분리해 노이즈를 줄였습니다.
|
|
|
|
|
|
- 업데이트: 2026-04-04 23:32 (KST)
|
|
- AX Agent 컨텍스트 압축 경로에 `microcompact` 성격의 선행 경량 압축 단계를 추가해, 오래된 실행 로그·도구 결과·긴 메시지를 먼저 경계 요약으로 줄인 뒤 LLM 요약 단계로 넘기도록 보강했습니다.
|
|
- 수동 `/compact`와 자동 압축이 같은 `ContextCondenser` 3단계 흐름(도구 결과 축약 → microcompact → 이전 대화 요약)을 사용하도록 정리해 긴 세션에서 불필요한 토큰 사용을 더 줄이기 시작했습니다.
|
|
- 검증 예정: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\`
|
|
|
|
- 업데이트: 2026-04-04 23:14 (KST)
|
|
- 트레이 아이콘 우클릭 메뉴 상단에 `AX Copilot v.0.7.3` 버전 헤더를 추가하고, 좌클릭 시에는 런처보다 AX Agent를 우선 열도록 정리했습니다. AI 기능이 꺼져 있을 때만 기존처럼 런처를 열도록 유지했습니다.
|
|
- Enter/전송 버튼/슬래시 명령의 DraftQueue kind 분류를 다시 정리해 일반 입력은 `message`, 슬래시 입력은 `command`, 조정 입력은 `steering`, 직접 실행 요청은 `direct`로 더 자연스럽게 나뉘도록 보강했습니다.
|
|
- 메인 설정 저장 완료 시 열려 있는 AX Agent 창이 테마/권한/데이터 활용/모델 라벨/하단 바를 즉시 다시 읽어오도록 fan-out 경로를 추가해 설정과 실제 실행 화면의 어긋남을 줄였습니다.
|
|
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
|
|
|
---
|
|
|
|
## 주요 기능 (프리픽스 치트시트)
|
|
|
|
| 프리픽스 | 기능 | 예시 |
|
|
|----------|------|------|
|
|
| *(없음)* | 앱·파일 퍼지 검색 + 앱 단축키 | `vscode`, `크롬`, `ㅅㄷ` (초성) |
|
|
| `=` | **계산기** — 수식 즉시 계산, Enter로 결과 복사 | `= sqrt(16)`, `= 2^10`, `= sin(30)` |
|
|
| `/` | **시스템 명령** — 잠금·절전·재시작·종료 | `/lock`, `/sleep`, `/shutdown` |
|
|
| `;` | **텍스트 스니펫** — 키워드로 저장된 텍스트 붙여넣기 | `;addr`, `;sig` |
|
|
| `#` | **클립보드 히스토리** — 복사 이력 검색 & 재사용 | `# hello`, `#` |
|
|
| `@` | URL 단축키 | `@gh` → GitHub 열기 |
|
|
| `~` | 폴더 단축키 | `~dl` → Downloads 폴더 |
|
|
| `>` | 명령 실행 / 배치 단축키 | `>git status` |
|
|
| `$` | 클립보드 텍스트 변환 (12종) | `$json`, `$b64e`, `$upper`, `$ts` |
|
|
| `!` | 워크스페이스 저장·복원 | `!save work`, `!restore work` |
|
|
|
|
### Alfred 대비 기능 현황
|
|
|
|
| 기능 | Alfred | AX Commander |
|
|
|------|--------|-----------------|
|
|
| 앱 퍼지 검색 | ✅ | ✅ |
|
|
| 한국어 초성 검색 | ❌ | ✅ |
|
|
| 파일 검색 | ✅ | ✅ (exe/lnk/bat/ps1) |
|
|
| 계산기 | ✅ | ✅ `=` 프리픽스 |
|
|
| 시스템 명령 | ✅ | ✅ `/` 프리픽스 (7가지) |
|
|
| 텍스트 스니펫 | ✅ | ✅ `;` 프리픽스 + 변수 치환 |
|
|
| 클립보드 히스토리 | ✅ | ✅ `#` 프리픽스 |
|
|
| 클립보드 변환 | ❌ | ✅ `$` 프리픽스 (12종) |
|
|
| URL 단축키 | ✅ | ✅ `@` 프리픽스 |
|
|
| 폴더 단축키 | ✅ | ✅ `~` 프리픽스 |
|
|
| 터미널 명령 | ✅ | ✅ `>` 프리픽스 |
|
|
| 워크스페이스 관리 | ❌ | ✅ `!` 프리픽스 |
|
|
| 플러그인 SDK | ✅ | ✅ (`IActionHandler`) |
|
|
| HTTP API 스킬 | ✅ | ✅ (`.skill.json`) |
|
|
| 테마 커스터마이징 | ❌ | ✅ (7종 프리셋 + 완전 커스텀) |
|
|
| 설정 UI | ✅ | ✅ (7탭 전체 GUI 설정) |
|
|
|
|
|
|
---
|
|
|
|
## 설치 및 빌드
|
|
|
|
### 요구 사항
|
|
|
|
- **OS**: Windows 10 20H2 이상 (Windows 11 권장)
|
|
- **.NET**: 8.0 Runtime (Self-contained 빌드 시 불필요)
|
|
|
|
### 빌드
|
|
|
|
```bash
|
|
# 소스 클론
|
|
git clone https://github.com/your/oledic.git
|
|
cd "oledic/AX Commander"
|
|
|
|
# 개발 실행
|
|
dotnet run --project src/AxCommander
|
|
|
|
# Release 단일 파일 빌드 (self-contained)
|
|
dotnet publish src/AxCommander -c Release -r win-x64 --self-contained
|
|
```
|
|
|
|
### 릴리즈 게이트 실행
|
|
|
|
릴리즈 전에는 아래 스크립트로 빌드/패리티/리플레이/전체 테스트를 일괄 검증합니다.
|
|
|
|
```powershell
|
|
powershell -ExecutionPolicy Bypass -File .\scripts\release-gate.ps1
|
|
```
|
|
|
|
빠른 점검만 필요할 때는 전체 테스트를 생략할 수 있습니다.
|
|
|
|
```powershell
|
|
powershell -ExecutionPolicy Bypass -File .\scripts\release-gate.ps1 -SkipFullTest
|
|
```
|
|
|
|
### 데이터 경로
|
|
|
|
| 용도 | 경로 |
|
|
|------|------|
|
|
| 설정 파일 | `%APPDATA%\AxCommander\settings.json` |
|
|
| 로그 | `%APPDATA%\AxCommander\logs\app-YYYY-MM-DD.log` |
|
|
| 스킬 파일 | `%APPDATA%\AxCommander\skills\*.skill.json` |
|
|
| 크래시 덤프 | `%APPDATA%\AxCommander\crashes\` |
|
|
|
|
|
|
---
|
|
|
|
## 사용법
|
|
|
|
### 키보드 단축키
|
|
|
|
| 동작 | 단축키 |
|
|
|------|--------|
|
|
| 런처 열기 / 닫기 | `Alt+Space` |
|
|
| 설정 열기 | `Ctrl+,` |
|
|
| 다음 항목 선택 | `↓` |
|
|
| 이전 항목 선택 | `↑` |
|
|
| 실행 | `Enter` |
|
|
| 자동완성 (선택 항목 제목 채우기) | `Tab` |
|
|
| 닫기 | `Esc` |
|
|
|
|
### 계산기 예시
|
|
|
|
```
|
|
= 1 + 2 * 3 → 7
|
|
= sqrt(144) → 12
|
|
= 2^10 → 1024
|
|
= sin(30) → 0.5 (도 단위)
|
|
= log(1000) → 3
|
|
= pi * 5^2 → 78.5398...
|
|
= 0xFF + 16 → 271
|
|
= round(3.14159, 2) → 3.14
|
|
```
|
|
|
|
### 스니펫 변수
|
|
|
|
스니펫 내용에서 아래 변수를 사용할 수 있습니다:
|
|
|
|
| 변수 | 치환 값 | 예시 |
|
|
|------|---------|------|
|
|
| `{date}` | 오늘 날짜 | `2026-03-23` |
|
|
| `{time}` | 현재 시각 | `14:30:00` |
|
|
| `{datetime}` | 날짜+시각 | `2026-03-23 14:30:00` |
|
|
| `{year}` | 연도 | `2026` |
|
|
| `{month}` | 월 (2자리) | `03` |
|
|
| `{day}` | 일 (2자리) | `23` |
|
|
|
|
|
|
---
|
|
|
|
## 플러그인 개발
|
|
|
|
### DLL 플러그인
|
|
|
|
`AxCommander.SDK`를 참조하여 `IActionHandler` 인터페이스를 구현합니다.
|
|
|
|
```csharp
|
|
using AxCommander.SDK;
|
|
|
|
public class MyHandler : IActionHandler
|
|
{
|
|
public string? Prefix => "?"; // 트리거 프리픽스 (null이면 prefix 없는 핸들러)
|
|
public PluginMetadata Metadata => new("MyPlugin", "설명", Version: "1.0");
|
|
|
|
public async Task<IEnumerable<LauncherItem>> GetItemsAsync(string query, CancellationToken ct)
|
|
{
|
|
return [ new LauncherItem("제목", "부제목", null, myData, Symbol: "\uE721") ];
|
|
}
|
|
|
|
public Task ExecuteAsync(LauncherItem item, CancellationToken ct)
|
|
{
|
|
// item.Data로 전달한 데이터를 꺼내 실행 로직 작성
|
|
return Task.CompletedTask;
|
|
}
|
|
}
|
|
```
|
|
|
|
빌드한 DLL 경로를 `settings.json`의 `plugins` 배열에 추가:
|
|
|
|
```json
|
|
{
|
|
"plugins": [
|
|
{ "path": "C:\\MyPlugins\\MyPlugin.dll", "enabled": true }
|
|
]
|
|
}
|
|
```
|
|
|
|
### JSON 스킬 (코드 없이 HTTP API 연동)
|
|
|
|
`%APPDATA%\AxCommander\skills\` 에 `.skill.json` 파일을 놓으면 됩니다.
|
|
|
|
```json
|
|
{
|
|
"id": "github-search",
|
|
"name": "GitHub 검색",
|
|
"prefix": "@gh",
|
|
"credential": { "type": "bearer_token", "credentialKey": "github_token" },
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://api.github.com/search/repositories?q={{INPUT}}&per_page=10"
|
|
},
|
|
"response": {
|
|
"resultsPath": "items",
|
|
"titleField": "full_name",
|
|
"subtitleField": "description",
|
|
"actionUrl": "html_url"
|
|
},
|
|
"cache": 30
|
|
}
|
|
```
|
|
|
|
|
|
---
|
|
|
|
## 테마
|
|
|
|
7가지 내장 테마와 완전 커스텀 테마를 지원합니다.
|
|
|
|
| 테마 | 특징 |
|
|
|------|------|
|
|
| `system` | Windows 다크/라이트 모드 자동 감지 |
|
|
| `dark` | 딥 네이비 다크 (기본) |
|
|
| `light` | 클린 화이트 라이트 |
|
|
| `oled` | 순수 블랙 (OLED 절전) |
|
|
| `nord` | Arctic 컬러 팔레트 |
|
|
| `monokai` | Sublime Text 스타일 |
|
|
| `catppuccin` | Mocha 따뜻한 파스텔 |
|
|
| `sepia` | 황갈색 아날로그 감성 |
|
|
| `custom` | 14개 색상 완전 커스터마이징 |
|
|
|
|
설정 UI(`Ctrl+,` → 테마 탭)에서 클릭 한 번으로 즉시 미리보기 적용.
|
|
|
|
|
|
---
|
|
|
|
## 변경 이력
|
|
|
|
### v0.7.3 — AX Agent 권한 코어 재구성 + 입력 계층 정리
|
|
|
|
업데이트: 2026-04-04 16:24 (KST)
|
|
|
|
| 분류 | 내용 |
|
|
|------|------|
|
|
| 권한 코어 재구성 | `Default → AcceptEdits → Plan → BypassPermissions → DontAsk → Deny` 체계로 정규화하고, 기존 `Ask/Auto` 값은 호환 alias로 유지 |
|
|
| 규칙 해석 순서 정리 | 권한 판정을 `deny 규칙 → allow/override 규칙 → 글로벌 모드 → 기본 Ask` 순서로 재구성 |
|
|
| 도구 권한 클래스 분리 | `file_write/file_edit/file_manage`와 `process/build_run/test_loop/snippet_runner/spawn_agent` 계열을 분리해 `AcceptEdits`와 `Plan`의 실제 동작 차이를 반영 |
|
|
| AX Agent 권한 UI 반영 | 권한 팝업, 상단 배너, slash 명령 결과가 새 권한 모드 의미를 표시하도록 정리 |
|
|
| AX Agent 설정창 복구 | `AgentSettingsWindow`의 깨진 한글 문자열을 정리하고 운영 모드, 계획 모드, 추론 강도, 폴더 데이터 활용 라벨을 현재 AX 표현 체계로 복구 |
|
|
| 권한 용어 통일 | 권한 팝업과 인라인 설정에서 `계획 중심`, `완전 자동`, `질문 없이 진행` 등 한국어 표기를 일관되게 사용하도록 정리 |
|
|
| 권한 UI·로직 결합 정리 | `claw-code` 권한 팝업 흐름에 맞춰 코어 4개(`권한 요청/편집 자동 승인/계획 모드/권한 건너뛰기`)를 기본 선택 순서로 정렬하고, 토글 순환도 동일 축으로 단순화 |
|
|
| 슬래시 팔레트 단순화 | `/` 팝업의 기본 선택을 첫 항목으로 바꾸고, 즐겨찾기 버튼/배지 UI를 제거해 `아이콘+명령+설명` 중심의 단순 리스트 탐색으로 정리 |
|
|
| 컴포저 패널 축소 | 하단 인라인 설정을 `Fast/추론/계획/권한` 중심으로 축소하고, 스킬/브라우저/MCP 버튼은 숨겨 입력 중심 UX로 정리 |
|
|
| 모델/프리셋 바 컴팩트화 | 입력창 상단 바를 더 촘촘한 크기로 정리하고, 긴 모델명은 자동 말줄임 처리해 레이아웃이 흔들리지 않도록 보강 |
|
|
| 좌측 패널 타이포 정돈 | 사이드바 헤더/메뉴/대화 리스트의 폰트 크기와 여백을 줄여 밀도를 맞추고, 대화 카드 제목·시간·상태 배지의 크기를 통일해 시인성을 개선 |
|
|
| 메시지 버블 정돈 | 사용자/어시스턴트 버블의 여백·폰트·타임스탬프·액션 버튼 크기를 줄이고 좌우 마진을 대칭화해 대화 로그 가독성과 정렬감을 개선 |
|
|
| 에이전트 이벤트 표시방식 정리 | 실행 배너의 과도한 펼침 UI를 제거하고 요약 길이를 제한해 한눈에 상태를 읽도록 단순화, 권한/계획/실행 라벨을 한국어 기준으로 통일 |
|
|
| 도구 결과 카드 단순화 | 파일 경로 배너를 `파일명 + 디렉터리` 2단 구조로 정리하고, 빠른 작업 버튼을 아이콘 전용(프리뷰/열기/폴더/복사)으로 축소해 시각적 복잡도를 낮춤 |
|
|
| 작업 요약 팝업 정돈 | 팝업 헤더/필터 밀도를 낮추고 `전체·권한·대기·도구·서브·훅` 중심으로 재정렬해 스크롤 시 탐색 피로를 줄임 |
|
|
| 권한 이력 카드 재구성 | 권한 카드/이력을 `현재 모드·설명·기본/예외` + `시간·도구·결과` 구조로 단순화하고, 권한 액션 버튼도 최신 용어(`활용하지 않음/권한 요청/편집 자동 승인/계획 모드/권한 건너뛰기`)로 통일 |
|
|
| 최근 실행 카드 압축 | `최근 에이전트 실행` 카드에서 상세 로그/파일 나열과 분기 액션을 줄이고 `요약+카운트+타임라인` 중심으로 정리해 표시 밀도와 스캔 속도를 개선 |
|
|
| 작업 카드 버튼 스타일 통일 | 작업 요약/권한/훅/백그라운드 카드 버튼을 공통 생성 함수로 통일해 패딩·폰트·테두리·색상 톤을 일관화하고 카드 간 버튼 밀도 차이를 제거 |
|
|
| 카드 타이포 계층 정렬 | 작업/훅/백그라운드 카드의 제목·본문 글자 크기와 굵기를 통일하고 `PrimaryText/SecondaryText` 기반으로 대비를 맞춰 카드 간 시각 리듬을 정리 |
|
|
| 카드 아이콘 규칙 통일 | 작업 종류별 아이콘/색을 공통 매핑으로 통일하고, 작업·훅·백그라운드 카드 헤더에 아이콘을 배치해 상태 인지가 한눈에 되도록 정리 |
|
|
| 권한 팝업 선택 강조 개선 | 권한 모드 리스트에서 활성 항목에 배경/테두리/체크 아이콘을 적용하고 설명 줄간격·아이콘 정렬을 조정해 선택 상태와 읽기 흐름을 명확화 |
|
|
| 권한 예외/거부 영역 압축 | 권한 팝업의 `도구별 예외`와 `최근 권한 거부` 블록을 아이콘 헤더+간결 라벨 체계로 정리하고 버튼 명칭을 권한 용어(`권한 요청/편집 자동 승인/활용하지 않음/예외 해제`)로 통일 |
|
|
| 권한 팝업 섹션 접힘/펼침 | 기본 화면은 `핵심 권한 모드`만 노출하고 `현재 권한 요약/도구별 예외/최근 권한 거부/고급 모드`는 접힘 섹션으로 전환해 codex/claude식 간결 흐름으로 정리 |
|
|
| 권한 팝업 섹션 상태 기억 | 접힘 섹션의 마지막 펼침 상태를 `settings.dat`에 저장해 팝업 재오픈 시 사용자 마지막 선택을 복원 |
|
|
| 슬래시 팔레트 그룹 상태 기억 | `/` 팔레트에 `명령/스킬` 접힘 헤더를 추가하고 마지막 펼침 상태를 저장해 재오픈 시 복원, Up/Down 이동도 펼쳐진 그룹 항목만 순회하도록 보정 |
|
|
| 슬래시 최근 사용 상단 고정 | `/` 팔레트의 `명령/스킬` 그룹 내부 항목을 최근 사용(MRU) 기준으로 상단 정렬하고 `최근` 배지를 표시, 선택 스크롤도 실제 렌더 항목 기준으로 정확히 보정 |
|
|
| 슬래시 핀 고정 결합 | `/` 팔레트 항목 우측에 핀 토글을 추가하고 정렬 우선순위를 `핀 > 최근 > 이름`으로 적용해 자주 쓰는 명령을 고정 유지 |
|
|
| AX Agent 기본 활성화 | `ai_enabled` 기본값을 활성화로 변경하고 설정 로드 정규화 단계에서 비활성 값이 들어와도 자동으로 활성화되도록 보정 |
|
|
| 업데이트 안내 메시지 제거 | 앱 시작 시 설정 마이그레이션 후 표시되던 `설정 업데이트` 메시지박스를 제거해 업데이트 설치 직후 팝업 노출을 중단 |
|
|
| 슬래시 핀/최근 개수 설정 연동 | AX Agent 설정창에서 `슬래시 핀 최대 개수`, `슬래시 최근 최대 개수`를 조절할 수 있도록 추가하고 런타임(MRU/핀 정렬) 제한에 즉시 반영 |
|
|
| 슬래시 개수 설정 QA 완료 | 핀/최근 상한 적용 후 `/` 팔레트 정렬과 실행 경로를 회귀 점검하고 `ChatWindowSlashPolicyTests` 39개를 통과하여 동작 안정성을 확인 |
|
|
| 슬래시 퀵관리/권한 키보드 보강 | `/` 팔레트 헤더에 `정리/전체 접기·펼치기`를 추가하고, 권한 팝업에 `Tab/Enter/Esc` 중심 키보드 조작(항목 선택·섹션 토글·닫기)을 보강 |
|
|
| 슬래시/권한 접근성 완성도 보강 | `/` 팔레트에 `모두 접힘` 안내와 섹션 상태 라벨을 추가하고, 권한 팝업 오픈 시 첫 포커스 이동/Enter·Space 선택/ESC 닫기를 보강해 키보드 사용성을 개선 |
|
|
| 설정 즉시 반영 가시성 보강 | AX Agent 설정의 슬래시 핀/최근 상한 항목에 `저장 후 즉시 반영` 안내를 추가해 조작 결과를 명확히 인지하도록 정리 |
|
|
| 회귀 패키지 통과 | 전체 테스트 436개 통과로 슬래시/권한/설정 저장 경로 변경 후 회귀 안정성 확보 |
|
|
| 슬래시 탐색 입력 확장 | `/` 팝업에서 휠/방향키 외에 `PageUp/PageDown/Home/End` 이동을 추가하고 고해상도 휠 델타를 단계 이동으로 보정해 스크롤 사용성을 개선 |
|
|
| 모델 빠른설정 단일 라인 강화 | 입력창 상단 모델 버튼을 AX Agent 내부 빠른 설정 토글로 전환하고, 모델/프리셋 버튼 높이와 패딩을 정돈해 Codex/Claude형 단일 라인 흐름에 맞춤 |
|
|
| UI 점검 체크리스트 추가 | 내부/사외 모드 포함 UI 회귀 점검 문서를 `docs/UI_UX_CHECKLIST.md`로 추가해 시나리오 기반 검증 기준을 명문화 |
|
|
| 권한 모드 표면 통일 | 권한 표시 명칭을 `활용하지 않음/소극 활용/적극 활용/계획 중심/완전 자동/질문 없이 진행`으로 통일하고 팝업 선택 순서를 동일 체계로 재정렬 |
|
|
| 권한 기본 동작/순환 보강 | Chat 탭 기본 권한을 `활용하지 않음`으로 적용하고, `/sandbox-toggle` 및 AX Agent 설정 권한 순환을 같은 순서(`활용하지 않음→소극→적극→계획→완전 자동→질문 없이 진행`)로 맞춤 |
|
|
| 운영 모드 회귀 점검 강화 | `OperationModePolicyTests`, `OperationModeReadinessTests`, `LlmOperationModeTests` 필터 테스트(18건)를 통과해 internal/external 차단·허용 경로를 재검증 |
|
|
| 권한 팝업 밀도 재정돈 | 권한 섹션 헤더/카드/행의 패딩·폰트·줄간격을 조정해 과밀 영역을 완화하고 Codex/Claude형 스캔 속도에 맞춤 |
|
|
| 좌측/컴포저 라벨 정리 | 좌측 기본 카테고리 라벨을 `주제 선택/작업 선택`으로 통일하고, 입력 상단 바 패딩·간격을 미세 조정해 단일 라인 정돈 강화 |
|
|
| 체크리스트 실행 결과 기록 | `docs/UI_UX_CHECKLIST.md`에 2026-04-04 12:22 기준 점검 결과(운영모드 필터 18건 + 전체 436건 통과)를 기록 |
|
|
| 권한 상태 표시 간소화 | 권한 상태 텍스트(`/permissions`, `/allowed-tools`)를 운영 모드 포함 축약형으로 정리하고 권한 버튼 툴팁에 동일 정보를 반영 |
|
|
| 설정창 외부 진입 안정화 | AX Agent 설정창 오픈 시 리소스 병합 실패를 방어하고, 외부 진입 경로를 Dispatcher 기반으로 안정화 |
|
|
| 모델 라벨 반응형 보강 | 컴포저 상단 모델 라벨에 말줄임(`MaxWidth` + `CharacterEllipsis`)을 적용해 좁은 폭에서 레이아웃 깨짐을 방지 |
|
|
| 슬래시 탐색 순서 정합화 | `/` 팝업의 방향키/휠/Home/End 이동 기준을 렌더 순서(핀/최근 정렬 적용 순서)로 통일해 스크롤·선택 체감 불일치를 해소 |
|
|
| 권한 요청창 한국어/인코딩 복구 | `PermissionRequestWindow`의 깨진 문자열을 복구하고 권한 선택/위험도/미리보기 문구를 한국어 기준으로 정리 |
|
|
| slash 명령 카탈로그 분리 | `ChatWindow` 내부 대형 slash 사전을 `SlashCommandCatalog`로 분리해 입력 계층 결합도를 낮추고 유지보수 범위를 축소 |
|
|
| slash 조회 API 전환 | 내장 slash 매칭/조회 경로를 `SlashCommandCatalog.MatchBuiltinCommands`/`TryGetEntry`로 통일 |
|
|
| 권한 표시 카탈로그 분리 | 권한 모드 라벨/설명/아이콘/색을 `PermissionModePresentationCatalog`로 분리해 팝업 표면 기준을 단일화 |
|
|
| 탭별 설정 해석기 도입 | `AgentTabSettingsResolver`를 추가해 Cowork/Code 분기(검증 활성/Code 전용 도구 비활성)를 단일 경로로 정리 |
|
|
| L4 통합 회귀 보강 | `PermissionModeCatalogTests`/`PermissionModePresentationCatalogTests`/`SlashCommandCatalogTests`를 추가하고 deny 우선 규칙을 `OperationModePolicyTests`에 반영해 권한·슬래시 회귀망을 강화 |
|
|
| 권한 팝업 핵심 4모드 정렬 | 권한 팝업을 `소극 활용/적극 활용/계획 중심/완전 자동` 중심으로 단순화하고 `활용하지 않음/질문 없이 진행`은 `고급 모드` 접힘 섹션으로 분리 |
|
|
| slash 스크롤 체감 개선 | 휠/방향키 이동 시 전체 재렌더링을 제거하고 선택 하이라이트만 갱신하도록 바꿔 `/` 팝업 스크롤 반응성과 안정성을 개선 |
|
|
| slash 팝업 밀도 압축 2단계 | `/` 팝업 폭/높이/패딩과 항목 폰트/행 높이를 축소해 Codex형 컴팩트 밀도와 스캔 속도를 강화 |
|
|
| 권한 팝업 밀도 압축 2단계 | 권한 팝업의 섹션/요약/예외/거부 카드와 권한 행 타이포를 압축해 슬래시 팝업과 동일한 컴팩트 리듬으로 정렬 |
|
|
| 입력 하단/모델 선택 컴팩트 정렬 | 입력 박스·모델 선택 버튼·인라인 설정 패널·전송 버튼 크기를 축소해 Codex형 컴포저 밀도로 정렬 |
|
|
| 로직 안정화 회귀 보강 | `ContextCondenserTests`와 `LlmRuntimeOverrideTests`를 보강해 compact 실동작과 vLLM 암호화 API키/SSL 우회 해석 규칙을 회귀 검증 |
|
|
| 권한 패턴 구문 호환성 보강 | 권한 규칙 파서를 `tool@pattern` 외 `tool|pattern`, `tool(pattern)`도 해석하도록 확장하고 deny→allow 우선순위 회귀를 보강 |
|
|
| 권한 모드 별칭 정합 보강 | `/permissions`, `/allowed-tools`에서 `none/passive/active/planning/fullauto/silent` 별칭을 지원하고 카탈로그 정규화와 일치시킴 |
|
|
| 권한 기본값 정책 정렬 | 신규/초기 상태의 기본 권한을 `활용하지 않음(Deny)`으로 변경하고 AppState 기본/요약 상태와 slash 사용 가이드를 동일 체계로 정렬 |
|
|
| 탭 전환 빈 대화 누적 방지 | 탭 전환 중 생성되는 무의미한 빈 대화를 저장 대상에서 제외하고, 목록에서도 빈 노이즈 항목을 숨겨 이력 누적 체감 버그를 완화 |
|
|
| 권한 팝업 즉시반영 정렬 | 권한 팝업에 `활용하지 않음`을 핵심 영역 맨 위에 배치하고, 대화 권한이 없을 때도 탭 기본값(Deny/DefaultAgentPermission)을 즉시 반영하도록 로딩 경로를 보강 |
|
|
| 권한 색상 체계 통일 | 권한 요약 카드/상단 배너에서 모드별 색상(Deny=녹색, Passive=파랑, Active=녹색, Plan=보라, FullAuto=주황, Silent=빨강)을 팝업 체계와 일치시킴 |
|
|
| 슬래시 네비게이션 입력 보강 | InputBox 포커스 상태에서도 방향키/Page/Home/End/Tab이 슬래시 목록 탐색에 즉시 반영되도록 키 처리 경로를 통합하고, 모든 그룹 접힘 상태에서 휠 스크롤 fallback을 추가 |
|
|
| 사내/사외 모드 회귀 보강 | operationMode 전환 직후 WebSearch 동작 반영과 URL 판별 경계(HTTP/파일/mailto) 테스트를 추가해 내부 차단 정책의 즉시성/정확성을 강화 |
|
|
| AX Agent 설정창 오픈 안정화 | `ToggleSwitch`를 전역 리소스로 승격해 AX Agent 창 초기화 시 리소스 누락 예외를 방지하고, AX Agent 설정창에는 테마 사전만 안전 주입하도록 오픈 경로를 보강 |
|
|
| 권한 순환/슬래시 스크롤 체감 보강 | `claw-code` 기준으로 권한 순환에서 고위험 `질문 없이 진행`을 기본 순환에서 분리하고, `/` 팝업 휠 스크롤 시 뷰포트 기준 선택 동기화를 추가해 스크롤 사용성을 개선 |
|
|
| 권한 팝업 상세영역 단순화 | 권한 팝업의 `요약/예외/최근거부`를 개별 섹션에서 단일 `상세 정보` 섹션으로 통합해 기본 화면 밀도를 낮추고 핵심 모드 선택 흐름을 우선화 |
|
|
| 권한 팝업 밀도/정렬 미세조정 | 권한 행의 패딩·폰트·아이콘·체크마크 간격을 컴팩트하게 재정렬하고 요약 카드 타이포를 축소해 `claw-code` 스타일의 빠른 스캔 밀도를 강화 |
|
|
| Slash palette 상태 분리 시작 | `ChatWindow`에 몰려 있던 slash 상태를 `SlashPaletteState`로 분리해 이후 Codex/Claude형 composer 개편 기반 마련 |
|
|
| 런처 이미지 미리보기 추가 | `#` 클립보드 이미지 항목에서 `Shift+Enter`로 전용 미리보기 창을 열고, 줌·원본 해상도 확인·PNG/JPEG/BMP 저장·클립보드 복사를 지원 |
|
|
| AX Agent 모델 선택 단순화 | AX Agent 서비스 설정에서 내부 서비스 모델 선택을 등록 모델 칩 중심으로 고정하고, 채팅 오버레이/보조 설정창의 숨은 모델 텍스트 입력 의존을 제거 |
|
|
| vLLM SSL 위치 정리 | 전역 서비스 설정/채팅 오버레이에서 vLLM SSL 우회 노출을 걷어내고, 모델 등록/편집 다이얼로그에서만 모델별로 설정하도록 정리 |
|
|
| 검증 | `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0 |
|
|
| 검증 | `dotnet build` 경고 0 / 오류 0, `dotnet test` 436 passed / 0 failed |
|
|
|
|
자세한 내용은 [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md)의 `v0.7.3` 항목을 참고하세요.
|
|
|
|
|
|
---
|
|
|
|
## 최근 추가 작업
|
|
|
|
- 업데이트: 2026-04-04 23:57 (KST)
|
|
- Git 브랜치 패널 상단에 검색 입력을 추가해 많은 브랜치도 바로 필터링하고 전환할 수 있게 했습니다.
|
|
- 브랜치 전환 섹션은 검색 중 표시 수 / 전체 수를 함께 보여주도록 보강했습니다.
|
|
|
|
- 업데이트: 2026-04-04 23:49 (KST)
|
|
- AX Agent 서비스/권한 탭의 주요 선택 항목을 기본 ComboBox 대신 카드형 라디오 선택으로 바꿔 같은 선택 언어로 통일했습니다.
|
|
- 워크스페이스 패널은 최근/전체 섹션 개수와 현재 선택 강조를 추가해 현재 위치를 더 바로 읽을 수 있게 했습니다.
|
|
|
|
- 업데이트: 2026-04-04 23:41 (KST)
|
|
- Chat/Cowork/Code 빈 화면의 세로 기준점을 통일하고, 설명 블록과 프리셋 카드 영역 시작 위치가 같은 리듬으로 보이도록 정리했습니다.
|
|
- 프리셋 카드/기타/추가 카드의 외곽 마진과 내부 패딩을 맞춰 중앙 정렬 상태에서도 행 간격이 더 균일하게 보이도록 보정했습니다.
|
|
|
|
- 업데이트: 2026-04-04 23:33 (KST)
|
|
- AX Agent 공통 설정에 표현 수준을 직접 조정하는 행을 추가하고, 저장된 표현 수준이 설정 창에서 그대로 유지되도록 초기화 경로를 바로잡았습니다.
|
|
- Code 탭 하단 바는 로컬 / 브랜치 / 워크트리 흐름을 우선으로 재정리하고, Code 전용 파일/로그 버튼은 제거해 더 단순한 작업 전환 구조로 맞췄습니다.
|
|
|
|
- 업데이트: 2026-04-04 23:20 (KST)
|
|
- AX Agent 설정의 고급/서비스/권한 행 간격을 더 넓히고, 서비스 탭과 권한 탭의 주요 설정 행을 같은
|
|
ow + toggle 시각 언어로 통일했습니다.
|
|
- 워크스페이스 선택 팝업은 제목 + 검색 + 내부 스크롤 구조를 가진 검색 가능한 프로젝트 선택 패널로 다듬었습니다.
|
|
- 업데이트: 2026-04-04 23:08 (KST)
|
|
- 설정 서브탭 외곽선을 제거하고 배경 강조 중심의 더 얇은 탭 정렬로 정리했습니다.
|
|
- Cowork/Code 상단 필터와 좌측 메뉴를 워크스페이스 목록 기반으로 전환했습니다.
|
|
- 사이드바 검색을 평시 액션 행 + 인라인 확장 검색 흐름으로 바꾸고, Ctrl+K 단축키를 연결했습니다.
|
|
- 좌측 대화 목록을 오늘 / 어제 / 이전 날짜 그룹으로 정리했습니다.
|
|
- AX Agent 고급 설정의 켜기/끄기 버튼을 단일 토글 스위치로 교체했습니다.
|
|
- 좌측 상단 액션 줄은 새 대화 / 검색의 같은 리스트형 행으로 통일하고 예약됨/Dispatch 성격의 항목은 노출하지 않도록 정리했습니다.
|
|
- 워크스페이스 선택 팝업은 검색 가능한 패널형으로 재구성했습니다.
|
|
- Code 탭 하단 바는 언어 선택 대신 로컬 / 워크트리 중심 흐름으로 바꾸고, Git 저장소에서는 `git worktree add`, 일반 폴더에서는 복사본 워크스페이스 전환을 지원하도록 연결했습니다.
|
|
- 메인 설정에 남아 있던 `AI 기능 활성화`, `운영 모드`, `자동 모델 라우팅` 성격의 AX Agent 관련 항목은 AX Agent 탭 중심으로 재배치하고, 일반/기능 탭의 중복 노출을 숨겨 설정 통합 흐름을 정리했습니다.
|
|
- AX Agent 서브탭은 `공통 / 서비스 / 권한 / 고급` 4개 중심으로 단순화하고, 공통 패널 내부를 기본 상태/서비스/공통 런타임 묶음으로 나눠 같은 시각 언어와 간격으로 다시 정리했습니다.
|
|
- 기능 탭의 과한 AI 표현은 `텍스트/파일`, `선택 텍스트 명령`, `코드 리뷰` 등 사용자 기준 문구로 낮췄습니다.
|
|
- 워크스페이스 선택 패널은 `최근 워크스페이스 / 전체 워크스페이스` 섹션형으로 재구성했고, Code 하단 브랜치 선택 패널도 worktree 메뉴와 같은 설명형 row 언어로 통일했습니다.
|
|
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
|
- 업데이트: 2026-04-04 23:59 (KST)
|
|
- AX Agent 공통 탭의 운영 모드, 최대 컨텍스트 토큰, 대화 보관 기간 선택을 카드형/칩형 선택으로 교체해 공통/서비스/권한/고급 전 영역의 선택 언어를 더 강하게 통일했습니다.
|
|
- AX Agent 고급 탭의 실행 이력 상세도도 간략/상세/디버그 카드형 선택으로 전환해 남아 있던 기본 WPF ComboBox 흔적을 줄였습니다.
|
|
- Git 브랜치 패널에는 최근 전환 브랜치 섹션을 추가해 자주 오가는 브랜치를 검색 전에 바로 전환할 수 있게 보강했습니다.
|
|
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
|
|
|
- 업데이트: 2026-04-05 00:10 (KST)
|
|
- Enter 입력을 기본 DraftQueue 경로로 승격하고, Ctrl+Enter/전송 버튼/초기 전송/재실행/후속 작업도 같은 큐 흐름을 타도록 정리했습니다.
|
|
- DraftQueue는 메시지/명령/직접 실행/후속 작업/조정 kind를 보존하도록 확장했고, Code 탭 작업 위치 패널은 워크트리/복사본 전환 흐름 중심으로 재구성했습니다.
|
|
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
|
|
|
- 업데이트: 2026-04-05 00:28 (KST)
|
|
- DraftQueue 카드를 실행 대기/최근 결과 섹션형으로 재구성하고, 상태·우선순위·종류 배지와 아이콘을 추가해 큐 상태를 더 빠르게 파악할 수 있게 했습니다.
|
|
- 워크스페이스/브랜치/워크트리 패널은 같은 Popup row 규칙으로 맞추고, composer 최대 폭 확장과 하단 칩형 상태줄 정리로 Code/Cowork 하단 리듬을 더 가볍게 다듬었습니다.
|
|
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
|
|
|
- 업데이트: 2026-04-05 00:38 (KST)
|
|
- DraftQueue 패널 상단에 실행 중 / 다음 / 보류 / 완료 / 실패 요약 pill을 추가하고, composer 상단의 모델/컨텍스트/프리셋 줄도 더 낮고 평평한 밀도로 정리했습니다.
|
|
- 브랜치/워크트리 패널에는 공통 요약 strip을 추가해 현재 상태를 같은 시각 언어로 보여주도록 맞췄고, 저장소 루트 `.gitignore`에는 빌드 산출물·IDE 파일·OS 잡파일·비밀정보 패턴을 추가했습니다.
|
|
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
|
- 업데이트: 2026-04-04 23:23 (KST)
|
|
- AX Agent는 이제 설정 서비스 변경 이벤트를 직접 구독해 메인 설정, AX Agent 설정, 저장 경로와 관계없이 테마/권한/데이터 활용/모델 라벨/composer/대기열 UI를 즉시 다시 읽어오도록 fan-out 경로를 통합했습니다.
|
|
- AX Agent 설정 저장 경로에서 표현 수준을 `rich`로 고정 덮어쓰던 처리도 제거해, 사용자가 선택한 `풍부하게 / 적절하게 / 간단하게` 값이 다른 설정 저장 흐름에서도 유지되도록 보정했습니다.
|
|
- DraftQueue 패널은 실행 중 / 다음 작업 / 보류 / 완료 / 실패를 개별 섹션으로 나눠 현재 실행 상태와 최근 결과를 더 빠르게 파악할 수 있도록 재구성했습니다.
|
|
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
|
- 업데이트: 2026-04-04 23:28 (KST)
|
|
- AX Agent 하단 컨텍스트 카드 툴팁에 최근 압축 이력을 추가해 마지막 자동/수동 compact 시각, 압축 전후 토큰, 실제 절감량을 다시 확인할 수 있게 했습니다.
|
|
- 수동 `/compact` 실행과 전송 전 자동 컨텍스트 압축 모두 같은 compaction 통계 경로를 타도록 맞춰, compact 결과를 일회성 토스트가 아니라 이후 UI에서도 계속 확인할 수 있도록 보강했습니다.
|
|
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
|
|
|
---
|
|
|
|
## 라이선스
|
|
|
|
MIT License
|
|
|
|
|
|
|
|
|
|
|
|
|