Files
AX-Copilot-Codex/docs/LAUNCHER_ROADMAP.html

620 lines
26 KiB
HTML

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AX Commander (런처) 고도화 계획 | AX Copilot</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'Pretendard', 'Segoe UI', 'Malgun Gothic', -apple-system, sans-serif;
font-size: 15px;
background: #f8f9fe;
color: #1a1a2e;
line-height: 1.7;
min-height: 100vh;
}
/* Header */
.header {
background: linear-gradient(135deg, #1a1b2e 0%, #2d3a6b 60%, #4b5efc 100%);
padding: 48px 0 40px;
color: white;
}
.header-inner {
max-width: 900px;
margin: 0 auto;
padding: 0 20px;
}
.header-brand {
display: flex;
align-items: center;
gap: 1rem;
margin-bottom: 0.5rem;
}
.header-logo {
width: 48px; height: 48px;
background: rgba(255,255,255,0.15);
border: 1px solid rgba(255,255,255,0.25);
border-radius: 12px;
display: flex; align-items: center; justify-content: center;
font-weight: 800; font-size: 1.2rem; color: #fff;
}
.header h1 {
font-size: 26px;
font-weight: 800;
color: #fff;
line-height: 1.3;
}
.header-meta {
display: flex; gap: 2rem; margin-top: 0.5rem; font-size: 0.85rem; color: rgba(255,255,255,0.65);
}
.header-meta span { display: flex; align-items: center; gap: 0.4rem; }
/* Container */
.container { max-width: 900px; margin: 0 auto; padding: 40px 20px 80px; }
/* TOC */
.toc {
background: white;
border-radius: 12px;
padding: 18px 26px;
margin-bottom: 24px;
box-shadow: 0 2px 12px rgba(75,94,252,0.08);
}
.toc h2 {
font-size: 15px;
font-weight: 800;
color: #2e3060;
margin-bottom: 1rem;
padding-bottom: 0.5rem;
border-bottom: 1px solid #e0e0ec;
}
.toc ul { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 0.4rem; }
.toc a {
color: #4b5efc;
text-decoration: none;
font-size: 13.5px;
font-weight: 600;
padding: 0.3rem 0.6rem;
border-radius: 6px;
display: block;
transition: all 0.2s;
}
.toc a:hover { background: #eef1ff; color: #1a1a2e; }
/* Section (collapsible) */
.section {
background: white;
border-radius: 12px;
margin-bottom: 16px;
overflow: hidden;
box-shadow: 0 2px 12px rgba(75,94,252,0.08);
}
.section-header {
background: #eef1ff;
padding: 12px 20px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: space-between;
user-select: none;
border-bottom: 1px solid transparent;
transition: border-color 0.2s;
}
.section-header:hover { border-bottom-color: #4b5efc; }
.section-header h2 { font-size: 16px; font-weight: 700; color: #1a1b2e; }
/* Collapsible chevron replaced with triangle markers */
.chevron { display: none; }
.section-header::after {
content: '\25BC';
font-size: 11px;
color: #4b5efc;
transition: transform 0.3s;
}
.section.collapsed .section-header::after { content: '\25B6'; }
.section.collapsed .section-body { display: none; }
.section-body { padding: 20px; }
/* Status badges */
.badge {
display: inline-block;
padding: 2px 10px;
border-radius: 20px;
font-size: 12px;
font-weight: 600;
}
.badge-completed { background: rgba(52,211,153,0.15); color: #16a34a; border: 1px solid rgba(52,211,153,0.3); }
.badge-in-progress { background: rgba(251,191,36,0.15); color: #d97706; border: 1px solid rgba(251,191,36,0.3); }
.badge-done { background: rgba(16,185,129,0.15); color: #059669; border: 1px solid rgba(16,185,129,0.3); }
.badge-hold { background: rgba(156,163,175,0.15); color: #6b7280; border: 1px solid rgba(156,163,175,0.3); }
.badge-planned { background: rgba(96,165,250,0.15); color: #3b82f6; border: 1px solid rgba(96,165,250,0.3); }
/* Priority badges */
.priority {
display: inline-block;
padding: 2px 8px;
border-radius: 6px;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.priority-highest { background: rgba(248,113,113,0.15); color: #e53e3e; border: 1px solid rgba(248,113,113,0.3); }
.priority-high { background: rgba(251,146,60,0.15); color: #dd6b20; border: 1px solid rgba(251,146,60,0.3); }
.priority-medium { background: rgba(251,191,36,0.15); color: #d97706; border: 1px solid rgba(251,191,36,0.3); }
.priority-low { background: rgba(156,163,175,0.15); color: #6b7280; border: 1px solid rgba(156,163,175,0.3); }
.priority-longterm { background: rgba(139,92,246,0.15); color: #7c3aed; border: 1px solid rgba(139,92,246,0.3); }
/* Tables */
table {
width: 100%;
border-collapse: collapse;
background: white;
font-size: 13.5px;
margin: 1rem 0;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 2px 12px rgba(75,94,252,0.08);
}
thead th {
background: #2e3060;
color: white;
padding: 12px 16px;
text-align: left;
font-weight: 600;
}
tbody td {
padding: 10px 16px;
border-bottom: 1px solid #f0f0f8;
vertical-align: top;
color: #1a1a2e;
}
tbody tr:nth-child(even) td { background: #f8f9fe; }
tbody tr:hover td { background: #f5f6ff; }
tbody tr:last-child td { border-bottom: none; }
/* Feature cards */
.feature-card {
background: #f8f9fe;
border: 1px solid #e0e0ec;
border-radius: 10px;
padding: 16px 20px;
margin-bottom: 12px;
transition: border-color 0.2s;
}
.feature-card:hover { border-color: #4b5efc; }
.feature-card-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 6px;
flex-wrap: wrap;
gap: 0.5rem;
}
.feature-card-header h4 { font-size: 15px; font-weight: 700; color: #2e3060; }
.feature-card p, .feature-card li {
color: #6b6b8a;
font-size: 13px;
margin-bottom: 4px;
}
.feature-card strong { color: #1a1a2e; }
.feature-card ul { padding-left: 1.2rem; }
/* Bullet list */
.bullet-list { list-style: none; padding: 0; }
.bullet-list li {
padding: 0.4rem 0 0.4rem 1.2rem;
position: relative;
color: #6b6b8a;
font-size: 13.5px;
}
.bullet-list li::before {
content: '';
position: absolute;
left: 0;
top: 0.85rem;
width: 6px;
height: 6px;
border-radius: 50%;
background: #4b5efc;
}
/* Separator */
hr {
border: none;
height: 1px;
background: #e0e0ec;
margin: 2rem 0;
}
/* Comparison highlight */
table .check { color: #16a34a; font-weight: 700; }
table .cross { color: #e53e3e; opacity: 0.6; }
/* Footer */
.footer {
text-align: center;
padding: 32px 20px;
color: #8888aa;
font-size: 12px;
border-top: 1px solid #e0e0ec;
margin-top: 40px;
}
/* Print */
@media print {
body { background: #fff; }
.header { page-break-after: always; }
.section-body { display: block !important; }
.section-header::after { content: ''; }
}
@media (max-width: 768px) {
.container { padding: 20px 12px; }
.toc ul { grid-template-columns: 1fr; }
.header h1 { font-size: 20px; }
.header-meta { flex-direction: column; gap: 0.5rem; }
table { font-size: 12px; }
thead th, tbody td { padding: 8px; }
}
</style>
</head>
<body>
<div class="header">
<div class="header-inner">
<div class="header-brand">
<div class="header-logo">AX</div>
<div>
<h1>AX Commander (런처) 고도화 계획</h1>
<div style="color: rgba(255,255,255,0.65); font-size: 14px; margin-top: 0.2rem;">AX Copilot Launcher Roadmap</div>
</div>
</div>
<div class="header-meta">
<span>Version: v1.6.1</span>
<span>Last Updated: 2026-03-30</span>
<span>Status: Active</span>
</div>
</div>
</div>
<div class="container">
<!-- TOC -->
<nav class="toc" id="toc">
<h2>목차 (Table of Contents)</h2>
<ul>
<li><a href="#current-state">현재 상태 (v1.5.0)</a></li>
<li><a href="#comparison">경쟁 서비스 비교</a></li>
<li><a href="#phase-l1">Phase L1 — 차세대 런처 고도화 (v1.5.0)</a></li>
<li><a href="#phase-l2">Phase L2 — 클립보드 고도화 + UX 개선 (v1.5.3)</a></li>
<li><a href="#phase-l3">Phase L3 — 차세대 런처 (v2.0) + Agent Phase 18 교차</a></li>
<li><a href="#tech-debt">기술 부채</a></li>
</ul>
</nav>
<!-- Current State -->
<div class="section" id="current-state">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>현재 상태 (v1.5.0) — 핵심 기능 44개 핸들러</h2>
<span class="badge badge-completed">현재</span>
</div>
</div>
<div class="section-body">
<ul class="bullet-list">
<li>퍼지 검색 + 한글 초성 검색 (FuzzyEngine)</li>
<li>44개 프리픽스 명령 (계산기, 이모지, 웹검색, 스니펫, 클립보드, 프로세스 등)</li>
<li>10가지 테마 + 커스텀 테마</li>
<li>플러그인 시스템 (DLL + JSON 스킬)</li>
<li>AX Agent AI 대화 통합</li>
<li>글로벌 핫키 (Alt+Space), 무지개 글로우 효과</li>
<li>파일/앱 인덱싱, 북마크 검색, 사용 빈도 랭킹</li>
<li>워크스페이스 프로파일 (창 레이아웃 저장/복원)</li>
<li>클립보드 히스토리, 스니펫 확장</li>
<li>스크린 캡처, 컬러 피커, JSON 도구</li>
</ul>
</div>
</div>
<!-- Comparison -->
<div class="section" id="comparison">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>경쟁 서비스 비교 (2026년 3월 기준)</h2>
</div>
</div>
<div class="section-body">
<div style="overflow-x:auto;">
<table>
<thead>
<tr>
<th>기능</th>
<th>AX Commander</th>
<th>Raycast</th>
<th>Alfred 5</th>
<th>Flow Launcher</th>
<th>PowerToys</th>
</tr>
</thead>
<tbody>
<tr><td>AI 대화</td><td class="check">O (AX Agent)</td><td class="check">O (멀티모델)</td><td>워크플로우</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>MCP 프로토콜</td><td class="check">O</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>에이전트 코딩</td><td class="check">O (Code 탭)</td><td class="check">O</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>플러그인</td><td>DLL+JSON</td><td>1500+ 스토어</td><td>워크플로우 갤러리</td><td>200+</td><td>모듈</td></tr>
<tr><td>클립보드 히스토리</td><td class="check">O</td><td class="check">O (리치)</td><td>파워팩</td><td>플러그인</td><td class="cross">X</td></tr>
<tr><td>윈도우 관리</td><td class="check">O (22 레이아웃)</td><td>70+ 레이아웃</td><td class="cross">X</td><td class="cross">X</td><td>FancyZones</td></tr>
<tr><td>파일 탐색기 통합</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>Everything 연동</td><td class="check">O (es 프리픽스)</td><td class="cross">X</td><td class="cross">X</td><td class="check">O</td><td class="cross">X</td></tr>
<tr><td>선택 텍스트 AI</td><td class="check">O (텍스트 액션)</td><td class="check">O (AI Commands)</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>영구 독 UI</td><td class="check">O (독 바)</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="check">O</td></tr>
<tr><td>클라우드 동기화</td><td class="cross">X</td><td>Pro</td><td>Dropbox</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>다국어</td><td class="check">5개국어</td><td>영어</td><td>영어</td><td>영어</td><td>다국어</td></tr>
</tbody>
</table>
</div>
</div>
</div>
<hr>
<!-- Phase L1 -->
<div class="section" id="phase-l1">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>Phase L1 — 차세대 런처 고도화 (v1.5.0)</h2>
<span class="badge badge-done">✓ 완료</span>
</div>
</div>
<div class="section-body">
<!-- L1-1 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-1. 선택 텍스트 AI 명령 (AI Commands)</h4>
<span class="priority priority-highest">최고</span>
</div>
<p><strong>갭:</strong> 런처에서만 AI 사용 가능, 시스템 전역 텍스트 처리 불가</p>
<p><strong>구현:</strong> 글로벌 핫키(예: Alt+A) → 선택된 텍스트에 AI 명령 실행</p>
<p><strong>명령 예시:</strong> 번역, 문법 교정, 요약, 코드 설명, 포맷 변환</p>
<p><strong>참고:</strong> Raycast AI Commands</p>
<p><strong>기술:</strong> InputListener 확장 + Clipboard 읽기 + LLM 호출 + 결과 Popup</p>
</div>
<!-- L1-2 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-2. Everything (voidtools) 연동</h4>
<span class="priority priority-high">높음</span>
</div>
<p><strong>갭:</strong> 자체 인덱싱은 설정된 폴더만 검색, 전체 디스크 검색 불가</p>
<p><strong>구현:</strong> Everything SDK (IPC/HTTP API) 연동으로 NTFS 전체 즉시 검색</p>
<p><strong>폴백:</strong> Everything 미설치 시 기존 IndexService 사용</p>
<p><strong>참고:</strong> Flow Launcher, Wox의 Everything 통합</p>
<p><strong>기술:</strong> Everything.dll P/Invoke 또는 HTTP API (http://localhost:8080)</p>
</div>
<!-- L1-3 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-3. 윈도우 타일링 레이아웃 확장</h4>
<span class="priority priority-high">높음</span>
</div>
<p><strong>갭:</strong> 기본 snap만 지원, 복잡한 레이아웃 불가</p>
<p><strong>구현:</strong> 2분할, 3분할, 4분할, 그리드 레이아웃 (halves/thirds/quarters)</p>
<p><strong>UI:</strong> snap 프리픽스에 레이아웃 선택 UI 추가</p>
<p><strong>참고:</strong> Raycast Window Management (70+ 레이아웃)</p>
<p><strong>기술:</strong> SnapHandler 확장 + Win32 SetWindowPos</p>
</div>
<!-- L1-4 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-4. 플러그인 스토어 (인앱 갤러리)</h4>
<span class="priority priority-medium">중간</span>
</div>
<p><strong>갭:</strong> 플러그인 설치가 수동 (DLL 파일 복사)</p>
<p><strong>구현:</strong> 인앱 플러그인 브라우저 + 원클릭 설치/업데이트</p>
<p><strong>소스:</strong> GitHub 리포지토리 기반 플러그인 레지스트리 (JSON manifest)</p>
<p><strong>참고:</strong> Raycast Extension Store, Flow Launcher pm install</p>
<p><strong>기술:</strong> PluginHost 확장 + GitHub API + 다운로드/설치 자동화</p>
</div>
<!-- L1-5 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-5. 영구 독/위젯 모드</h4>
<span class="priority priority-medium">중간</span>
</div>
<p><strong>갭:</strong> 런처는 호출 시에만 나타남, 상시 접근 불가</p>
<p><strong>구현:</strong> 화면 하단/측면에 고정되는 미니 바 (핀 고정 명령, CPU/메모리, 시계)</p>
<p><strong>참고:</strong> PowerToys Command Palette Dock</p>
<p><strong>기술:</strong> 별도 Window (TopMost, 자동 숨김 옵션)</p>
</div>
<!-- L1-6 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-6. 파일 탐색기 대화상자 통합</h4>
<span class="priority priority-medium">중간</span>
</div>
<p><strong>갭:</strong> 열기/저장 대화상자에서 빠른 검색 불가</p>
<p><strong>구현:</strong> Windows 열기/저장 대화상자 감지 → 런처 오버레이 표시</p>
<p><strong>참고:</strong> Listary의 대화상자 하이재킹</p>
<p><strong>기술:</strong> SetWinEventHook + 대화상자 감지 + 경로 주입</p>
</div>
<!-- L1-7 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-7. 클립보드 히스토리 강화</h4>
<span class="priority priority-medium">중간</span>
</div>
<p><strong>갭:</strong> 텍스트만 저장, 이미지/파일 클립보드 미지원</p>
<p><strong>구현:</strong> 이미지 클립보드 저장, 리치 텍스트, 핀 고정, 카테고리 분류</p>
<p><strong>참고:</strong> Raycast Clipboard (리치 컨텐츠)</p>
<p><strong>기술:</strong> ClipboardHistoryHandler 확장 + 이미지 직렬화</p>
</div>
<!-- L1-8 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-8. 클라우드 설정 동기화</h4>
<span class="badge badge-hold">보류</span>
</div>
<p><strong>갭:</strong> 여러 PC에서 설정 수동 복사 필요</p>
<p><strong>구현:</strong> settings.json + 스니펫 + 별칭을 클라우드 저장소에 동기화</p>
<p><strong>후보:</strong> OneDrive / Google Drive / 사내 NAS 공유 폴더</p>
<p><strong>참고:</strong> Raycast Pro Cloud Sync</p>
</div>
<!-- L1-9 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-9. 커스텀 테마 마켓</h4>
<span class="badge badge-hold">보류</span>
</div>
<p><strong>갭:</strong> 10개 내장 테마만 사용 가능</p>
<p><strong>구현:</strong> 사용자 테마 공유/다운로드 시스템</p>
<p><strong>기술:</strong> 테마 JSON 파일 → GitHub 기반 레지스트리</p>
</div>
</div>
</div>
<hr>
<!-- Phase L1 추가 완료 -->
<div class="section">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>Phase L1 추가 완료 (v1.5.0)</h2>
<span class="badge badge-done">✓ 완료</span>
</div>
</div>
<div class="section-body">
<table>
<thead><tr><th>기능</th><th>상태</th></tr></thead>
<tbody>
<tr><td>Windows 탐색기 셸 확장</td><td>✓ ShellExtensionService — HKCU 레지스트리 우클릭 메뉴 등록/해제</td></tr>
<tr><td>저장 공간 관리 UI</td><td>✓ StorageAnalyzer — 사용량 분석, 드라이브 여유, 7/14/30일 정리</td></tr>
<tr><td>설정 도움말 아이콘</td><td>✓ AI 관련 설정 17개에 ? 아이콘 + 커스텀 다크 툴팁</td></tr>
<tr><td>독 바 실시간 설정</td><td>✓ 설정 변경 즉시 반영, 자동 표시, 위치 기억, 히트 테스트 수정</td></tr>
<tr><td>클립보드 이미지 썸네일</td><td>✓ 런처에서 이미지 항목 썸네일 미리보기 표시</td></tr>
<tr><td>런처 독 바 명령어</td><td>✓ /dock 명령으로 독 바 표시/숨기기</td></tr>
</tbody>
</table>
</div>
</div>
<hr>
<!-- Phase L2 -->
<div class="section" id="phase-l2">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>Phase L2 — 클립보드 고도화 + UX 개선 (v1.5.3)</h2>
<span class="badge badge-planned">계획</span>
</div>
</div>
<div class="section-body">
<p style="color:#555;margin-bottom:1rem;">
<strong>방향</strong>: 클립보드 히스토리의 실용성 극대화 (이미지 원본 품질, 자동 복사 워크플로우).
Raycast의 리치 클립보드, Alfred의 Snippet 확장을 참고하되 사내 로컬 환경에 최적화.
</p>
<table>
<thead>
<tr><th>#</th><th>기능</th><th>설명</th><th>우선순위</th></tr>
</thead>
<tbody>
<tr><td>L2-1</td><td>클립보드 이미지 원본 해상도 보존</td><td>원본 PNG/BMP 그대로 DPAPI 저장. 썸네일은 표시용으로만 생성. 캐시 정리 정책 (30일/500MB)</td><td><span class="priority priority-high">높음</span></td></tr>
<tr><td>L2-2</td><td>Shift+Enter 실행 시 자동 클립보드 복사</td><td>클립보드 히스토리에서 미리보기 시 해당 항목을 시스템 클립보드에 자동 복사</td><td><span class="priority priority-high">높음</span></td></tr>
<tr><td>L2-3</td><td>클립보드 이미지 미리보기 창</td><td>이미지 항목 선택 시 별도 팝업으로 원본 크기 미리보기. 확대/축소, 복사 버튼</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L2-4</td><td>클립보드 검색 강화</td><td>이미지 OCR 텍스트 추출 → 텍스트 기반 이미지 검색. Windows OCR API (로컬)</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L2-5</td><td>클립보드 항목 병합</td><td>여러 텍스트 항목을 선택하여 하나로 병합 (줄바꿈 구분). Ctrl+Click 다중 선택</td><td><span class="priority priority-low">낮음</span></td></tr>
</tbody>
</table>
</div>
</div>
<hr>
<!-- Phase L3 -->
<div class="section" id="phase-l3">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>Phase L3 — 차세대 런처 (v2.0) + Agent Phase 18 교차</h2>
<span class="badge badge-planned">계획</span>
</div>
</div>
<div class="section-body">
<p style="color:#555;margin-bottom:1rem;">
<strong>방향</strong>: 경쟁 런처(Raycast 1500+ 확장, PowerToys Run)의 에코시스템 수준을 참고하되,
사내 보안/오프라인 환경에서 동작하는 자체 완결형 기능으로 구현.<br>
<strong>참고</strong>: AX Agent Phase 18 (v2.0)과 교차 — 플러그인 갤러리(18-2), AI 스니펫(18-3), 퀵링크(18-4), 웹 검색 AI 요약(18-6).
</p>
<table>
<thead>
<tr><th>#</th><th>기능</th><th>참고</th><th>우선순위</th></tr>
</thead>
<tbody>
<tr><td>L3-1</td><td>플러그인 인앱 갤러리 + 레지스트리</td><td>로컬 NAS/Git 레지스트리 기반 탐색/설치/업데이트. → Agent Phase 18-2</td><td><span class="priority priority-high">높음</span></td></tr>
<tr><td>L3-2</td><td>웹 검색 AI 요약</td><td>? 검색 결과를 AI로 요약. → Agent Phase 18-6</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L3-3</td><td>AI 스니펫</td><td>;email {수신자} {주제} → LLM 초안 자동 생성. → Agent Phase 18-3</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L3-4</td><td>파라미터 퀵링크</td><td>jira {티켓번호} → URL 템플릿 변수 치환. → Agent Phase 18-4</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L3-5</td><td>파일 태그 시스템</td><td>사용자 태그 부여, 태그 기반 검색</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L3-6</td><td>오프라인 AI (로컬 SLM)</td><td>ONNX Runtime + phi-3. → Agent Phase 18-5</td><td><span class="priority priority-low">낮음</span></td></tr>
<tr><td>L3-7</td><td>다중 디스플레이</td><td>모니터별 런처/독 바 위치 기억</td><td><span class="priority priority-low">낮음</span></td></tr>
<tr><td>L3-8</td><td>알림 센터 통합</td><td>Windows 알림과 연동</td><td><span class="priority priority-low">낮음</span></td></tr>
<tr><td>L3-9</td><td>런처 미니 위젯</td><td>날씨/일정/할일 카드형 표시. 로컬 데이터 기반</td><td><span class="priority priority-low">낮음</span></td></tr>
</tbody>
</table>
</div>
</div>
<hr>
<!-- Tech Debt -->
<div class="section" id="tech-debt">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>기술 부채 (v1.5.0 해결)</h2>
<span class="badge badge-done">✓ 완료</span>
</div>
</div>
<div class="section-body">
<table>
<thead>
<tr><th>항목</th><th>상태</th></tr>
</thead>
<tbody>
<tr><td>SnapHandler 기본 기능만</td><td>✓ 22개 레이아웃으로 확장 (3등분, 2/3, 3분할 조합)</td></tr>
<tr><td>Everything 미연동</td><td>✓ EverythingHandler 구현 (es 프리픽스, P/Invoke, graceful fallback)</td></tr>
<tr><td>플러그인 설치 수동</td><td>✓ PluginHost.InstallFromZip() 로컬 zip 자동 추출·등록 (URL 제외: 사내 보안)</td></tr>
<tr><td>이미지 클립보드 미지원</td><td>✓ PNG→Base64 DPAPI 암호화 저장/복원, 앱 재시작 후 이미지 유지</td></tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="footer">
AX Copilot &mdash; AX Commander Roadmap v1.6.1 &middot; Last Updated: 2026-03-30
</div>
<script>
function toggleSection(header) {
const section = header.parentElement;
section.classList.toggle('collapsed');
}
</script>
</body>
</html>