diff --git a/.astra/project-context/architecture.md b/.astra/project-context/architecture.md
index 4c243ed..30c4e71 100644
--- a/.astra/project-context/architecture.md
+++ b/.astra/project-context/architecture.md
@@ -3,15 +3,15 @@
## Snapshot
-- **Workspace**: `ConnectAI` `v2.1.2` _(absolute path varies by environment; resolved from the active VS Code workspace)_
+- **Workspace**: `ConnectAI` `v2.1.8` _(absolute path varies by environment; resolved from the active VS Code workspace)_
- **Description**: The personal intelligence layer for Antigravity and VS Code. A private cognitive partner for deep project context, memory, and proactive strategic decision-making.
- **Stack**: TypeScript, Node.js, VS Code Extension, LM Studio SDK, Test runner
-- **Stats**: 205 source files, ~36,036 lines across 5 top-level modules.
+- **Stats**: 214 source files, ~39,400 lines across 5 top-level modules.
## Last Refresh
-- **Time**: 2026-05-13T17:43:53.933Z
-- **Files newly analysed**: 0
-- **Files reused from cache**: 205
+- **Time**: 2026-05-14T13:24:53.642Z
+- **Files newly analysed**: 11
+- **Files reused from cache**: 203
## Directory Map
```mermaid
@@ -37,11 +37,11 @@ mindmap
> Arrows: which top-level module imports from which.
```mermaid
flowchart LR
- src["src/ 100 files"]
+ src["src/ 102 files"]
media["media/ 6 files"]
tests["tests/ 27 files"]
core_py["core_py/ 6 files"]
- docs["docs/ 66 files"]
+ docs["docs/ 73 files"]
tests --> src
```
@@ -53,21 +53,21 @@ flowchart LR
## Hub Files
> Imported by many other files — touching these has wide blast radius.
-- `src/utils.ts` — referenced by **43** files
-- `src/config.ts` — referenced by **12** files
+- `src/utils.ts` — referenced by **44** files
+- `src/config.ts` — referenced by **13** files
- `src/lib/paths.ts` — referenced by **10** files
-- `src/features/company/types.ts` — referenced by **9** files · Type definitions for the 1인 기업 (One-Person Company) mode. The mode turns the user into a virtual CEO that dispatches work to a roster of specialist agents. Each turn produces a session directory conta
-- `src/features/company/agents.ts` — referenced by **7** files · The 9-agent roster for 1인 기업 모드. Each entry is a static description — persona, role, specialty — used to build the specialist's system prompt at dispatch time. The set was adopted from Connectorigin's
+- `src/features/company/types.ts` — referenced by **10** files · Type definitions for the 1인 기업 (One-Person Company) mode. The mode turns the user into a virtual CEO that dispatches work to a roster of specialist agents. Each turn produces a session directory conta
+- `src/retrieval/lessonHelpers.ts` — referenced by **6** files · Lesson / Experience Memory — pure helpers (no vscode dependency) "Lesson" = a markdown file in the active brain that captures a past mistake/risk and how to avoid repeating it. Identified by a lessons
- `src/skills/agentKnowledgeMap.ts` — referenced by **6** files
- `src/lib/engine.ts` — referenced by **6** files
- `src/core/services.ts` — referenced by **6** files
## Modules
-### `src/` — 100 files, ~23,874 lines
+### `src/` — 102 files, ~25,874 lines
**Sub-directories**
-- `src/features/` (28) — The 9-agent roster for 1인 기업 모드. Each entry is a static description — persona, role, specialty — used to build the speci
+- `src/features/` (29) — 기본 에이전트 로스터 — 1인 기업 모드의 출고 디폴트. 설계 의도: 제품 개발 파이프라인(기획 → 디자인 → 개발 → QA → 출시 → 마케팅 → 회고)을 한 사람이 1인 기업으로 운영할 때 필요한 직군을 모두 커
- `src/core/` (15) — Astra Path Resolver (경로 해결기) Astra의 모든 데이터 파일(.astra 디렉토리)의 경로를 중앙에서 관리합니다. 확장 프로그램의 설치 경로(extensionUri) 기반으로 .astra 디렉토
- `src/memory/` (8) — Episodic Memory (일화 기억) 과거 대화/회의/결정의 맥락 흐름을 저장합니다. 세션 종료 시 자동으로 에피소드를 요약하여 저장합니다. "왜 이렇게 결정했는지", "어떤 흐름으로 진행했는지" 기록. 저장
- `src/retrieval/` (8) — Brain Index — persistent, mtime-keyed tokenized cache of the Second Brain RAG 검색은 매 질의마다 브레인의 모든 .md 파일을 읽고 토크나이즈해서 TF-I
@@ -77,42 +77,42 @@ flowchart LR
- `src/lmstudio/` (4) — 4 files (.ts)
- `src/sidebar/` (4) — 4 files (.ts)
- `src/skills/` (4) — 4 files (.ts)
-- `src/agents/` (2) — 2 files (.ts)
+- `src/agents/` (3) — Reflection → Lesson persistence Take the Reflector agent's structured critique and persist any substantive findings as a
- `src/scaffolder/` (2) — Scaffolder template catalog. Templates are pure data — (projectName) => { [relativePath]: contents }. New templates are
**Key files**
- `src/utils.ts` (268 lines)
-- `src/config.ts` (216 lines)
-- `src/features/company/types.ts` (150 lines) — Type definitions for the 1인 기업 (One-Person Company) mode. The mode turns the user into a virtual CEO that dispatches work to a roster of specialist agents. Each turn produces a session directory conta
+- `src/config.ts` (224 lines)
+- `src/features/company/types.ts` (331 lines) — Type definitions for the 1인 기업 (One-Person Company) mode. The mode turns the user into a virtual CEO that dispatches work to a roster of specialist agents. Each turn produces a session directory conta
- `src/lib/paths.ts` (151 lines)
-- `src/sidebarProvider.ts` (3026 lines)
-- `src/features/company/agents.ts` (136 lines) — The 9-agent roster for 1인 기업 모드. Each entry is a static description — persona, role, specialty — used to build the specialist's system prompt at dispatch time. The set was adopted from Connectorigin's
+- `src/features/company/companyConfig.ts` (877 lines) — State + config plumbing for 1인 기업 모드. Two surfaces: - CompanyState (runtime data: enabled flag, company name, which agents are active, per-agent model overrides). Persisted in VS Code's globalState so
+- `src/sidebarProvider.ts` (3232 lines)
- `src/memory/types.ts` (126 lines) — Memory Type Definitions (메모리 타입 정의) Astra의 5-Layer Cognitive Memory System의 모든 타입을 정의합니다. ① Short-Term ② Long-Term ③ Project ④ Procedural ⑤ Episodic
- `src/retrieval/scoring.ts` (518 lines) — Scoring Engine — TF-IDF + Bilingual Tokenizer 단순 includes() 키워드 매칭을 넘어서, TF-IDF 가중치 기반의 문서 스코어링을 제공합니다. 한국어/영어 양국어 토크나이저를 포함합니다.
- `src/skills/agentKnowledgeMap.ts` (374 lines)
- `src/core/services.ts` (164 lines)
-- `src/agent.ts` (3232 lines)
-- `src/features/company/companyConfig.ts` (330 lines) — State + config plumbing for 1인 기업 모드. Two surfaces: - CompanyState (runtime data: enabled flag, company name, which agents are active, per-agent model overrides). Persisted in VS Code's globalState so
- `src/retrieval/lessonHelpers.ts` (325 lines) — Lesson / Experience Memory — pure helpers (no vscode dependency) "Lesson" = a markdown file in the active brain that captures a past mistake/risk and how to avoid repeating it. Identified by a lessons
-- `src/lib/engine.ts` (880 lines)
+- `src/agent.ts` (3232 lines)
+- `src/lib/engine.ts` (906 lines)
- `src/features/approval/approvalQueue.ts` (129 lines)
- `src/integrations/telegram/telegramClient.ts` (154 lines)
+- `src/features/company/dispatcher.ts` (631 lines) — Sequential dispatcher for 1인 기업 모드. Drives one company "turn": user prompt → CEO planner (JSON {brief, tasks}) → for each task in plan: dispatch one specialist (sequentially) - build specialist prompt
- `src/features/projectArchitecture/scanner.ts` (644 lines) — Deep static analyser for the Project Architecture Context generator. Walks the project tree (skipping the usual nodemodules / out / dist noise), pulls the role of each interesting file from its leadin
- `src/lib/contextManager.ts` (275 lines) — Context Manager (컨텍스트 한계 관리) "context length = 132k" 는 "답변을 132k 토큰까지 생성해도 된다" 가 아닙니다. 시스템 프롬프트 + 대화 기록 + 입력 문서 + 생성될 답변 + 여유분 ≤ context length 이 모듈은 요청을 보내기 전에 입력 토큰을 추정하고, - 동적으로 출력 상한(maxTokens)을 계
+- `src/features/company/agents.ts` (184 lines) — 기본 에이전트 로스터 — 1인 기업 모드의 출고 디폴트. 설계 의도: 제품 개발 파이프라인(기획 → 디자인 → 개발 → QA → 출시 → 마케팅 → 회고)을 한 사람이 1인 기업으로 운영할 때 필요한 직군을 모두 커버한다. 각 에이전트는 - name — 직군에 어울리는 한국식 닉네임 - role — 한국어 정식 직함 (어떤 일을 하는 사람인지) - tagl
- `src/core/astraPath.ts` (50 lines) — Astra Path Resolver (경로 해결기) Astra의 모든 데이터 파일(.astra 디렉토리)의 경로를 중앙에서 관리합니다. 확장 프로그램의 설치 경로(extensionUri) 기반으로 .astra 디렉토리를 해결하여, 사용자 프로젝트 루트가 아닌 ConnectAI 패키지 내부에 데이터를 저장합니다. 이 모듈은 AAL(Astra Autonomou
- `src/extension.ts` (966 lines)
- `src/features/projectChronicle/types.ts` (118 lines)
- `src/lmstudio/client.ts` (147 lines)
- `src/retrieval/brainIndex.ts` (325 lines) — Brain Index — persistent, mtime-keyed tokenized cache of the Second Brain RAG 검색은 매 질의마다 브레인의 모든 .md 파일을 읽고 토크나이즈해서 TF-IDF 점수를 계산했습니다 — 파일 수가 많아지면 그게 병목입니다. 이 모듈은 /.astra/brain-index.json 에
-- `src/features/company/promptBuilder.ts` (202 lines) — System-prompt construction for company-mode agents. Each specialist needs a prompt that includes: - Their identity (name, role, specialty) + optional persona. - The action-tag contract (,
-- `src/features/company/sessionStore.ts` (231 lines) — Disk persistence for company-mode session artefacts. Each company turn produces a timestamped directory: /.astra/company/sessions/2026-05-13T21-29/ ├─ brief.md ← CEO's task decompositio
+- `src/features/company/promptBuilder.ts` (231 lines) — System-prompt construction for company-mode agents. Each specialist needs a prompt that includes: - Their identity (name, role, specialty) + optional persona. - The action-tag contract (,
-### `media/` — 6 files, ~4,099 lines
+### `media/` — 6 files, ~5,337 lines
**Key files**
-- `media/sidebar.css` (1225 lines) — Stylesheet
-- `media/sidebar.js` (1874 lines)
-- `media/sidebar.html` (356 lines) — Astra
+- `media/sidebar.css` (1450 lines) — Stylesheet
+- `media/sidebar.js` (2791 lines)
+- `media/sidebar.html` (452 lines) — Astra
- `media/settings-panel.css` (210 lines) — Stylesheet
- `media/settings-panel.html` (164 lines) — Astra Settings
- `media/settings-panel.js` (270 lines)
@@ -160,10 +160,10 @@ flowchart LR
- `core_py/optimizer.py` (55 lines)
- `core_py/queue_worker.py` (82 lines)
-### `docs/` — 66 files, ~2,716 lines
+### `docs/` — 73 files, ~2,842 lines
**Sub-directories**
-- `docs/records/` (54) — Astra Project Chronicle Records
+- `docs/records/` (61) — Astra Project Chronicle Records
- `docs/docs/` (5) — docs Chronicle Records
**Key files**
@@ -220,7 +220,7 @@ flowchart LR
- `g1nation.company.toggle` — Astra: Toggle 1인 기업 Mode
- `g1nation.company.manage` — Astra: Manage 1인 기업 Agents
- `g1nation.company.openSessions` — Astra: Open 1인 기업 Sessions Folder
-- **Configuration** (39 settings):
+- **Configuration** (40 settings):
- `g1nation.multiAgentEnabled` *(boolean)* _(default: `false`)_ — Enable Multi-Agent Workflow (Planner -> Researcher -> Writer) for complex tasks.
- `g1nation.memoryEnabled` *(boolean)* _(default: `true`)_ — Enable layered memory injection before each model response.
- `g1nation.memoryShortTermMessages` *(number)* _(default: `8`)_ — Number of recent conversation messages included as short-term memory.
@@ -260,6 +260,7 @@ flowchart LR
- `g1nation.embeddingBlendAlpha` *(number)* _(default: `0.5`)_ — Hybrid score blend: 0 = pure TF-IDF (sparse / keyword), 1 = pure embedding cosine (dense / semantic), 0.5 = balanced. Only used when g1nation.embeddingModel is set. Default 0.5.
- `g1nation.knowledgeMix.secondBrainWeight` *(number)* _(default: `50`)_ — Knowledge Mix (0–100): how heavily the assistant should lean on Second Brain evidence vs. its own general knowledge. 0 = Second Brain disabled (model knowledge only). 50 = balanced (legacy default). 1
- `g1nation.enableReflection` *(boolean)* _(default: `true`)_ — Insert a Self-Reflection (Reflector) stage between Researcher and Writer in the multi-agent workflow. The Reflector critically reviews the plan and research output (gaps, contradictions, unsupported c
+ - `g1nation.autoLessonFromReflection` *(boolean)* _(default: `true`)_ — Persist substantive Reflector critiques to the active brain as lesson cards under `lessons/auto-reflector/`. Future missions automatically retrieve these cards (via the existing Experience-Memory pipe
## Dependencies
- **Runtime** (2): `@lmstudio/sdk`, `pdf-parse`
@@ -307,7 +308,7 @@ Astra는 대표님의 명시적인 승인 하에 로컬 시스템의 강력한
**Designed for High-Performance Decision Making.**
Copyright (C) **g1nation**. All rights reserved.
-_Last auto-scan: 2026-05-13T17:43:53.933Z · signature `5020e02c`_
+_Last auto-scan: 2026-05-14T13:24:53.642Z · signature `f554c52a`_
## Purpose
diff --git a/.astra/project-context/scan-cache.json b/.astra/project-context/scan-cache.json
index 7560c6b..99834b4 100644
--- a/.astra/project-context/scan-cache.json
+++ b/.astra/project-context/scan-cache.json
@@ -1,6 +1,6 @@
{
"version": 1,
- "generatedAt": "2026-05-13T17:43:53.948Z",
+ "generatedAt": "2026-05-14T13:24:53.652Z",
"files": {
"src/agent.ts": {
"mtimeMs": 1778683690000,
@@ -58,6 +58,16 @@
"src/lib/engine"
]
},
+ "src/agents/reflectionPersister.ts": {
+ "mtimeMs": 1778763469000,
+ "size": 11986,
+ "lines": 308,
+ "role": "Reflection → Lesson persistence Take the Reflector agent's structured critique and persist any substantive findings as a lesson card in /lessons/auto-reflector/. The existing brain retrieval",
+ "imports": [
+ "src/utils",
+ "src/retrieval/lessonHelpers"
+ ]
+ },
"src/bridge.ts": {
"mtimeMs": 1778681774000,
"size": 9705,
@@ -72,9 +82,9 @@
]
},
"src/config.ts": {
- "mtimeMs": 1778690442000,
- "size": 9619,
- "lines": 216,
+ "mtimeMs": 1778763415000,
+ "size": 10185,
+ "lines": 224,
"role": "",
"imports": []
},
@@ -312,23 +322,22 @@
]
},
"src/features/company/agents.ts": {
- "mtimeMs": 1778680824000,
- "size": 6684,
- "lines": 136,
- "role": "The 9-agent roster for 1인 기업 모드. Each entry is a static description — persona, role, specialty — used to build the specialist's system prompt at dispatch time. The set was adopted from Connectorigin's",
+ "mtimeMs": 1778764697000,
+ "size": 11623,
+ "lines": 184,
+ "role": "기본 에이전트 로스터 — 1인 기업 모드의 출고 디폴트. 설계 의도: 제품 개발 파이프라인(기획 → 디자인 → 개발 → QA → 출시 → 마케팅 → 회고)을 한 사람이 1인 기업으로 운영할 때 필요한 직군을 모두 커버한다. 각 에이전트는 - name — 직군에 어울리는 한국식 닉네임 - role — 한국어 정식 직함 (어떤 일을 하는 사람인지) - tagl",
"imports": [
"src/features/company/types"
]
},
"src/features/company/ceoPlanner.ts": {
- "mtimeMs": 1778681095000,
- "size": 8406,
- "lines": 219,
+ "mtimeMs": 1778762677000,
+ "size": 11307,
+ "lines": 266,
"role": "CEO planner — turns a user prompt into a CompanyTaskPlan. Lifecycle of one planner call: 1. Build the planner system prompt (template + active-agent list). 2. Hit the AI service with the user prompt a",
"imports": [
"src/core/services",
"src/utils",
- "src/features/company/agents",
"src/features/company/companyConfig",
"src/features/company/promptAssets",
"src/features/company/promptBuilder",
@@ -336,22 +345,22 @@
]
},
"src/features/company/ceoReporter.ts": {
- "mtimeMs": 1778681122000,
- "size": 4812,
- "lines": 120,
+ "mtimeMs": 1778762677000,
+ "size": 4895,
+ "lines": 122,
"role": "CEO synthesis pass — runs after all specialists have finished. Given the per-agent outputs, this asks the CEO model to produce the final markdown report (✅ 완료 / 🚀 다음 / 💡 인사이트) that the user actually",
"imports": [
"src/core/services",
"src/utils",
- "src/features/company/agents",
+ "src/features/company/companyConfig",
"src/features/company/promptAssets",
"src/features/company/types"
]
},
"src/features/company/companyConfig.ts": {
- "mtimeMs": 1778686762000,
- "size": 13473,
- "lines": 330,
+ "mtimeMs": 1778764783000,
+ "size": 39070,
+ "lines": 877,
"role": "State + config plumbing for 1인 기업 모드. Two surfaces: - CompanyState (runtime data: enabled flag, company name, which agents are active, per-agent model overrides). Persisted in VS Code's globalState so",
"imports": [
"src/features/company/agents",
@@ -359,9 +368,9 @@
]
},
"src/features/company/dispatcher.ts": {
- "mtimeMs": 1778686839000,
- "size": 20029,
- "lines": 434,
+ "mtimeMs": 1778762677000,
+ "size": 29279,
+ "lines": 631,
"role": "Sequential dispatcher for 1인 기업 모드. Drives one company \"turn\": user prompt → CEO planner (JSON {brief, tasks}) → for each task in plan: dispatch one specialist (sequentially) - build specialist prompt",
"imports": [
"src/core/services",
@@ -369,7 +378,6 @@
"src/skills/scopedBrainRetriever",
"src/skills/agentKnowledgeMap",
"src/retrieval/knowledgeMix",
- "src/features/company/agents",
"src/features/company/companyConfig",
"src/features/company/ceoPlanner",
"src/features/company/ceoReporter",
@@ -380,18 +388,28 @@
]
},
"src/features/company/index.ts": {
- "mtimeMs": 1778686769000,
- "size": 1114,
- "lines": 55,
+ "mtimeMs": 1778764795000,
+ "size": 1827,
+ "lines": 83,
"role": "Public API for 1인 기업 모드. Consumers (sidebarProvider, chatHandlers, command handlers) import from this barrel so internal layout can move around without touching every call site.",
"imports": [
"src/features/company/agents",
"src/features/company/companyConfig",
"src/features/company/types",
+ "src/features/company/pipelineTemplates",
"src/features/company/dispatcher",
"src/features/company/sessionStore"
]
},
+ "src/features/company/pipelineTemplates.ts": {
+ "mtimeMs": 1778762677000,
+ "size": 11351,
+ "lines": 211,
+ "role": "Built-in pipeline templates for 1인 기업 모드. These are blueprints, not data — they're surfaced in the manage panel's \"템플릿에서 추가\" dropdown so a non-developer user can stamp out a working pipeline in one cl",
+ "imports": [
+ "src/features/company/types"
+ ]
+ },
"src/features/company/promptAssets.ts": {
"mtimeMs": 1778680887000,
"size": 6782,
@@ -400,9 +418,9 @@
"imports": []
},
"src/features/company/promptBuilder.ts": {
- "mtimeMs": 1778686868000,
- "size": 10317,
- "lines": 202,
+ "mtimeMs": 1778762677000,
+ "size": 12835,
+ "lines": 231,
"role": "System-prompt construction for company-mode agents. Each specialist needs a prompt that includes: - Their identity (name, role, specialty) + optional persona. - The action-tag contract (, ",
"imports": [
"src/features/company/agents",
@@ -442,22 +460,22 @@
]
},
"src/features/company/telegramReport.ts": {
- "mtimeMs": 1778686162000,
- "size": 8111,
+ "mtimeMs": 1778762677000,
+ "size": 8126,
"lines": 168,
"role": "Telegram mirror for the secretary agent (영숙). After every company turn finishes, this helper takes the CEO synthesis + task list and pushes it to the user's Telegram chat — same behaviour as Connector",
"imports": [
"src/utils",
"src/integrations/telegram/telegramClient",
"src/integrations/telegram/conversationHistory",
- "src/features/company/agents",
+ "src/features/company/companyConfig",
"src/features/company/types"
]
},
"src/features/company/types.ts": {
- "mtimeMs": 1778686714000,
- "size": 6454,
- "lines": 150,
+ "mtimeMs": 1778764725000,
+ "size": 14306,
+ "lines": 331,
"role": "Type definitions for the 1인 기업 (One-Person Company) mode. The mode turns the user into a virtual CEO that dispatches work to a roster of specialist agents. Each turn produces a session directory conta",
"imports": []
},
@@ -629,9 +647,9 @@
]
},
"src/lib/engine.ts": {
- "mtimeMs": 1778690608000,
- "size": 40830,
- "lines": 880,
+ "mtimeMs": 1778763448000,
+ "size": 42698,
+ "lines": 906,
"role": "",
"imports": [
"src/core/lock",
@@ -639,7 +657,9 @@
"src/utils",
"src/lib/diagnostics",
"src/lib/formatter",
- "src/types/interfaces"
+ "src/types/interfaces",
+ "src/config",
+ "src/agents/reflectionPersister"
]
},
"src/lib/formatter.ts": {
@@ -902,9 +922,9 @@
]
},
"src/sidebar/chatHandlers.ts": {
- "mtimeMs": 1778686906000,
- "size": 13454,
- "lines": 266,
+ "mtimeMs": 1778764814000,
+ "size": 22151,
+ "lines": 428,
"role": "",
"imports": [
"src/sidebarProvider",
@@ -923,9 +943,9 @@
]
},
"src/sidebarProvider.ts": {
- "mtimeMs": 1778693581000,
- "size": 132228,
- "lines": 3026,
+ "mtimeMs": 1778764853000,
+ "size": 141684,
+ "lines": 3232,
"role": "",
"imports": [
"src/utils",
@@ -945,7 +965,8 @@
"src/features/projectArchitecture",
"src/features/projectArchitecture/intentDetector",
"src/features/company",
- "src/core/services"
+ "src/core/services",
+ "src/features/company/dispatcher"
]
},
"src/skills/agentKnowledgeMap.ts": {
@@ -1021,8 +1042,8 @@
"imports": []
},
"media/settings-panel.html": {
- "mtimeMs": 1778255979000,
- "size": 7659,
+ "mtimeMs": 1778763966000,
+ "size": 7678,
"lines": 164,
"role": "Astra Settings",
"imports": []
@@ -1035,23 +1056,23 @@
"imports": []
},
"media/sidebar.css": {
- "mtimeMs": 1778688155000,
- "size": 49347,
- "lines": 1225,
+ "mtimeMs": 1778764979000,
+ "size": 59761,
+ "lines": 1450,
"role": "Stylesheet",
"imports": []
},
"media/sidebar.html": {
- "mtimeMs": 1778687548000,
- "size": 20499,
- "lines": 356,
+ "mtimeMs": 1778764039000,
+ "size": 28185,
+ "lines": 452,
"role": "Astra",
"imports": []
},
"media/sidebar.js": {
- "mtimeMs": 1778688191000,
- "size": 103898,
- "lines": 1874,
+ "mtimeMs": 1778764936000,
+ "size": 158341,
+ "lines": 2791,
"role": "",
"imports": []
},
@@ -1507,8 +1528,29 @@
"role": "Bug: 문제점을 읽고 어떻게 개선하는게 최선인지 분석해주면 좋겠어. 알겠습니다. 지금부터 ConnectAI 프로젝트에만 완전히 집중하겠습니다. ...",
"imports": []
},
+ "docs/records/ConnectAI/bugs/BUG-0012-질문이-있어-논문을-쓰려고해-논문-주제는-서비스적이-아닌-사용자가-ai에게-구조로-질문을-해야-사용자의-의도.md": {
+ "mtimeMs": 1778762677000,
+ "size": 2354,
+ "lines": 16,
+ "role": "Bug: 질문이 있어. 논문을 쓰려고해. 논문 주제는 서비스적이 아닌 사용자가 ai에게 구조로 질문을 해야 사용자의 의도에 맞는 답변을 받을 수 있을까야...",
+ "imports": []
+ },
+ "docs/records/ConnectAI/bugs/BUG-0013-thesis-paper를-쓰려고-하는데-아래와-같이-쓰면-좋을까-이런-식으로-쓰면-되지-않을까-싶음-1-in.md": {
+ "mtimeMs": 1778762677000,
+ "size": 2527,
+ "lines": 16,
+ "role": "Bug: Thesis paper를 쓰려고 하는데 아래와 같이 쓰면 좋을까? 이런 식으로 쓰면 되지 않을까 싶음 1. Introduction Thesis ...",
+ "imports": []
+ },
+ "docs/records/ConnectAI/bugs/BUG-0014-논문-outline-title-인간-ai-상호작용에서-의도-정렬을-높이기-위한-최소-질의-구조-연구-또는-사.md": {
+ "mtimeMs": 1778762677000,
+ "size": 2531,
+ "lines": 16,
+ "role": "Bug: 논문 Outline Title 인간-AI 상호작용에서 의도 정렬을 높이기 위한 최소 질의 구조 연구 또는 사용자의 인지적 편향을 보완하는 구조화...",
+ "imports": []
+ },
"docs/records/ConnectAI/chronicle.config.json": {
- "mtimeMs": 1778694061000,
+ "mtimeMs": 1778763875000,
"size": 416,
"lines": 11,
"role": "JSON configuration",
@@ -1584,6 +1626,20 @@
"role": "ADR: /Volumes/Data/project/Antigravity/ConnectAI self reflection 기능이 적용되었는지 확인해줘. 1인 ...",
"imports": []
},
+ "docs/records/ConnectAI/decisions/ADR-0011-e-wiki-connectai-self-reflection-기능이-있는데-어떻게-self-reflection.md": {
+ "mtimeMs": 1778762677000,
+ "size": 1604,
+ "lines": 19,
+ "role": "ADR: E:\\Wiki\\connectai self reflection 기능이 있는데 어떻게 SELF REFLECTION이 반영되는지 분석해줘.",
+ "imports": []
+ },
+ "docs/records/ConnectAI/decisions/ADR-0012-e-wiki-connectai-self-reflection-기능이-있는데-어떻게-self-reflection.md": {
+ "mtimeMs": 1778762677000,
+ "size": 1448,
+ "lines": 19,
+ "role": "ADR: E:\\Wiki\\connectai self reflection 기능이 있는데 어떻게 SELF REFLECTION이 반영되는지 분석해줘.",
+ "imports": []
+ },
"docs/records/ConnectAI/development/2026-05-02_answer-format-readability-tuning.md": {
"mtimeMs": 1777808065000,
"size": 1534,
@@ -1724,6 +1780,13 @@
"role": "Development Log: 너는 분석 요청하거나 내가 작업 요청을 할때 connectai architecture.md 문서를 참고하고 작업을 하나?",
"imports": []
},
+ "docs/records/ConnectAI/development/2026-05-14_reflector-에이전트가-1인-기업-에이전트-목록에는-안보이는데_implementation.md": {
+ "mtimeMs": 1778762677000,
+ "size": 1519,
+ "lines": 24,
+ "role": "Development Log: REFLECTOR 에이전트가 1인 기업 에이전트 목록에는 안보이는데",
+ "imports": []
+ },
"docs/records/ConnectAI/discussions/2026-05-13_volumes-data-project-antigravity-connectai-이-프로젝트-작업-할-거야.md": {
"mtimeMs": 1778690673000,
"size": 652,
@@ -1752,6 +1815,13 @@
"role": "Discussion: /Volumes/Data/project/Antigravity/ConnectAI 이 프로젝트를 작업할거야.",
"imports": []
},
+ "docs/records/ConnectAI/discussions/2026-05-14_최성연-알아-칼리버스에서-근무한데.md": {
+ "mtimeMs": 1778762677000,
+ "size": 1297,
+ "lines": 16,
+ "role": "Discussion: 최성연 알아? 칼리버스에서 근무한데",
+ "imports": []
+ },
"docs/records/ConnectAI/planning/2026-05-02_project-chronicle-guard.md": {
"mtimeMs": 1777808065000,
"size": 2946,
@@ -1795,7 +1865,7 @@
"imports": []
},
"docs/records/ConnectAI/timeline.md": {
- "mtimeMs": 1778694061000,
+ "mtimeMs": 1778763539000,
"size": 8783,
"lines": 134,
"role": "Project Timeline",
diff --git a/.astra/tests/stress/.astra/cache/259a37934ead3910a8722b82054d46d2ca2057b05c488be1dcf439166ac5a9a1.json b/.astra/tests/stress/.astra/cache/259a37934ead3910a8722b82054d46d2ca2057b05c488be1dcf439166ac5a9a1.json
index d80baf1..4cb3b35 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": 1778749506862,
+ "createdAt": 1778765114489,
"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 8cae4ef..9e2ec6e 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": 1778749506860,
+ "createdAt": 1778765114485,
"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 9ba7ab2..90e4ff3 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": 1778749506858,
+ "createdAt": 1778765114484,
"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 0eca010..02ca09f 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_1778749506840\ndate: 2026-05-14T09:05:06.864Z\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]** 전략 수립 중... (17ms)\n- **[RESEARCHER]** 핵심 정보 수집 및 분석 중... (2ms)\n- **[WRITER]** 최종 리포트 작성 및 편집 중... (2ms)\n",
- "createdAt": 1778749506864,
+ "result": "---\nid: stress_conflict_1778765114471\ndate: 2026-05-14T13:25:14.493Z\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]** 전략 수립 중... (10ms)\n- **[RESEARCHER]** 핵심 정보 수집 및 분석 중... (4ms)\n- **[WRITER]** 최종 리포트 작성 및 편집 중... (4ms)\n",
+ "createdAt": 1778765114493,
"modelVersion": "unknown"
}
\ No newline at end of file
diff --git a/.astra/tests/stress/.astra/missions/stress_conflict_1778749506840.json b/.astra/tests/stress/.astra/missions/stress_conflict_1778765114471.json
similarity index 80%
rename from .astra/tests/stress/.astra/missions/stress_conflict_1778749506840.json
rename to .astra/tests/stress/.astra/missions/stress_conflict_1778765114471.json
index fb73429..66c6313 100644
--- a/.astra/tests/stress/.astra/missions/stress_conflict_1778749506840.json
+++ b/.astra/tests/stress/.astra/missions/stress_conflict_1778765114471.json
@@ -1,8 +1,8 @@
{
- "missionId": "stress_conflict_1778749506840",
+ "missionId": "stress_conflict_1778765114471",
"status": "completed",
- "startTime": "2026-05-14T09:05:06.840Z",
- "totalElapsedMs": 25,
+ "startTime": "2026-05-14T13:25:14.471Z",
+ "totalElapsedMs": 22,
"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": 17,
+ "durationMs": 10,
"message": "전략 수립 중...",
- "ts": "2026-05-14T09:05:06.857Z"
+ "ts": "2026-05-14T13:25:14.481Z"
},
{
"from": "planner",
"to": "researcher",
- "durationMs": 2,
+ "durationMs": 4,
"message": "핵심 정보 수집 및 분석 중...",
- "ts": "2026-05-14T09:05:06.859Z"
+ "ts": "2026-05-14T13:25:14.485Z"
},
{
"from": "researcher",
"to": "writer",
- "durationMs": 2,
+ "durationMs": 4,
"message": "최종 리포트 작성 및 편집 중...",
- "ts": "2026-05-14T09:05:06.861Z"
+ "ts": "2026-05-14T13:25:14.489Z"
},
{
"from": "writer",
"to": "completed",
"durationMs": 4,
"message": "미션 완료",
- "ts": "2026-05-14T09:05:06.865Z"
+ "ts": "2026-05-14T13:25:14.493Z"
}
],
"resilienceMetrics": {
diff --git a/PATCHNOTES.md b/PATCHNOTES.md
index be4bd65..7f7f2ec 100644
--- a/PATCHNOTES.md
+++ b/PATCHNOTES.md
@@ -1,5 +1,15 @@
# Astra Patch Notes
+## v2.1.8 (2026-05-14)
+### 🏢 Company Agent Roster Overhaul & UI Polish
+- **에이전트 로스터 전면 개편:** 1인 기업 모드에 루나(사운드), 레오(유튜브), 아라(인스타) 등 특화된 에이전트를 추가하고 역할을 더욱 세분화했습니다.
+- **제품 개발 파이프라인 최적화:** 기획 → 디자인 → 개발 → QA → 감리로 이어지는 핵심 워크플로우를 강화하고 기본 활성 에이전트 구성을 조정했습니다.
+- **사이드바 UI 및 인터랙션 정교화:** `sidebar.js`와 스타일시트를 개선하여 대화 흐름의 시각적 안정성과 반응성을 높였습니다.
+- **비즈니스 엔진 고도화:** `companyConfig.ts` 및 핸들러 로직 수정을 통해 다중 에이전트 협업 시의 컨텍스트 유지 능력을 강화했습니다.
+
+---
+
+
## v2.1.7 (2026-05-14)
### 🚀 Version Up & Packaging Stabilization
- **버전 상향 및 패키징:** 프로젝트 버전을 `v2.1.7`로 업데이트하고 신규 VSIX 패키지를 생성했습니다.
diff --git a/astra-2.1.7.vsix b/astra-2.1.8.vsix
similarity index 50%
rename from astra-2.1.7.vsix
rename to astra-2.1.8.vsix
index b4b2a0b..c22c008 100644
Binary files a/astra-2.1.7.vsix and b/astra-2.1.8.vsix differ
diff --git a/docs/records/ConnectAI/chronicle.config.json b/docs/records/ConnectAI/chronicle.config.json
index 8a060b4..ce5d305 100644
--- a/docs/records/ConnectAI/chronicle.config.json
+++ b/docs/records/ConnectAI/chronicle.config.json
@@ -7,5 +7,5 @@
"corePurpose": "",
"detailLevel": "standard",
"createdAt": "2026-05-13T13:09:33.788Z",
- "updatedAt": "2026-05-14T12:42:12.047Z"
+ "updatedAt": "2026-05-14T13:04:35.099Z"
}
diff --git a/media/settings-panel.html b/media/settings-panel.html
index bc75170..b297191 100644
--- a/media/settings-panel.html
+++ b/media/settings-panel.html
@@ -77,8 +77,8 @@
-
Brain
-
현재 활성 brain 프로필 정보입니다. 프로필 추가·수정은 사이드바의 Brain 메뉴 또는 VS Code Settings에서 처리합니다.
+
두뇌 (지식 폴더)
+
현재 활성 두뇌 프로필 정보입니다. 추가·수정은 사이드바의 [변경 ▾ → 두뇌] 또는 VS Code Settings에서 처리합니다.