diff --git a/.astra/tests/stress/.astra/cache/259a37934ead3910a8722b82054d46d2ca2057b05c488be1dcf439166ac5a9a1.json b/.astra/tests/stress/.astra/cache/259a37934ead3910a8722b82054d46d2ca2057b05c488be1dcf439166ac5a9a1.json index 25f854c..aa93fb2 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": 1779185954028, + "createdAt": 1779186936004, "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 059892a..532a5a4 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": 1779185954026, + "createdAt": 1779186936000, "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 db2169c..0aa5fd1 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": 1779185954024, + "createdAt": 1779186935997, "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 b5c2a61..cf21064 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_1779185954011\ndate: 2026-05-19T10:19:14.030Z\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]** 전략 수립 중... (11ms)\n- **[RESEARCHER]** 핵심 정보 수집 및 분석 중... (3ms)\n- **[WRITER]** 최종 리포트 작성 및 편집 중... (2ms)\n", - "createdAt": 1779185954030, + "result": "---\nid: stress_conflict_1779186935983\ndate: 2026-05-19T10:35:36.005Z\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]** 핵심 정보 수집 및 분석 중... (3ms)\n- **[WRITER]** 최종 리포트 작성 및 편집 중... (4ms)\n", + "createdAt": 1779186936005, "modelVersion": "unknown" } \ No newline at end of file diff --git a/.astra/tests/stress/.astra/missions/stress_conflict_1779185954011.json b/.astra/tests/stress/.astra/missions/stress_conflict_1779186935983.json similarity index 81% rename from .astra/tests/stress/.astra/missions/stress_conflict_1779185954011.json rename to .astra/tests/stress/.astra/missions/stress_conflict_1779186935983.json index 5fb4eaa..0f1ce26 100644 --- a/.astra/tests/stress/.astra/missions/stress_conflict_1779185954011.json +++ b/.astra/tests/stress/.astra/missions/stress_conflict_1779186935983.json @@ -1,8 +1,8 @@ { - "missionId": "stress_conflict_1779185954011", + "missionId": "stress_conflict_1779186935983", "status": "completed", - "startTime": "2026-05-19T10:19:14.011Z", - "totalElapsedMs": 20, + "startTime": "2026-05-19T10:35:35.983Z", + "totalElapsedMs": 24, "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": 11, + "durationMs": 13, "message": "전략 수립 중...", - "ts": "2026-05-19T10:19:14.022Z" + "ts": "2026-05-19T10:35:35.996Z" }, { "from": "planner", "to": "researcher", "durationMs": 3, "message": "핵심 정보 수집 및 분석 중...", - "ts": "2026-05-19T10:19:14.025Z" + "ts": "2026-05-19T10:35:35.999Z" }, { "from": "researcher", "to": "writer", - "durationMs": 2, + "durationMs": 4, "message": "최종 리포트 작성 및 편집 중...", - "ts": "2026-05-19T10:19:14.027Z" + "ts": "2026-05-19T10:35:36.003Z" }, { "from": "writer", "to": "completed", - "durationMs": 4, + "durationMs": 3, "message": "미션 완료", - "ts": "2026-05-19T10:19:14.031Z" + "ts": "2026-05-19T10:35:36.006Z" } ], "resilienceMetrics": { diff --git a/PATCHNOTES.md b/PATCHNOTES.md index 55b0f6d..25eef50 100644 --- a/PATCHNOTES.md +++ b/PATCHNOTES.md @@ -1,5 +1,15 @@ # Astra Patch Notes +## v2.2.34 (2026-05-19) +### 🚨 결정적 진단: activate / slash 진입 popup notification +- **Activation 시점 popup:** VS Code/Antigravity가 시작될 때 화면 우측 하단에 `📡 Astra vX.Y.Z activated (PID=...)` 알림. 우리 vsix가 실제로 활성화됐는지 1초 안에 확인 가능. 같은 이름의 빌트인 extension이 우리 코드를 가리는 케이스 발견용. +- **Slash 진입 popup:** `/research`, `/benchmark`, `/youtube`, `/blog` 명령이 slashRouter에 도달하면 `📻 Datacollect Radio: /benchmark 진입` 알림. OutputChannel 안 보고도 결정. +- **신규 패키징:** `astra-2.2.34.vsix`. + +--- + + + ## v2.2.33 (2026-05-19) ### 🔍 Slash 명령 진단: dispatch root 로깅 + StatusBar toast - **dispatch root 진입 trace:** webview에서 들어오는 모든 메시지(type + value preview)를 OutputChannel(Astra)에 log. "메시지가 진짜로 Astra에 도착했는지"부터 결정적으로 판별 가능. diff --git a/package.json b/package.json index aca254d..7f0495a 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "astra", "displayName": "Astra", "description": "The personal intelligence layer for Antigravity and VS Code. A private cognitive partner for deep project context, memory, and proactive strategic decision-making.", - "version": "2.2.33", + "version": "2.2.34", "publisher": "g1nation", "license": "MIT", "icon": "assets/icon.png", diff --git a/src/extension.ts b/src/extension.ts index 80574c2..ca3ae21 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -49,7 +49,13 @@ const TELEGRAM_TOKEN_SECRET_KEY = 'g1nation.telegram.botToken'; * Astra Extension Entry Point */ export async function activate(context: vscode.ExtensionContext) { - logInfo('Astra activating...'); + // Activation 시점 popup — 사용자 환경(Antigravity 등 VS Code 변종)에서 우리 vsix가 + // 실제로 활성화됐는지 결정적으로 가시화. 같은 이름의 빌트인이 우선해 우리 코드가 + // 활성화 안 되는 케이스를 즉시 발견 가능. + const ext = vscode.extensions.getExtension('g1nation.astra'); + const version = ext?.packageJSON?.version || '(unknown)'; + void vscode.window.showInformationMessage(`📡 Astra v${version} activated (PID=${process.pid})`); + logInfo(`Astra activating... version=${version} pid=${process.pid}`); // Initialize Astra Path Resolver (.astra → ConnectAI/.astra/) initAstraPathResolver(context); diff --git a/src/features/datacollect/slashRouter.ts b/src/features/datacollect/slashRouter.ts index 0267609..2cabdb8 100644 --- a/src/features/datacollect/slashRouter.ts +++ b/src/features/datacollect/slashRouter.ts @@ -55,8 +55,10 @@ export async function handleSlashCommand( const arg = spaceIdx === -1 ? '' : trimmed.slice(spaceIdx + 1).trim(); logInfo(`[SLASH] handleSlashCommand start head=${head} arg="${arg.slice(0, 60)}" bridge=${getBridgeBaseUrl()}`); - // 사용자가 OutputChannel을 안 봐도 진입 사실을 확인할 수 있도록 일회성 toast. - // chunk(view, ...)가 webview 비활성 등으로 silently drop돼도 toast는 항상 표시. + // 사용자가 OutputChannel을 안 봐도 진입 사실을 확인할 수 있도록 popup + statusbar. + // chunk(view, ...)가 webview 비활성 등으로 silently drop돼도 popup은 화면 우측 하단에 + // 큼지막하게 표시된다. setStatusBarMessage는 보조. + void vscode.window.showInformationMessage(`📻 Datacollect Radio: ${head} 진입`); void vscode.window.setStatusBarMessage(`📻 Datacollect Radio: ${head} 처리 중…`, 5000); chunk(view, `\n\n**📻 Datacollect Radio** · \`${head}\` · bridge=\`${getBridgeBaseUrl()}\`\n\n`);