diff --git a/.astra/tests/stress/.astra/cache/259a37934ead3910a8722b82054d46d2ca2057b05c488be1dcf439166ac5a9a1.json b/.astra/tests/stress/.astra/cache/259a37934ead3910a8722b82054d46d2ca2057b05c488be1dcf439166ac5a9a1.json index 5786b09..717af1d 100644 --- a/.astra/tests/stress/.astra/cache/259a37934ead3910a8722b82054d46d2ca2057b05c488be1dcf439166ac5a9a1.json +++ b/.astra/tests/stress/.astra/cache/259a37934ead3910a8722b82054d46d2ca2057b05c488be1dcf439166ac5a9a1.json @@ -1,5 +1,5 @@ { "result": "Final report with inconsistencies. This should be long enough to pass validation.", - "createdAt": 1778686589725, + "createdAt": 1778687752353, "modelVersion": "unknown" } \ No newline at end of file diff --git a/.astra/tests/stress/.astra/cache/65775be352df43297b63c7af59c9f4f39d2bc368f77456c37b5eef9a94a66b5c.json b/.astra/tests/stress/.astra/cache/65775be352df43297b63c7af59c9f4f39d2bc368f77456c37b5eef9a94a66b5c.json index 0e3ae76..dfd6dde 100644 --- a/.astra/tests/stress/.astra/cache/65775be352df43297b63c7af59c9f4f39d2bc368f77456c37b5eef9a94a66b5c.json +++ b/.astra/tests/stress/.astra/cache/65775be352df43297b63c7af59c9f4f39d2bc368f77456c37b5eef9a94a66b5c.json @@ -1,5 +1,5 @@ { "result": "[CONFLICT WARNING] 성능이 200% 증가했습니다. vs 그러나 동시에 50% 감소했습니다. 최적화와 성능 저하가 동시에 발견됨.", - "createdAt": 1778686589724, + "createdAt": 1778687752352, "modelVersion": "unknown" } \ No newline at end of file diff --git a/.astra/tests/stress/.astra/cache/6894d26c5b0a55d25d756a473225c7a44d7661af673b24e3f49551a7a2e50280.json b/.astra/tests/stress/.astra/cache/6894d26c5b0a55d25d756a473225c7a44d7661af673b24e3f49551a7a2e50280.json index 76eb41a..b82653e 100644 --- a/.astra/tests/stress/.astra/cache/6894d26c5b0a55d25d756a473225c7a44d7661af673b24e3f49551a7a2e50280.json +++ b/.astra/tests/stress/.astra/cache/6894d26c5b0a55d25d756a473225c7a44d7661af673b24e3f49551a7a2e50280.json @@ -1,5 +1,5 @@ { "result": "Detailed Execution Plan: 1. Research 2. Analyze 3. Write report with high quality.", - "createdAt": 1778686589722, + "createdAt": 1778687752351, "modelVersion": "unknown" } \ No newline at end of file diff --git a/.astra/tests/stress/.astra/cache/88cb61499f88ed38165b64bd3e8adc543795e4b427b64540a49c9ab27c7fe213.json b/.astra/tests/stress/.astra/cache/88cb61499f88ed38165b64bd3e8adc543795e4b427b64540a49c9ab27c7fe213.json index 31fba0f..5fb06c8 100644 --- a/.astra/tests/stress/.astra/cache/88cb61499f88ed38165b64bd3e8adc543795e4b427b64540a49c9ab27c7fe213.json +++ b/.astra/tests/stress/.astra/cache/88cb61499f88ed38165b64bd3e8adc543795e4b427b64540a49c9ab27c7fe213.json @@ -1,5 +1,5 @@ { - "result": "---\nid: stress_conflict_1778686589692\ndate: 2026-05-13T15:36:29.726Z\ntype: knowledge_artifact\nstandard: P-Reinforce v3.0\ntags: [automated, connect_ai, brain_sync]\n---\n\n## 📌 Brief Summary\nFinal report with inconsistencies. This should be long enough to pass validation.\n\nFinal report with inconsistencies. This should be long enough to pass validation.\n\n---\n## 💡 Astra의 선제적 제안 (Proactive Next Actions)\nFinal report with inconsistencies. This should be long enough to pass validation.\n---\n## 🛡️ Reliability & Audit Summary\n> [!NOTE]\n> 이 문서는 ConnectAI의 **Intelligent Resilience** 엔진에 의해 검증 및 정제되었습니다.\n\n| Metric | Value | Status |\n| :--- | :--- | :--- |\n| **Conflict Risk** | `60/100` | ⚠️ Medium |\n| **Fallbacks Used** | `0` | ✅ None |\n| **Auto Retries** | `0` | ✅ Stable |\n| **Deduplication** | `0` | Standard |\n| **Processing Time** | `0.0s` | ✅ Fast |\n\n### 🔍 Decision Audit Trail\n- **[PLANNER]** 전략 수립 중... (20ms)\n- **[RESEARCHER]** 핵심 정보 수집 및 분석 중... (11ms)\n- **[WRITER]** 최종 리포트 작성 및 편집 중... (2ms)\n", - "createdAt": 1778686589726, + "result": "---\nid: stress_conflict_1778687752337\ndate: 2026-05-13T15:55:52.353Z\ntype: knowledge_artifact\nstandard: P-Reinforce v3.0\ntags: [automated, connect_ai, brain_sync]\n---\n\n## 📌 Brief Summary\nFinal report with inconsistencies. This should be long enough to pass validation.\n\nFinal report with inconsistencies. This should be long enough to pass validation.\n\n---\n## 💡 Astra의 선제적 제안 (Proactive Next Actions)\nFinal report with inconsistencies. This should be long enough to pass validation.\n---\n## 🛡️ Reliability & Audit Summary\n> [!NOTE]\n> 이 문서는 ConnectAI의 **Intelligent Resilience** 엔진에 의해 검증 및 정제되었습니다.\n\n| Metric | Value | Status |\n| :--- | :--- | :--- |\n| **Conflict Risk** | `60/100` | ⚠️ Medium |\n| **Fallbacks Used** | `0` | ✅ None |\n| **Auto Retries** | `0` | ✅ Stable |\n| **Deduplication** | `0` | Standard |\n| **Processing Time** | `0.0s` | ✅ Fast |\n\n### 🔍 Decision Audit Trail\n- **[PLANNER]** 전략 수립 중... (13ms)\n- **[RESEARCHER]** 핵심 정보 수집 및 분석 중... (2ms)\n- **[WRITER]** 최종 리포트 작성 및 편집 중... (1ms)\n", + "createdAt": 1778687752353, "modelVersion": "unknown" } \ No newline at end of file diff --git a/.astra/tests/stress/.astra/missions/stress_conflict_1778686589692.json b/.astra/tests/stress/.astra/missions/stress_conflict_1778687752337.json similarity index 81% rename from .astra/tests/stress/.astra/missions/stress_conflict_1778686589692.json rename to .astra/tests/stress/.astra/missions/stress_conflict_1778687752337.json index 5902755..ba380df 100644 --- a/.astra/tests/stress/.astra/missions/stress_conflict_1778686589692.json +++ b/.astra/tests/stress/.astra/missions/stress_conflict_1778687752337.json @@ -1,8 +1,8 @@ { - "missionId": "stress_conflict_1778686589692", + "missionId": "stress_conflict_1778687752337", "status": "completed", - "startTime": "2026-05-13T15:36:29.692Z", - "totalElapsedMs": 34, + "startTime": "2026-05-13T15:55:52.337Z", + "totalElapsedMs": 16, "results": { "planner": "Detailed Execution Plan: 1. Research 2. Analyze 3. Write report with high quality.", "researcher": "[CONFLICT WARNING] 성능이 200% 증가했습니다. vs 그러나 동시에 50% 감소했습니다. 최적화와 성능 저하가 동시에 발견됨.", @@ -16,30 +16,30 @@ { "from": "idle", "to": "planner", - "durationMs": 20, + "durationMs": 13, "message": "전략 수립 중...", - "ts": "2026-05-13T15:36:29.712Z" + "ts": "2026-05-13T15:55:52.350Z" }, { "from": "planner", "to": "researcher", - "durationMs": 11, + "durationMs": 2, "message": "핵심 정보 수집 및 분석 중...", - "ts": "2026-05-13T15:36:29.723Z" + "ts": "2026-05-13T15:55:52.352Z" }, { "from": "researcher", "to": "writer", - "durationMs": 2, + "durationMs": 1, "message": "최종 리포트 작성 및 편집 중...", - "ts": "2026-05-13T15:36:29.725Z" + "ts": "2026-05-13T15:55:52.353Z" }, { "from": "writer", "to": "completed", - "durationMs": 1, + "durationMs": 0, "message": "미션 완료", - "ts": "2026-05-13T15:36:29.726Z" + "ts": "2026-05-13T15:55:52.353Z" } ], "resilienceMetrics": { diff --git a/PATCHNOTES.md b/PATCHNOTES.md index e2feb8d..c3e7b87 100644 --- a/PATCHNOTES.md +++ b/PATCHNOTES.md @@ -1,5 +1,15 @@ # Astra Patch Notes +## v2.0.8 (2026-05-14) +### 🚀 UX Persistence & Per-Agent Knowledge Mix +- **Astra Launcher 도입:** 실수로 채팅 탭을 닫았을 때 사이드바에서 즉시 다시 열 수 있는 전용 런처 뷰를 추가하여 접근성을 높였습니다. +- **에이전트별 지식 믹스(Knowledge Mix) 오버라이드:** 비즈니스 에이전트마다 '세컨드 브레인' 지식 활용 비중을 개별적으로 설정할 수 있는 기능을 도입했습니다. 이제 각 전문가 에이전트의 특성에 맞춰 지식 검색 깊이를 조절할 수 있습니다. +- **사이드바 UI 및 인터랙션 정교화:** 사이드바(`sidebar.js`, `sidebar.css`)의 디자인을 개선하고, 비즈니스 워크플로우에서의 상태 시각화를 최적화했습니다. +- **시스템 안정성 강화:** 익스텐션 코어와 사이드바 간의 상태 동기화 로직을 보완하여 장시간 사용 시의 신뢰성을 확보했습니다. +- **신규 패키징:** `astra-2.0.8.vsix` 패키지를 통해 사용자 편의성이 극대화된 새로운 버전을 배포합니다. + +--- + ## v2.0.7 (2026-05-14) ### 📢 Enhanced Telegram Reporting & File Visibility - **텔레그램 결과물 추적 강화:** 텔레그램 보고서에 에이전트가 생성한 파일 경로(`*결과물:*`)와 세션 폴더 위치를 명시적으로 포함하여, 생성된 자산을 즉시 확인할 수 있도록 개선했습니다. diff --git a/assets/icon-activitybar.svg b/assets/icon-activitybar.svg new file mode 100644 index 0000000..32fabe0 --- /dev/null +++ b/assets/icon-activitybar.svg @@ -0,0 +1,15 @@ + + diff --git a/media/sidebar.css b/media/sidebar.css index 4853eb3..6655e81 100644 --- a/media/sidebar.css +++ b/media/sidebar.css @@ -321,26 +321,10 @@ .input-footer { display: flex; align-items: center; justify-content: space-between; } .footer-left { display: flex; align-items: center; gap: 8px; } - /* Company chip — sits in the records-line beside the Records ▾ menu. */ - .company-chip { - display: inline-flex; align-items: center; gap: 5px; - background: var(--surface); - border: 1px solid var(--border); - border-radius: 999px; - padding: 3px 10px; - color: var(--text-dim); - font-size: 11px; font-weight: 600; - cursor: pointer; - transition: all 0.15s ease; - } - .company-chip:hover { border-color: var(--border-bright); color: var(--text-primary); } - .company-chip[data-active="true"] { - background: var(--accent-glow); - border-color: var(--accent); - color: var(--accent); - } - .company-chip-icon { font-size: 12px; } - .company-manage-btn { padding: 2px 6px; font-size: 11px; margin-left: 2px; } + /* (Removed) Pill-shaped `.company-chip` / `.company-manage-btn` — + the Corp toggle now lives in the header toolbar reusing the + existing `.icon-btn.toggle-chip` rounded-rectangle look. See + #companyChip in sidebar.html. */ .company-name-input { flex: 1; background: var(--input-bg); border: 1px solid var(--border); border-radius: 6px; padding: 6px 10px; color: var(--text-primary); font-size: 12px; @@ -407,6 +391,33 @@ background: var(--accent-glow); } + /* Per-agent Knowledge Mix slider row — sits between the controls + row and the (collapsed) prompt editor. Indent matches the + prompt-editor indent (38px) so the emoji stays as the visual + "ruler" for everything that follows. */ + .company-agent-mix-row { + display: flex; align-items: center; gap: 8px; + margin: 6px 0 0 38px; + font-size: 10px; color: var(--text-dim); + } + .company-agent-mix-label { flex-shrink: 0; } + .company-agent-mix-slider { + flex: 1; min-width: 0; + accent-color: var(--accent); + cursor: pointer; + } + .company-agent-mix-slider:disabled { opacity: 0.5; cursor: not-allowed; } + .company-agent-mix-hint { + flex-shrink: 0; font-size: 9.5px; color: var(--text-dim); + min-width: 165px; text-align: right; + } + .company-agent-mix-cbwrap { + display: inline-flex; align-items: center; gap: 3px; + font-size: 9.5px; cursor: pointer; color: var(--text-dim); + flex-shrink: 0; + } + .company-agent-mix-cbwrap input[type="checkbox"] { accent-color: var(--accent); } + /* Expandable prompt editor under each agent card. Toggled via the Edit button. Three textareas (tagline / specialty / persona) + Reset / Save / Cancel — empty save clears that field's override. */ diff --git a/media/sidebar.html b/media/sidebar.html index d9bc85c..8d4e191 100644 --- a/media/sidebar.html +++ b/media/sidebar.html @@ -15,6 +15,15 @@ + + +