Files
connectai/PATCHNOTES.md
T
koriweb 6b017b0d31 feat: Bridge 타깃 토글 + /research 제거 + 환각·오염 방지 강화 (v2.2.205)
- Datacollect Bridge 로컬/NAS 타깃 토글(Settings 패널) + NAS URL/x-bridge-token.
  기본 local = 현행 동작 유지. (백엔드 NAS 분리 준비)
- /research(NotebookLM) 제거 — 로컬 Datacollect 앱 전용으로 분리.
- 에러로그 오염 차단: STT/스택트레이스/에러덤프를 장기기억 채굴 제외 + 자동
  추출 항목 14일 TTL(참조 시 슬라이딩 연장). 기존·수동 항목 무영향.
- 컨텍스트 [주제] 태깅 + 교차오염 방지 경계 지침.
- "확인 불가" 사실 날조 금지 규칙(R7과 구분).
- /meet STT 오타 보정: 철자 정규화 허용하되 사실 날조는 차단.

타입체크 + 407 테스트 통과.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 16:47:55 +09:00

213 KiB
Raw Blame History

Astra Patch Notes

v2.2.205 (2026-06-05)

🧹 백엔드 분리 준비 — Bridge 타깃 토글(로컬/NAS) + /research 제거

  • Datacollect Bridge 타깃 설정 추가 — Astra Settings 패널에서 로컬/NAS 전환 + NAS URL/토큰(x-bridge-token). 기본 로컬 = 현행 동작 그대로. (bridgeClient.ts · settings-panel · settingsPanelProvider.ts)
  • /research(NotebookLM) 제거 — Chrome/Google 로그인 의존이라 로컬 Datacollect 앱 전용으로 분리. benchmark/youtube/wikify/blog/meet 는 유지. (handlers.ts)

🛡️ 환각·오염 방지 강화 (코드 검토 기반)

  • 에러로그 오염 차단 — STT/스택트레이스/에러덤프를 장기기억 채굴에서 제외(looksLikeErrorLog, ERROR_NOISE) + 자동 추출 항목에 14일 TTL(참조 시 슬라이딩 연장). 기존·수동 항목 무영향. (LongTermMemory.ts · MemoryExtractor.ts)
  • 컨텍스트 주제 태깅 — 검색 청크에 [주제] 태그 + "다른 프로젝트·주제 섞지 말라" 경계 지침으로 무성 교차오염 방지. (contextBudget.ts)
  • "확인 불가" 블랭킷 규칙 — 근거 없는 사실 날조 금지(수치/날짜/고유명사/결정), R7(가정 후 진행)과 구분. (utils.ts)

🎙️ /meet STT 오타 보정

  • 음성→텍스트 오타를 문맥·도메인 지식으로 정규화하되 "철자 보정 ≠ 사실 날조" 명시 — 오타 하나로 전체를 "확인 불가"로 막지 않게. metadata 를 즉석 용어집으로 활용. (meetPrompt.ts)

v2.2.204 (2026-06-04)

/weekly 전면 교체 — 캘린더 task 기반 주간 보고서 (금주/차주)

  • 기존 /weekly(대표용 CEO 주간 리뷰 카드 — 고객/채용/런웨이 집계)는 제거하고, /weekly 를 task 기반 금주/차주 보고서로 일원화. (제거: dashboards.ts runWeekly + weekly 전용 헬퍼)
  • /weekly <차주 시작일> <차주 종료일> — 입력 날짜는 차주 기준, 금주(차주 시작 직전 7일)는 자동 역산해 함께 검색.
  • Google Tasks 의 마감/완료일로 금주·차주를 코드가 버킷팅(예측 가능), 각 task 메모(작업 상세·맥락)를 근거로 하위 세부 항목을 LLM 이 서술. [태그](예: [이머시브]/[3D App]/[기타])별로 정렬된 금주/차주 포맷 출력.
  • 신규 weeklyPrompt.ts + coordination.ts runWeekly.

🎯 /meet 정확도·실용성 개선

  • 캘린더 task 상세 강화 — 액션 아이템 표에 "작업 상세" 열 추가, 캘린더 notes 가 무슨 작업이고 무엇을 해야 하는지를 담도록 재구성 (meetPrompt.ts · handlers.ts · calendarHelpers.ts).
  • 할루시네이션·발언 오귀속 억제 — "발언자 무시" 규칙을 "발언자 추적"으로 반전, 비선형 회의 재조립("인접 ≠ 연결") + 근거·정확성 규칙(추론 금지, 불명확 시 "확인 필요", 없는 정보 날조 금지) 추가.

v2.2.203 (2026-06-01)

🐛 기업모드 dev-impl — 빈 깡통 파일 99% 발생 버그 (검출+자동 재작업 기본 ON)

증상: 사용자가 기획서 + 폴더 주고 "여기 개발해줘" 요청 → ASTRA 가 파일·폴더 만들고 "개발 완료" 보고 → 실제 파일을 열면 class/함수 본문이 비어 있음 (def foo(): pass · 빈 class · imports only). 99% 확률 재발.

원인 (감사로 확인):

  • 안전망 이미 존재: selfReflectorHollow.ts 가 정규식으로 빈 깡통 감지 + retry 로직
  • BUT 두 개 config 가 모두 OFF — selfReflectorEnabled + selfReflectorExternalEnabled
  • Phase A 켜면 [Self-Reflector Check] 블록이 답변에 노출 (UX 부작용), Phase B 는 +1 LLM 호출 비용 — 두 부작용 때문에 기본 OFF
  • 결과: 다수 사용자가 안전망 전혀 없는 상태 로 코드 작성 stage 실행 → 빈 깡통 그냥 통과

원인 분석 핵심:

  • 모델 한계도 있음 (작은 local LLM 이 다중 파일 한 번에 생성 시 attention 고갈 → 첫 2~3 파일만 완전, 나머지는 stub)
  • 그러나 대부분 ASTRA 로직 fix 가능 — 안전망 존재하는데 묶여 있던 문제

Fix 3종 (이번 빌드):

  1. Hollow check 를 selfReflector 와 분리 — 신규 설정 2개:

    • g1nation.hollowCheck.enabled (boolean, 기본 ON) — action-tag 가 있는 모든 응답에 무조건 hollow 스캔. LLM 호출 0.
    • g1nation.hollowCheck.autoRetry (boolean, 기본 ON) — 검출 시 1회 자동 재작업. Phase B 와 분리, 코드 작성 stage 의 단발 추가 호출.
    • dispatcher.ts 게이트 조건 교체 — selfReflectorEnabledhollowCheckEnabled, selfReflectorExternalEnabledhollowCheckAutoRetry
  2. dev-impl 프롬프트 강화 (pipelineTemplates.ts) — [빈 깡통 금지] 섹션 5개 규칙 추가:

    • 파일은 하나씩 생성, 모든 함수·메서드·클래스 본문 완전 구현 후 다음 파일로
    • 금지 패턴 명시: pass · ... · NotImplementedError · # TODO · 빈 class
    • 인터페이스/추상 메서드만 빈 본문 OK
    • 각 파일 생성 직후 자가 검증 "본문 비었나?"
    • 최종 요약에 파일별 핵심 동작 한 줄씩
    • 마지막 경고: "구조만 잡고 추후 구현" 패턴은 즉시 자동 재작업
  3. 기본값 변경 — 사용자 행동 없이 안전망 작동: hollow check 신규 toggle 둘 다 기본 ON. 옛 selfReflector Phase A/B 는 그대로 OFF (UX 부작용 보존).

예상 효과:

  • 옛: 빈 깡통 → 그대로 disk 기록 → "완료" 보고 → 사용자 발견
  • 새: 빈 깡통 → hollow detector 검출 → 1회 자동 재작업 → 다시 검출하면 사용자 경고 (무한 루프 방지)
  • 작은 local LLM 대상 ~80% stub 감소 예상 (per-file 순차 생성은 v2.2.204+ 검토)

솔직히 — 모델 한계 vs 로직 fix:

  • 로직 fix 로 70~85% 잡힘 (이번 빌드)
  • ⚠️ 남은 ~15% 는 모델 attention 한계 — 진짜 큰 프로젝트 (20+ 파일) 는 per-file 순차 생성 (B) 필요 — 다음 빌드 후보
  • ⚠️ 매우 작은 모델 (≤4B) 은 한계 더 빠름 — 더 큰 모델 (gemma-12b, qwen-32b) 권장

신규 패키징: astra-2.2.203.vsix.


v2.2.202 (2026-06-01)

🐛 기업모드 — Intent Alignment 가 일반 채팅 컨텍스트 무시하던 버그

증상: 사용자가 일반 채팅에서 프로젝트·요구사항을 충분히 논의한 뒤 기업모드로 전환해 후속 작업 을 요청하면, 분석기가 "추가 정보 필요 — 맥락/목표/기준/형식" 화면을 띄움. 사용자 입장에선 방금 다 말한 내용을 다시 묻는 느낌.

원인 (감사로 확인):

  • Intent Classifier 는 prior chat 컨텍스트(previousBrief/Tail) 를 받음 — 그래서 "follow-up vs new task" 분기는 정확
  • Intent Alignment (clarification 화면 만드는 분석기) 는 IntentAnalysisInput 인터페이스에 chat history 필드가 없음 — 오직 현재 사용자 메시지만 봄
  • 결과: 모드 전환 직후 첫 라운드의 분석기는 사용자가 이전에 일반 채팅에서 한 모든 설명을 못 봄 → context 빈칸 → openQuestions 에 "맥락은?" 추가

Fix:

  • intentAlignment.ts IntentAnalysisInputpriorChatSummary?: string 필드 추가
  • 시스템 프롬프트에 모드 전환 시 context 우선 추출 규칙 추가 — 일반 채팅에서 명시된 항목은 추측이 아니라 명시된 사실 로 취급
  • _buildUserMessage()[모드 전환 직전 일반 채팅 요약] 블록을 user message 상단에 주입
  • sidebarProvider.ts 호출 지점에서 this._agent.getHistory() → 최근 10 turn (!internal) 추출 → role: content 한 줄씩, content 200자 cap
  • 후속 라운드 (previousContract 있음) 면 history 중복 첨부 안 함 — 이미 contract 에 흡수됨

효과:

  • 일반 채팅 → 기업모드 전환 시 분석기가 prior chat 의 context/goal/criteria 를 직접 추출
  • "맥락/목표/기준/형식 다 다시 말해 주세요" 같은 redundant 질문 사라짐
  • 첫 라운드부터 confidence='high' 가능 → 바로 본 작업 진행

기능 변경 없음 외부 API. 컨텍스트 전달 누락만 fix.

신규 패키징: astra-2.2.202.vsix.


v2.2.201 (2026-05-29) 🎯

🏗️ 리팩터링 라운드 7 — datacollect cluster split (god-file 완전 해체)

slashRouter god-file 의 마지막 클러스터 — 6 datacollect 핸들러 (research/benchmark/youtube/blog/wikify/meet) 도메인 파일로. 더불어 LLM 호출 인프라(callLmSynthesis/repairKoreanGlitches/bridgeErrorRemedy) 도 별도 모듈로.

slashRouter.ts: 1,229 → 201줄 (1,028, 84%) 누적 (v2.2.195 부터): 4,174 → 201 (3,973, 95%) 95% 축소

신규 파일 2개:

  • src/features/datacollect/handlers.ts:

    • runResearch (NotebookLM Deep Research)
    • runBenchmark (Playwright + 4-렌즈 LLM)
    • runYoutube + helpers (_looksLikeYoutubeChannelUrl, _normalizeYoutubeUrl, YOUTUBE_BATCH_MAX)
    • runBlog (Blog Pipeline 안내)
    • runWikify + wikifyOne (P-Reinforce v3.0 위키 합성)
    • runMeet (회의록 transcript → 합성 + Tasks/Calendar 자동 등록)
  • src/features/datacollect/llm.ts:

    • callLmSynthesis (bridge /api/lm 호출 — datacollect handlers + teamops/communication 양쪽 사용)
    • repairKoreanGlitches (한·영 토큰 깨짐 자동 교정)
    • bridgeErrorRemedy (환경 의존성 에러 → 사용자 해결 가이드 생성, slashRouter catch 블록이 사용)

Wiring:

  • extension.ts — import './features/datacollect/handlers' 추가
  • communication.ts — callLmSynthesis import 를 ./slashRouter./llm 로 변경
  • slashRouter.ts — 모든 import 정리, vscode/logInfo/getBridgeBaseUrl/bridgeErrorRemedy 4개만 남음

slashRouter.ts 최종 (201줄):

  • REGISTRY Map + registerSlashCommand + listSlashCommands + isSlashCommand
  • handleSlashCommand (dispatcher + 에러 처리 + bridgeErrorRemedy 적용)
  • Webview interface + chunk helper
  • getRecentSlashCommands ring buffer

아키텍처 감사 HIGH 1번 완전 해결 god-file 해체 완료. 모든 슬래시 핸들러 도메인별 파일 분리, slashRouter 는 순수 dispatcher.

전체 리팩터링 시리즈 (v2.2.195~201, 7 builds):

  • 신규 utility 5개 (eventSourcedStore, mtimeFileCache, postAnswerHooks, SystemPromptBlock Map, datacollect/llm)
  • 신규 도메인 핸들러 모듈 7개 (teamops trackers/dashboards/coordination/communication + system handlers + datacollect handlers)
  • slashRouter: 4,174 → 201 (3,973, 95%)
  • agent.ts: 1,617 → 1,551 (66, 4%)
  • 새 슬래시 명령 추가 = 1 파일 + 1 register call (옛 god-file 와 비교 불가능)
  • 새 verification block / event store / post-answer hook = 1곳 변경

기능 변경 없음.

신규 패키징: astra-2.2.201.vsix.


v2.2.200 (2026-05-29) 🎉

🏗️ 리팩터링 라운드 6 — system cluster split (마무리)

slashRouter 분리 4단계 (마지막 TeamOps 영역) — system cluster (memory/glossary/help). 4인 팀 운영 모든 핸들러 도메인 분리 완료.

slashRouter.ts: 1,615 → 1,229줄 (386, 24%) 누적 (v2.2.195 부터): 4,174 → 1,229 (2,945, 71%)

신규 파일: src/features/system/handlers.ts

  • runMemory + _memoryOverview + _formatDate (Temporal + Distillation 진입점)
  • runGlossary (Terminology Dictionary CRUD)
  • runHelp + HelpCategory + HELP_CATEGORIES (카테고리별 명령 브라우저 + 엔진 상태)

Wiring:

  • extension.tsimport './features/system/handlers' side-effect (extension.ts 가 entry point)

전체 슬래시 분리 현황:

src/features/teamops/handlers/
├── _shared.ts        (헬퍼)
├── trackers.ts       (3) v2.2.196
├── dashboards.ts     (4) v2.2.198
├── coordination.ts   (5) v2.2.199
├── communication.ts  (2) v2.2.199
└── index.ts          (barrel)

src/features/system/
└── handlers.ts       (3) v2.2.200

slashRouter 잔여 (~1,229줄):

  • 인프라: REGISTRY / registerSlashCommand / chunk / Webview / isSlashCommand / handleSlashCommand / parseTaskOwner / callLmSynthesis / getRecentSlashCommands (~200줄)
  • datacollect: research / benchmark / youtube / blog / wikify / meet (~1,000줄) — 다른 도메인 영역, 추후 라운드

아키텍처 감사 5건 최종 상태:

Sev 항목 결과
HIGH slashRouter god-file 🟢 71% 축소 (teamops + system 완료, datacollect 만 잔여)
HIGH 5-block 체인 v2.2.195
MED 4 store 중복 v2.2.195
MED 2-cache invariant v2.2.197
LOW _maybe* hook 패턴 v2.2.197

전체 정리 시리즈 (v2.2.195~200, 6 builds):

  • 신규 utility 4개 (eventSourcedStore, mtimeFileCache, postAnswerHooks, SystemPromptBlock Map)
  • 신규 도메인별 핸들러 모듈 5개 (teamops trackers/dashboards/coordination/communication + system)
  • slashRouter.ts: 4,174 → 1,229 (2,945, 71%)
  • agent.ts: 1,617 → 1,551 (66, 4%)
  • 향후 새 verification block / store / hook / 슬래시 명령 추가 패턴 모두 1곳 변경 으로 완료

기능 변경 없음 — 순수 구조 정리.

신규 패키징: astra-2.2.200.vsix. 🎉 v2.2.200 통과!


v2.2.199 (2026-05-29)

🏗️ 리팩터링 라운드 5 — coordination + communication clusters

slashRouter 분리 3단계 — coordination (5 handlers) + communication (2 handlers) 도메인 파일로. 원래 v2.2.200 예정이던 communication 도 같이 묶음 (sed 범위에 함께 잡혀 자연스러운 통합).

slashRouter.ts: 2,537 → 1,615줄 (922, 36%) 누적 (v2.2.195 부터): 4,174 → 1,615 (2,559, 61%)

신규 파일 2개:

  • src/features/teamops/handlers/coordination.ts:
    • runTask + parseFlexibleDate (Google Tasks + Calendar 동시 등록)
    • runDecisions (Chronicle ADR 검색)
    • runOnesie (1:1 미팅 카드)
    • runBlocked (전사 지연·블로커 뷰)
    • runStandup (팀 스탠드업 카드)
  • src/features/teamops/handlers/communication.ts:
    • runDraft + DRAFT_TYPES (6종 초안)
    • runFeedback + feedbackSave/List/Summary/Path + 2개 LLM 프롬프트

Wiring 변경:

  • slashRouter.callLmSynthesisexport 로 노출 (communication 이 LLM 호출용으로 import)
  • parseTaskOwner 옛 local 정의 삭제 (_shared.ts 사용)
  • 옛 ParsedTaskOwner interface 삭제 (도메인별로 분산)
  • 옛 orphan 주석 블록 (deletion 후 남은 // ─── /morning header 등) 정리

slashRouter 잔여 (~1,615줄):

  • system: memory / glossary / help (~480줄) — v2.2.200
  • datacollect: research / benchmark / youtube / blog / wikify / meet (~1,000줄) — 다른 도메인 영역, 추후
  • 인프라: registerSlashCommand / chunk / Webview / parseTaskOwner / callLmSynthesis / handleSlashCommand 등 (~130줄)

기능 변경 없음 — 순수 구조 정리.

신규 패키징: astra-2.2.199.vsix.


v2.2.198 (2026-05-29)

🏗️ 리팩터링 라운드 4 — dashboards cluster split

slashRouter 분리 2단계 — dashboards 클러스터 (morning/evening/cohort/weekly) 도메인 파일로.

slashRouter.ts: 3,448 → 2,537줄 (911, 26%) 누적 (v2.2.195 부터): 4,174 → 2,537 (1,637, 39%)

신규 파일: src/features/teamops/handlers/dashboards.ts

  • runMorning + _morningActions (브리핑 카드 + 액션 도출)
  • runEvening (오늘 진척 + 내일 준비 + 회고)
  • runCohort + _buildMonthlyBuckets + _cohortDashboard (MoM 추세)
  • runWeekly + _isoWeek + _thisWeekWindow + _priorWeekWindow + _aggregateWeek + _deltaSymbol (주간 리뷰)

Wiring:

  • _shared.ts 의 fmtKrw/daysUntil/parseTaskOwner/stageEmoji/STAGE_ORDER/TERMINAL_STAGES 재사용 (trackers 와 동일)
  • ChronicleProjectStore 직접 import (위클리 ADR 스캔)
  • index.ts 배럴에 한 줄 추가 (import './dashboards')

slashRouter 잔여 (~2,540줄):

  • coordination: task / decisions / onesie / blocked / standup (~700줄) — v2.2.199 예정
  • communication: draft / feedback / meet (~430줄) — v2.2.200 예정
  • system: memory / glossary / help (~480줄) — v2.2.200 예정
  • datacollect: research / benchmark / youtube / blog / wikify (~900줄) — 추후 (별 영역)

기능 변경 없음 — 순수 구조 정리.

신규 패키징: astra-2.2.198.vsix.


v2.2.197 (2026-05-29)

🏗️ 리팩터링 라운드 3 — PostAnswerHook registry + mtimeFileCache 공유 유틸

아키텍처 감사의 MED 1건 (2 cache 동일 invariant) + LOW 1건 (_maybeX 3개 메서드 패턴) 마무리.

감사 5건 누적 진행도 (라운드 1~3 완료):

Sev 항목 결과
HIGH slashRouter god-file 🟡 v2.2.196 trackers 분리 (17%). 나머지 보류 — 패턴 입증됨
HIGH 5-block 체인 (system prompt) v2.2.195
MED 4 store 중복 v2.2.195
MED terminology+termValidator 2캐시 v2.2.197
LOW _maybe* hook 패턴 v2.2.197

Part A — src/lib/mtimeFileCache.ts (신규 utility)

배경: terminologyBlock 과 termValidator 가 같은 글로서리 파일에 별도 mtime cache 보유. 무효화 invariant ("둘 다 함께 비우기") 가 사람 손으로 강제됨 — slashRouter 가 /glossary reload 시 양쪽 clearXCache() 모두 호출.

  • createMtimeFileCache<T>(name, parse) — generic factory
  • mtime 자동 체크, 캐시 hit / 자동 재read+parse
  • read(filePath), invalidate(filePath), clear(), size()

Refactor:

  • terminologyBlock.ts — raw 본문 cache 를 mtimeFileCache 인스턴스로
  • termValidator.ts — parsed forbidden entries cache 를 mtimeFileCache 인스턴스로
  • 각 모듈은 여전히 자기 clearXCache() export (slashRouter 가 둘 다 호출 — 동작 동일)
  • 핵심 차이: boilerplate if (cached && cached.mtime === mtime) return cached.content; ... ; cache.set(...) 삭제. 새 캐시 추가 = 한 줄.

Part B — src/agent/postAnswerHooks/ (신규 registry)

배경: agent.ts_maybeEmitDevilRebuttal / _maybePostHocSelfCheck / _maybeRunTermValidator 3개 private method + 3개 import + 3개 call site. 새 hook 추가 시 3곳 편집 필요. 패턴 동일 (안전 fallback, try/catch swallow) — 레지스트리화.

src/agent/postAnswerHooks/
├── types.ts          ← PostAnswerHook 인터페이스 + Context
└── index.ts          ← 3 hooks 등록 + runPostAnswerHooks(ctx) iterator

Refactor:

  • agent.ts: 3 method 삭제 (66줄, 1617→1551), 3개 호출 → 1개 runPostAnswerHooks(ctx)
  • 새 hook 추가 = postAnswerHooks/ 에 hook 객체 push (1곳)

효과 측정:

  • 새 후처리 hook 추가: 옛 3 step → 새 1 step
  • agent.ts: 66줄

기능 변경 없음 — 순수 구조 정리. DevilRebuttal/SelfCheck/TermValidator 동작 동일, 글로서리 캐시 동작 동일.

아키텍처 정리 시리즈 (v2.2.195~197) 총평:

  • 신규 utility 모듈 3개 (eventSourcedStore, mtimeFileCache, postAnswerHooks)
  • 신규 도메인별 핸들러 모듈 1개 (teamops/handlers/{_shared,trackers,index})
  • 코드 라인: slashRouter 4,174→3,448 (726), agent.ts (66)
  • 미래 부담 감소: 새 verification block 추가 1곳, 새 store 1곳, 새 hook 1곳
  • 감사 5건 중 4건 완료, 1건 (slashRouter 나머지) 보류 — 패턴 입증 후 추후 라운드

신규 패키징: astra-2.2.197.vsix.


v2.2.196 (2026-05-29)

🏗️ 리팩터링 라운드 2 — slashRouter handler split (trackers cluster)

아키텍처 감사의 HIGH 1번 (slashRouter.ts 4,174줄 god-file) 해결 시작. 첫 클러스터(트래커 3개) 를 도메인별 파일로 분리해 패턴 확립. 나머지 클러스터(coordination/communication/dashboards) 는 다음 라운드.

slashRouter.ts: 4,174 → 3,448줄 (726, 17%)

신규 구조: src/features/teamops/handlers/

src/features/teamops/handlers/
├── _shared.ts        ← fmtKrw, parseAmount, daysUntil, parseTaskOwner,
│                       STAGE_ORDER, TERMINAL_STAGES, stageEmoji
├── trackers.ts       ← runRunway, runCustomers, runHire + 각자 helpers
│                       + registerSlashCommand 3건 자기 등록
└── index.ts          ← 배럴 (`import './trackers'`)

Wiring:

  • src/extension.tsimport './features/teamops/handlers' side-effect import (entry point, 순환 import 회피)
  • src/features/datacollect/slashRouter.tschunk + Webview 인터페이스 export, 옛 helpers 는 _shared.ts 에서 alias import 로 남은 인라인 핸들러(morning/evening/cohort/weekly/blocked/standup) 호환 유지

패턴 입증 (다음 라운드 청사진):

  • trackers.ts 가 작동하는 한, 같은 패턴으로 다음 클러스터:
    • coordination.ts — task / decisions / onesie / blocked / standup
    • communication.ts — draft / feedback / meet
    • dashboards.ts — morning / evening / cohort / weekly
  • 각 클러스터 = 새 파일 + 옛 코드 sed-delete + index.ts 에 한 줄 추가

Phase 1 (v2.2.195) 도 함께: eventSourcedStore + SystemPromptBlock registry — 이미 출시. 합쳐서 감사 HIGH 2건 중 1.5건 해결, MED 1건 (4 store 중복) 해결.

아키텍처 감사 후속 진행도:

Sev 항목 상태
HIGH slashRouter god-file 🟡 17% 축소 (trackers 분리). 나머지 v2.2.197+
HIGH 5-block 체인 (system prompt) 완료 (v2.2.195)
MED 4 store 중복 완료 (v2.2.195)
MED terminology+termValidator 2캐시 v2.2.197
LOW _maybeEmitDevilRebuttal 류 hook 패턴 v2.2.197

기능 변경 없음 — 순수 구조 정리. /runway, /customers, /hire 동작 동일.

신규 패키징: astra-2.2.196.vsix.


v2.2.195 (2026-05-29)

🏗️ 리팩터링 라운드 1 — eventSourcedStore + SystemPromptBlock registry

아키텍처 감사 결과 (HIGH 2건, MED 3건) 중 가장 효과·비용 비율 좋은 2개. 기능 변경 없음 — 순수 구조 정리.

Phase 1 — src/features/_shared/eventSourcedStore.ts (신규)

배경: customers/hire/runway/feedback 4개 store 의 getXFilePath() + readX() + appendX() 가 byte-for-byte 중복 (~240줄).

  • createEventStore<E>({ relPath, validate }) — generic factory
  • 4개 store 가 각각 ~12줄로 축소 (event type + validator + computeStates 만 남음)
  • BOM/인코딩 fix 같은 edge case 가 한 곳 에서 전파
  • 도메인 로직 (computeCustomerStates, computeCandidateStates, computeRunwayStatus) 은 그대로 도메인 파일에 남음 — I/O 만 추상화
// 옛 customersStore (60줄): import fs/path/vscode + getCustomersFilePath + readEvents + appendEvent
// 새 (5줄):
const _store = createEventStore<CustomerEvent>({ relPath, validate });
export const getCustomersFilePath = _store.getFilePath;
export const readEvents = _store.read;
export const appendEvent = _store.append;

Phase 2 — SystemPromptBlock registry (5 필드 → 1 Map)

배경: 새 verification 블록 추가 시 5곳 편집 강제_turnCtx 필드 + resetTurnContext + buildAstraModeSystemPrompt 인자 + casual ternary + template literal 위치. 5번 반복 (conflict/cove/intent/citation/terminology). 이 패턴이 god-file 만드는 길.

  • agent.ts _turnCtx: 5 named string 필드 → 1 dynamicBlocks: Map<string, string>
  • agent.ts resetTurnContext(): 5 reset → 1 .clear()
  • agent.ts buildAstraModeSystemPrompt 호출: 5 named param → 1 dynamicBlocks param
  • buildAstraModeSystemPrompt.ts: 5 ternary gate + 5 위치 삽입 → 1 for-loop join
  • memoryContext.ts: 5 turnCtx.X = build... → 5 blocks.set('id', build...) (한 줄씩, 새 블록은 여기서 set 한 줄만 추가)

효과 측정:

  • 새 블록 추가 = 25 → 1 edit 지점 (5 파일 × 5 step → 1 set call)
  • 옛 5 ternary (!isCasualConversation && X && X.trim()) ? '\n\n' + X : '' → 1 loop, casual gate 1번
  • 블록 순서 변경 = memoryContext 의 set 순서 변경만 (옛: template literal 재배치)

아키텍처 감사 후속 작업 (예정):

  • v2.2.196 — slashRouter 4,174줄 handler 도메인별 분할 (HIGH 1, 미완)
  • v2.2.197 — PostAnswerHook registry (DevilRebuttal/SelfCheck/TermValidator 패턴 통합) + mtimeFileCache 공유 유틸 (terminologyBlock + termValidator 캐시 통합)

기능 변경 없음 — 순수 구조 변화. 모든 verification 블록 동작 동일, 모든 store 동작 동일.

신규 패키징: astra-2.2.195.vsix.


v2.2.194 (2026-05-29)

🔤 Post-gen Term Validator — 결정론적 글로서리 검증 (엔진 변경)

v2.2.192 의 Terminology Dictionary 가 instructional (LLM 에게 "표준 표기 사용" 지시) 였다면, 이건 deterministic — LLM 이 지시를 안 따랐을 때 결정론적 정규식 스캔으로 catch.

감사 결과 (적용 범위 좁힘):

  • 사용자 제안 4종 중 #1a Post-gen Validator 만 적용 (사용자 선택)
  • #1b Contextual Refiner (rewrite) — Self-Check 와 중복, latency 비용
  • #2 Few-Shot Bad/Good 예시 — 글로서리 자유 markdown 이라 사용자가 직접 추가 가능
  • #3 CoVe 검증 질문 — v2.2.184 + v2.2.191 에서 완료

신규 모듈: termValidator.ts

  • parseGlossary(filePath).astra/glossary.md 정규식 파싱 (mtime 캐시):
    • Pattern 1: - **Canonical** (X: typo1, typo2, ...) — typo 등장 시 "→ Canonical 권장"
    • Pattern 2: H2/H3 제목에 "금지/비추/forbidden/avoid/don't" 포함 섹션의 - ❌ "phrase" 또는 - ❌ phrase
  • validateTermUsage(answer, path) — 정규식 스캔 + 발견 횟수
  • formatTermValidatorFooter(result) — markdown 한 줄 footer
  • 토큰 필터 — 한글 1음절·영문 1자·공백 포함 토큰 제외 (false-positive 최소화)
  • 영문 토큰: 단어 경계 매치, 한글: substring (한글은 word boundary 의미 없음)

비용·안전:

  • LLM 호출 없음 — 정규식 1회, 수 ms
  • 매 turn 자동 실행 (Self-Check 옆)
  • 글로서리 없거나 비어 있으면 silent no-op
  • 답변 자체엔 영향 없음 (Devil/Self-Check 와 같은 swallow 패턴)

Footer 형식:

  • 위반 없음: 🔤 Term validator: ✓ 사전 N개 항목, 위반 없음
  • 위반 있음: 🔤 Term validator: ⚠️ 위반 3건 — "astra" → "ASTRA" · "chronicle 외" → "Chronicle" · "p-rein동" → "P-Reinforce"

Wiring:

  • agent.ts_maybeRunTermValidator 메서드 추가, Self-Check 호출 직후
  • /glossary reload — Term Validator 캐시도 함께 비움

신규 설정 1개:

  • g1nation.termValidatorEnabled (boolean, 기본 true)

ASTRA 답변 후 검증 누적 (footer 형식):

빌드 Footer 비용 Default
v2.2.191 🔍 Self-check: 답함=✓ · 근거=○ · 모순=없음 LLM 호출 1회 off (opt-in)
v2.2.194 🔤 Term validator: ✓ 사전 N개, 위반 없음 정규식 1회 (cheap) on

시너지:

  • Terminology Dictionary (v2.2.192) → LLM 에게 표준 표기 사용 지시 (작성 중)
  • Term Validator (v2.2.194) → 그 결과를 답변 후 검증 + 위반 표시 (작성 후)
  • 즉, instructional + deterministic 의 두 단계 방어선

신규 패키징: astra-2.2.194.vsix.


v2.2.193 (2026-05-29)

📚 /help — 슬래시 명령 카테고리 브라우저 + 엔진 상태

누적된 슬래시 명령이 25개+. 사용자 발견 부담을 줄이기 위해 카테고리별 그룹핑 + ASTRA 추론 엔진 상태(6종 verification 블록 on/off) 한 화면.

신규 /help 명령:

  • /help — 전체 명령 카테고리별 + 엔진 상태
  • /help <명령> — 특정 명령의 짧은 설명 + 세부 도움말 안내

카테고리 자동 그룹핑 (7개):

  • ☀️ 일과 리듬 (Daily Cycle) — /morning · /evening · /weekly · /cohort · /standup
  • 🏢 4인 팀 운영 트래커 — /runway · /customers · /hire (event-sourced .jsonl)
  • 📋 작업·블로커·1:1 — /task · /blocked · /onesie · /decisions
  • ✉️ 외부 출력·기록 — /draft · /feedback
  • 🔬 리서치·분석 — /research · /benchmark · /youtube · /blog · /wikify · /meet (Datacollect bridge)
  • ⚙️ 시스템·메모리 — /memory · /glossary
  • 📈 주식·외부 — /stocks
  • 🔌 기타·외부 플러그인 — 위 카테고리에 안 잡히는 모든 명령 (외부 플러그인 자동 포함)

ASTRA 추론 엔진 상태 (자동 표시): 6종 verification 블록의 현재 on/off 를 한 화면. 각 블록의 system prompt 라벨과 어느 시점 에 동작하는지 표시:

  • ✓ Intent Clarification — [INTENT CLARIFICATION GUIDANCE] (답변 시작 전)
  • ✓ Terminology Dictionary — [TERMINOLOGY DICTIONARY] (답변 작성 중)
  • ✓ Conflict Surface — [CONFLICT WARNINGS] (답변 작성 중)
  • ✓ Chain-of-Verification — [VERIFICATION CHECKLIST] (답변 작성 중)
  • ✓ Citation Trace — [CITATION TRACE] (답변 끝)
  • ⊘ Post-hoc Self-Check — footer (답변 완료 후, opt-in)

추가 신호 (검색 단계): Recency · Actionability · Hierarchical Level · Semantic Re-rank (opt-in). 메모리 관리: Temporal Markers · Distillation Loop.

동적 명령 목록:

  • listSlashCommands() 사용 — 외부 플러그인이 추가한 명령도 자동 노출
  • 카테고리 매칭 함수 기반 — 새 명령 추가 시 매칭 함수만 업데이트하면 자동 분류

신규 패키징: astra-2.2.193.vsix.


v2.2.192 (2026-05-29)

📖 Terminology Dictionary + Term Check (엔진 변경)

사용자 제안 "출력 품질 관리" 중 진짜 새 가치 만 추출 — Terminology Glossary 단일 메커니즘으로 #1(typo/용어 self-check) + #2(표준 용어집) 통합. #3 sampling 튜닝은 이미 적용된 상태라 스킵.

감사 결과 (스킵한 이유):

  • #3 Temperature/Sampling 튜닝 → 이미 modelTemperature=0.3, datacollectSynthesisTemperature=0.1, top_p=0.85, top_k=20, repeat_penalty=1.1, repairKoreanGlitches 적용. 추가 튜닝 시 다양성↓ 위험.
  • #1 별도 [Output Quality Control] 블록 → 시스템 프롬프트 비대 위험, Glossary 블록 내 Term Check sub-clause 로 통합이 깔끔.

신규 메커니즘 — .astra/glossary.md 사용자 편집 파일

  • 위치: <workspace>/.astra/glossary.md (설정으로 변경 가능)
  • 형식: 자유 markdown — ASTRA 는 형식 강제 안 함, 본문 통째로 시스템 프롬프트에 주입
  • 권장 컨벤션 (/glossary init 템플릿):
    • ## 표준 표기**ASTRA** (X: astra) — 본 extension 형태
    • ## 영-한 표기 컨벤션 — Performance → 성능
    • ## 금지·비추 표현
    • ## 슬래시 명령 표기
  • 캐시: mtime 기반 — 사용자가 편집할 때만 다시 읽음 (매 turn 디스크 read 0회)

시스템 프롬프트 블록 [TERMINOLOGY DICTIONARY]:

  1. 글로서리 본문 (cap 4000자, 초과분 잘림 안내)
  2. [Term Check — 답변 직전 자기 점검] 5개 규칙 (사용자 제안 #1 통합):
    • 표준 표기 우선, 변형·번역 임의 적용 금지
    • 표기 흔들림 방지 (같은 답변 안에서 일관)
    • 새 용어 도입 시 "새 용어: X" 명시
    • 금지 표기 검증 + 재작성
    • 표기 확신 없으면 "글로서리에 없어 일반 표기 사용" 명시

신규 모듈: terminologyBlock.ts

  • buildTerminologyBlock(opts) — 글로서리 + Term Check 합쳐 블록 생성
  • mtime cache 내장
  • GLOSSARY_TEMPLATE — 권장 템플릿 export

신규 슬래시 명령 /glossary:

  • /glossary — 상태 카드 (파일 존재/크기/cap/주입 여부/첫 5줄 미리보기)
  • /glossary path — 절대 경로
  • /glossary init — 권장 템플릿으로 초기 파일 생성 (이미 있으면 덮어쓰지 않음)
  • /glossary reload — 캐시 비우기 (편집 직후 즉시 반영 강제)
  • /glossary help — 가이드

Wiring:

  • memoryContext.ts — 매 turn 글로서리 블록 계산 → turnCtx.terminology
  • agent.ts — turn reset 시 비움, system prompt build 시 전달
  • buildAstraModeSystemPrompt.ts[CONTEXT] 밖, [INTENT CLARIFICATION] 직후 (verification 블록 군집)
  • Casual conversation 모드 비활성 (greeting 에 용어 강제 의미 없음)

신규 설정 3개:

  • g1nation.glossaryEnabled (boolean, 기본 true) — 마스터
  • g1nation.glossaryPath (string, 기본 .astra/glossary.md)
  • g1nation.glossaryMaxBodyLength (number 500~20000, 기본 4000)

ASTRA 검증 6종 (engine 변경 누적, v2.2.183~192):

# 블록 시점 빌드
INTENT [INTENT CLARIFICATION GUIDANCE] 답변 시작 전 v2.2.190
TERMINOLOGY [TERMINOLOGY DICTIONARY] 답변 작성 중 (용어) v2.2.192
CONFLICT [CONFLICT WARNINGS] 답변 작성 중 v2.2.183
COVE [VERIFICATION CHECKLIST] 답변 작성 중 v2.2.184
CITATION [CITATION TRACE] 답변 끝 v2.2.190
SELF-CHECK footer (separate LLM) 답변 완료 후 v2.2.191

신규 패키징: astra-2.2.192.vsix.


v2.2.191 (2026-05-29)

🔍 추론 신뢰도 — Post-hoc Self-Check (2-pass 검증, 엔진 변경)

v2.2.190 의 #1+#2 (Intent + Citation) 짝꿍. 답변 완료 후 별도 LLM 호출 1회로 사후 검증. CoVe (v2.2.184) 가 답변 전 instructional self-check 이면, 이번엔 답변 후 객관 평가.

설계 결정 — 비동기 후처리:

  • 기존 _maybeEmitDevilRebuttal (Devil Agent) 패턴 그대로 — main turn 종료 후 비동기, 실패해도 답변 보존
  • 답변이 webview 에 렌더된 직후 self-check footer streamChunk 로 append
  • 사용자는 답변 즉시 보고, 1~6초 후 self-check 결과 한 줄이 아래에 추가됨

평가 3차원 (LLM 출력 JSON):

  1. answersQuestion — yes/partial/no — 답변이 질문에 직접 답하나
  2. grounded — yes/partial/no/unknown — 답변이 제공된 출처에 근거하나
  3. contradiction — none/minor/major — 답변에 논리 모순 있나

Footer 형식:

---
_🔍 **Self-check**: 답함=✓ · 근거=○ · 모순=없음 — 답변은 직접적이나 일부 주장이 모델 일반 지식 기반 _(2.4s · gemma2:2b)__

신규 모듈: postHocSelfCheck.ts

  • postHocSelfCheck(prompt, answer, sources, opts) — LLM 호출 + JSON 파싱 + 안전 fallback
  • formatSelfCheckFooter(result, model) — 마크다운 footer 한 줄

안전망:

  • 응답 파싱 실패 / 타임아웃 / 오류 → 흐릿한 한 줄 footer ("⊘ failed: ...")
  • 답변 자체는 영향 없음 (Devil Agent 와 동일 패턴)
  • 짧은 timeout (기본 6초)
  • 별도 빠른 모델 지정 가능

Wiring:

  • memoryContext.ts — 검색 후 turnCtx.selfCheckSources 에 상위 5개 chunk (title, excerpt) 저장
  • agent.ts — Devil rebuttal 옆에 _maybePostHocSelfCheck 호출 추가, 결과를 streamChunk 로 append

신규 설정 3개:

  • g1nation.selfCheckEnabled (boolean, 기본 false — opt-in)
  • g1nation.selfCheckModel (string, 비면 defaultModel)
  • g1nation.selfCheckTimeoutSec (number 1~60, 기본 6)

ASTRA 검증 5종 완전체 (engine 변경 누적):

# 블록 시점 모드
INTENT (v2.2.190) [INTENT CLARIFICATION GUIDANCE] 답변 시작 전 instructional
CONFLICT (v2.2.183) [CONFLICT WARNINGS] 답변 작성 중 instructional
COVE (v2.2.184) [VERIFICATION CHECKLIST] 답변 작성 중 instructional
CITATION (v2.2.190) [CITATION TRACE] 답변 끝 instructional
SELF-CHECK (v2.2.191) footer 한 줄 답변 완료 후 separate LLM call

활용 권장:

  • 기본 ON 4개 (INTENT/CONFLICT/COVE/CITATION) — 즉시 활용
  • g1nation.selfCheckModel 에 빠른 모델 설정 (예: gemma2:2b)
  • g1nation.selfCheckEnabled = true — opt-in. footer 한 줄로 답변 품질 즉시 검증

신규 패키징: astra-2.2.191.vsix.


v2.2.190 (2026-05-29)

🎯 추론 신뢰도 — Intent Clarification + Citation Trace (엔진 변경)

사용자 제안 "Pre-inference Contextualization + Grounding" 중 ASTRA 에 진짜 빈 두 영역. ASTRA 검색 엔진 자체 변경 — 매 채팅 turn 자동 적용, 슬래시 명령 없음.

감사 결과 (분리한 이유):

  • 제안 #1 Intent Clarification → 갭 명확: ASTRA 는 항상 답을 시도, 모호하면 묻기 메커니즘 없음
  • 제안 #2 Citation Trace → CoVe Strict (v2.2.184) 와 부분 중복, 가벼운 always-on 형제 로 추가
  • 제안 #3 Self-Correction Loop → CoVe 가 instructional 형태 로 이미 구현, post-hoc 2-pass 는 v2.2.191 에서 별도 빌드

#1 Intent Clarification — 모호 질의 역질문 (기본 ON)

신규 모듈: intentClarification.ts

  • 5개 의도 차원 휴리스틱:
    • 환경 — 배포/롤백 trigger + dev/prod 명시 검사
    • 대상 — 고쳐/수정 trigger + 파일/모듈/.ts 검사
    • 범위 — 리팩토링/정리 trigger + 전체/일부 검사
    • 포맷 — 요약/보고서 trigger + 표/리스트/markdown 검사
    • 마감 — 빨리/급함 trigger + 오늘/내일 검사
  • trigger 만 있고 specifier 없으면 missing
  • Strictness 3-level: low (2개+ missing), medium (1개+ missing, 기본), high (짧은 질의 추가 검사)
  • 시스템 프롬프트 블록 [INTENT CLARIFICATION GUIDANCE]: 모호 차원 + 권장 역질문 예시 + "사용자가 '추정해도 OK' 했으면 가정 명시 후 진행" 등 4개 규칙

효과: "배포해줘" → ASTRA 가 추측하지 않고 "dev 인가요 prod 인가요?" 한 줄 질문 먼저.


#2 Citation Trace — 답변 끝 출처 한 줄 (기본 ON)

신규 모듈: citationTrace.ts

  • CoVe Strict 와 차이: CoVe Strict = 모든 사실 주장 뒤 inline [S1] (verbose). Citation Trace = 답변 끝 한 줄 정리 (가벼움).
  • 시스템 프롬프트 블록 [CITATION TRACE]: "답변 끝에 출처: 한 줄, 사용한 출처만 나열, 일반 지식이면 그 사실 명시" 등 5개 규칙
  • CoVe 와 시너지: CoVe 가 [S1]..[SN] 라벨 제공, Citation 이 끝에 정리

효과: 답변 끝에 자동으로 *출처:* file1.md · chunk-title2 같은 한 줄 → 사용자 검증 가능, 할루시네이션 억제.


Wiring (둘 다):

  • memoryContext.ts — 검색 직후 두 블록 계산 → turnCtx.intentClarification / turnCtx.citationTrace
  • agent.ts — turn reset 시 비움, system prompt build 시 전달
  • buildAstraModeSystemPrompt.ts[CONTEXT] 밖 주입. Intent block 은 다른 verification 블록보다 (모호하면 답변 자체를 안 만들어야 하므로). Citation 은 끝.

신규 설정 3개:

  • g1nation.intentClarificationEnabled (boolean, 기본 true)
  • g1nation.intentClarificationStrictness (low/medium/high, 기본 medium)
  • g1nation.citationTraceEnabled (boolean, 기본 true)

ASTRA 추론 엔진 검증 3종 (#2/#3/#1 시리즈와 함께):

블록 시점 용도
[INTENT CLARIFICATION GUIDANCE] 답변 시작 전 모호하면 묻기
[CONFLICT WARNINGS] (v2.2.183) 답변 작성 중 충돌 출처 양측 명시
[VERIFICATION CHECKLIST] (v2.2.184) 답변 작성 중 근거 매핑 + 자기 점검
[CITATION TRACE] 답변 끝 사용 출처 한 줄 정리

다음 (v2.2.191):

  • #3 Post-hoc Self-Check — 답변 완료 후 LLM 호출 1회로 검증 (semantic re-rank 와 유사 패턴, 기본 OFF / opt-in)

신규 패키징: astra-2.2.190.vsix.


v2.2.189 (2026-05-29)

📅 4인 팀 운영 12단계 — /weekly 주간 리뷰 카드 (대표용)

일 단위 리듬은 /morning · /evening 으로 단조. 주 단위 리듬은 비어 있었음 (/standup weekly 는 팀 공유용, 대표 전략 시야 아님). 그 갭을 메움.

신규 /weekly 명령 (인자 없음, 매주 일요일/월요일 1회 실행 권장)

/standup weekly 와 차이:

  • /standup weekly팀에 공유 (멤버별 완료/진행/블로커, 슬랙 복붙)
  • /weekly대표가 본다 (cross-data delta, 회고 프롬프트)

섹션 구성:

1. 이번 주 진척

  • 작업: 멤버별 카운트 + 지난 주 대비 ↑↓→
  • 📒 고객: 신규/갱신/위험/이탈 이벤트 카운트 + 신규 MRR 합산
  • 🎯 채용: 신규 후보/단계 이동/합격 이벤트
  • 💰 재무: 주간 지출/수입/순 burn + 잔고 시작→끝 Δ
  • 📋 결정: 이번 주 Chronicle ADR (최대 5건)

2. 🔄 지난 주 대비 (ISO week 기반 월~일)

  • 작업 / 신규 고객 / 이탈 / 순 burn / 채용 이벤트 — 각각 ↑↓→ delta
  • 화살표 + (이번 X ← 지난 Y) 형식

3. 🌅 다음 주 준비

  • 14일 내 갱신 (D-7 🔴 / D-14 🟡)
  • 다음 주 마감 작업 카운트
  • 정체 후보 (7일+ 미변동) top 3

4. 💭 주간 회고 한 줄

  • 6개 회고 질문 풀, 주차 결정적 선택 (같은 주 = 같은 질문)
  • 예: "이번 주 가장 중요한 결정은 무엇이었나? 다음 주에 어떤 결정을 미루면 안 되나?"

ISO Week 기반 윈도우:

  • 월요일 00:00 ~ 일요일 23:59:59
  • "YYYY-Wnn (M/D-M/D)" 라벨

4인 팀 운영 누적 (1~12 — 일·주 리듬 완성):

시간 명령
🌅 아침 (일) /morning
🌞 /blocked, /task, /onesie @멤버
🌙 저녁 (일) /evening
📊 팀 공유 /standup
📅 주말 (대표용) /weekly
📈 분기 /cohort
💰 트래커 /runway, /customers, /hire
📋 의사결정 /decisions, /draft, /feedback

신규 패키징: astra-2.2.189.vsix.


v2.2.188 (2026-05-29)

📈 4인 팀 운영 11단계 — /cohort MoM 추세 분석

/customers + /runway 의 events 가 누적되니 추세 가 보임. 한 시점 스냅샷(/morning 같은) 이 아닌 6~12개월 흐름 으로 비즈니스 방향 검토. 회계 SaaS 의 board metric 의 미니 버전.

신규 /cohort 명령:

  • /cohort — 최근 6개월 추세 (기본)
  • /cohort yearly — 최근 12개월
  • /cohort <N> — 최근 N개월 (1~24)

섹션 구성:

1. 고객 & MRR 추이 (월별 테이블) | 월 | 신규 | 갱신 | 이탈 | MRR Δ |

  • 누계: 신규 +N · 이탈 -M · 순 ±K
  • MRR 순증 (추가 신규 MRR 만, 이탈 차감은 history 부재로 미반영)
  • 월평균 신규/이탈 + 이탈/신규 비율 (단순 churn-rate 근사)

2. 재무 추이 (월별 테이블) | 월 | 지출 | 수입 | 순 burn | 월말 잔고 |

  • 6개월 누계
  • 월평균 burn

3. 💡 인사이트 한 줄 (자동 도출)

  • 🟢 최근 3개월 신규 가속 (이전 3개월 대비 +20%↑)
  • 🟡 신규 둔화 (-20%↓)
  • 🔴 burn 가속 (+30%↑)
  • 🟢 매출 커버리지 80%+ → 흑자 임박
  • 🟡 매출 커버리지 20% 미만 → 매출 기반 약함

데이터 출처:

  • <workspace>/.astra/customers.jsonl (add/renew/churn timestamp 그룹핑)
  • <workspace>/.astra/runway.jsonl (expense/revenue/snapshot 그룹핑)

현 시점 한계 (의도적 단순화):

  • Churn MRR 감소 = 직전 mrr 추적 안 함 — 보수적으로 0 계산
  • Update event 의 mrr 차이 = 0 (state 추적 없음)
  • 향후 v2: customers store 에 monthly snapshot 추가하면 정확한 churn MRR 계산 가능

4인 팀 운영 누적 (1~11단계): /decisions · /onesie · /draft · /feedback · /blocked · /standup · /runway · /customers · /hire · /morning · /evening · /cohort

신규 패키징: astra-2.2.188.vsix.


v2.2.187 (2026-05-29)

🔍 Retrieval 의도 매칭 — Hierarchical + LLM Semantic Re-rank (엔진 변경)

사용자 제안 "지식 발굴 로직 강화" 중 진짜 새 가치 2개 적용. (제안의 Re-ranking 항목들 — Recency / Actionability / Conflict Check — 은 이미 v2.2.183~185 에서 완료. 제안자가 빌드 모름.)

둘 다 ASTRA 검색 엔진 자체 변경 — 슬래시 명령 추가 없음, 매 채팅 turn 자동 적용.


#2 Hierarchical Context Window — 추상도 매칭 (기본 ON)

신규 모듈: src/retrieval/hierarchicalLevel.ts

  • 3-level 분류 (LLM 호출 없음, 결정적 휴리스틱):
    • concrete — 코드/로그/디버그/실행 (folder hints: code, log, debug; title hints: fix, bug, error)
    • operational — 작업/일정/운영/회의 (기본값)
    • strategic — 전략/비전/방향/의사결정 (folder hints: strategy, vision, decision; title hints: plan, direction)
  • 질의 분류: 키워드 우열 — '전략 검토' → strategic, '버그 고쳐' → concrete
  • 재가중 정책:
    • 같은 레벨 → × 1.15 (boost)
    • 인접 레벨 (concrete↔operational, operational↔strategic) → 변화 없음
    • 양 끝 mismatch (concrete↔strategic) → × 0.70 (penalty)
  • 시점: RetrievalOrchestrator.retrieve() 의 normalize 직후, 토큰 예산 직전 — 어떤 chunk 가 살아남는지에 영향
  • 위치: hierarchicalLevel.ts + retrieve() 파이프라인 stage ③-c

#4 LLM Semantic Re-rank — 의도 매칭 (기본 OFF, 명시적 opt-in)

신규 모듈: src/retrieval/semanticRerank.ts

  • 로직: 토큰 예산 통과한 selectedChunks 상위 K(기본 15) 를 LLM 한 번 호출로 의도 부합도 순 재정렬
  • 프롬프트: [C1]..[CK] 라벨 + 발췌문 → LLM 이 JSON {"ranking":[3,1,5,...]} 한 줄 출력
  • 파싱 보호: 응답 누락/중복/번호 오류 시 원순서 fallback. 타임아웃 시도 원순서 fallback. 재정렬 실패해도 검색 자체는 절대 실패 안 함.
  • 위험 관리:
    • 기본 OFF — g1nation.semanticRerankEnabled 명시 on 필요
    • 짧은 timeout (기본 8초) — 초과 시 원순서
    • 별도 빠른 모델 지정 가능 (g1nation.semanticRerankModel, 예: gemma2:2b) — 메인 모델 latency 보호
  • 시점: memoryContext.ts 에서 retrieve() 결과의 selectedChunks 를 비동기 재정렬 후 context string 빌드
  • 효과: LLM attention 은 컨텍스트 상단에 더 강함 → 의도 부합 chunk 가 상단 → 답변 품질↑

신규 설정 5개:

  • g1nation.hierarchicalReweightEnabled (boolean, 기본 true)
  • g1nation.semanticRerankEnabled (boolean, 기본 false — opt-in)
  • g1nation.semanticRerankModel (string, 비면 defaultModel)
  • g1nation.semanticRerankCandidateK (number 2~30, 기본 15)
  • g1nation.semanticRerankTimeoutSec (number 1~60, 기본 8)

감사 결과 — 스킵한 제안 항목:

  • #1 Graph-based Retrieval → 스킵 (마크다운 wiki brain 에 NER+그래프 인프라 비용 큼, 가치 불확실)
  • #3 Re-ranking 항목들 → 이미 v2.2.183~185 에 완료:
    • Recency 가중 = scoring.ts recencyBoost
    • Actionability = actionabilityScoring.ts (v2.2.185)
    • Conflict Check = conflictBlock.ts + scoring.ts conflictMultiplier (v2.2.183)

신규 패키징: astra-2.2.187.vsix.


v2.2.186 (2026-05-29)

🧠 메모리 라이프사이클 — Temporal Markers + Distillation Loop

사용자 제안 "정보의 계층화 + 생성 주기 관리" 중 실제로 빈 곳 2개에 집중. 제안의 절반은 이미 5-layer 로 구현돼 있어 그 위에 라이프사이클 관리만 추가.

Part 1 — Temporal Markers (만료일)

  • LongTermEntry + EpisodicEntryexpiresAt?: number (epoch ms) 추가.
  • 검색·context build 시 expiresAt < now 인 entry 자동 제외 — 만료 plan/decisions 가 stale 답변에 끼어드는 것 방지.
  • LongTermMemory.setExpiration(idOrPrefix, expiresAt) API — 슬래시 명령에서 호출.
  • 예: "Q3 2026 마케팅 계획" entry 에 expiresAt = 2026-09-30 설정 → 10월부터 검색 결과에서 자동 사라짐.

Part 2 — Distillation Loop (stale → digest)

  • 신규 모듈: src/memory/distillation.ts
  • 30일+ 지난 episodes → LongTerm 'episode-digest' 카테고리로 승급. 원본은 promoted=true 마킹되어 검색에서 제외 (중복 노출 방지).
  • 신규 LongTermCategory: 'episode-digest' 추가.
  • LLM-less 설계 (v1): 기존 EpisodicEntry 의 title/summary/keyDecisions/topics 를 구조적으로 결합 — 비용 0, 결정적, 재현 가능.
  • 자동 트리거: 세션 종료 시 (마지막 실행 후 N일 경과 시만, 기본 7일 간격).
  • 수동 트리거: /memory distill [age_days]
  • Archive 모드 2종:
    • 'mark-promoted' (기본): 플래그만, 파일 보존
    • 'archive-file': 파일을 memory/episodes/archive/ 로 이동

신규 슬래시 명령 /memory

  • /memory — 현재 상태 (LongTerm/Episodic 카운트, 카테고리 분포, distillation 마지막 실행, 30일 내 만료 임박)
  • /memory distill [age_days] — 수동 distillation (기본 30일 임계)
  • /memory expire <id-prefix> <YYYY-MM-DD> — LongTerm entry 에 만료일 설정
  • /memory list-expiring [days] — N일 내 만료 entry 목록 (기본 30)
  • /memory list-promoted — 승급된 episodes (digest 형태로 LongTerm 에 살아 있음)
  • /memory help — 명령어 가이드

신규 설정 4개:

  • g1nation.distillationEnabled (boolean, 기본 true)
  • g1nation.distillationAgeThresholdDays (number 1~365, 기본 30)
  • g1nation.distillationIntervalDays (number 1~90, 기본 7)
  • g1nation.distillationArchiveMode (mark-promoted/archive-file, 기본 mark-promoted)

감사 결과 (스킵한 제안 항목):

  • L1 Working Memory → 이미 ShortTermMemory.ts 로 완료
  • L2 Episodic → 이미 EpisodicMemory.ts 로 완료
  • L3 unification (3 silo → 1 통합) → 스킵 (refactor 비용 > 가치, 작동 중)
  • 자유 해시태그 시스템 → 스킵 (기존 카테고리 enum 으로 80% 커버)
  • Conflict reconciliation 닫는 루프 → 추후 (UI 작업 + supersedeance 인프라 큼)

신규 패키징: astra-2.2.186.vsix.


v2.2.185 (2026-05-29)

🎯 추론 품질 #1 — Actionability Scoring (맥락 가중치, 마무리)

사용자 피드백: "단순히 키워드가 겹치는 정보가 아니라, 현재 작업의 상태와 직접적으로 연결된 지식에 더 높은 가중치를 부여". 추론 품질 3단 시리즈의 마지막. #2 (Conflict Surface) + #3 (CoVe) 완성 위에 검색 자체 를 재가중하는 가장 깊은 변경.

v1 신호 (사용자 선택):

  1. 최근 슬래시 명령slashRouter 에 in-memory ring buffer 추가. 최근 10개 (중복 제거, 최신 우선). 명령 이름 (/runwayrunway) 이 chunk 내용에 단어 경계 매치 시 boost.
  2. 열린 파일 경로 — VS Code 활성 에디터에서 캡처.
    • Exact filePath 매치: 가장 강한 boost (× 1.5)
    • 파일명 매치: weights.openFileNameMatch (기본 0.40)
    • 부모 디렉터리 매치: weights.openFileParentDirMatch (기본 0.20, 'src'/'lib' 제외)
    • 확장자 의미 매치: weights.openFileExtMatch (기본 0.10, e.g. .ts → 'typescript' 단어)

점수 결합 (보수적):

  • finalScore = baseScore × (1 + actionabilityScore × combinedWeight)
  • combinedWeight 기본 0.30 → actionability=1.0 인 chunk 는 30% boost
  • TF-IDF 가 여전히 dominant — actionability 는 동점 깨기 역할

신규 모듈: src/retrieval/actionabilityScoring.ts

  • captureWorkStateSignals(recentCmds) — 신호 수집
  • computeActionabilityScore(chunk, signals, weights) — 0~1.0
  • applyActionabilityBoost(chunks, signals, weights) — 배열 in-place 재가중

Wiring:

  • slashRouter.ts — 명령 실행 직전에 pushRecentSlashCommand(head) 호출, ring buffer 갱신
  • getRecentSlashCommands() export — memoryContext 가 읽음
  • RetrievalOrchestrator.retrieve()normalizeScores 직후, selectWithinBudget 직전에 actionability 적용 (어떤 chunk 가 token 예산을 살아남는지에 영향)
  • RetrievalOptions.workStateSignals 신규 필드 — undefined 면 legacy
  • fusionLog 에 boosted 개수 + 시그널 요약 기록 (디버그 footer 노출 가능)

신규 설정 1개:

  • g1nation.actionabilityEnabled (boolean, 기본 true) — 마스터 스위치

추론 품질 3단 시리즈 완성:

# 로직 효과 위치
#2 Conflict Surface 충돌 출처 데이터 LLM 에 노출 conflictBlock.ts
#3 CoVe 답변 직전 자기 검증 체크리스트 coveBlock.ts
#1 Actionability 작업 상태 신호로 검색 재가중 actionabilityScoring.ts

시너지: Actionability 가 어떤 출처가 답변에 포함되나 를 개선 → CoVe 가 그 출처로 어떻게 그라운딩하나 를 지시 → Conflict Surface 가 충돌 출처를 어떻게 처리하나 를 명시. 검색 → 추론 → 응답 3단계 모두 verification 적용.

향후 #1 v2 후보 (사용자 미선택, 추후 옵션):

  • 최근 7일 Chronicle ADR / decisions 매치 boost
  • 최근 24시간 customers/hire/runway 이벤트 매치 boost

신규 패키징: astra-2.2.185.vsix.


v2.2.184 (2026-05-29)

🧭 추론 품질 #3 — Chain-of-Verification (CoVe)

사용자 피드백: "추론 결과가 나오기 직전, 이 결론이 확보된 지식(제2뇌)에만 근거하고 있는가? 를 스스로 질문하고 검증하는 로직" — 할루시네이션 방지 + 그라운딩 명확화.

설계 결정 — Instructional CoVe (v1): 원논문 CoVe 는 2-pass (draft → verify → revise). 그러나 ASTRA local-first 라 추가 LLM 호출 비용 큼 + 같은 모델 self-verify 효과 제한적. → v1 은 instructional — 시스템 프롬프트에 명시적 검증 체크리스트 주입해 모델이 한 패스 안에서 "답변 작성 전" 그라운딩 점검을 내재화 하도록. 향후 strict 모드 확장 가능 (knob 준비).

신규 모듈: src/retrieval/coveBlock.ts

  • buildCoveChecklistBlock(chunks, userPrompt, options) — [VERIFICATION CHECKLIST] 시스템 프롬프트 블록 생성.
  • 체크리스트 구조:
    1. 근거 매핑 (Grounding Inventory) — 상위 N 출처를 [S1]..[SN] 으로 라벨, 각 출처의 score + conflictSeverity + 발췌문.
    2. 답변 직전 자기 질문 (Pre-Output Self-Check) — 4개 질문 (그라운딩, 단정 톤 적정성, 구체적 액션 제시, [CONFLICT WARNINGS] 와 통합).
    3. STRICT 모드 (옵션) — 모든 사실 주장 뒤 [S1] 형식 inline 인용 강제 (기본 off).

Wiring:

  • memoryContext.ts — 검색 직후 CoVe 블록 계산 → turnCtx.coveChecklist 저장
  • agent.ts — turn reset 시 비움, system prompt build 시 전달
  • buildAstraModeSystemPrompt.ts[CONFLICT WARNINGS] 다음, [CONTEXT] 에 주입 (token-truncation 보호)
  • Casual conversation 모드 비활성

신규 설정 3개:

  • g1nation.coveEnabled (boolean, 기본 true)
  • g1nation.coveTopSourcesCount (number 1~15, 기본 5)
  • g1nation.coveStrictMode (boolean, 기본 false) — inline citation 강제

Conflict Surface 와의 시너지:

  • 둘이 보완: Conflict = "충돌 데이터 제공", CoVe = "그 데이터 어떻게 verify 할지 지시"
  • 함께 켜면 (기본): 모델이 충돌 출처를 식별 → 양측 명시 → 출처 ID 표기 → 사용자 판단에 위임 (3-step 그라운딩)

남은 작업 (#1):

  • Actionability Scoring — 현재 작업 상태(active slash command / 열린 파일 / 최근 ADR) 신호로 검색 재랭킹. 가장 큰 신규 설계.

신규 패키징: astra-2.2.184.vsix.


v2.2.183 (2026-05-29)

🔀 추론 품질 #2 — Conflict Surface (모순 검증 로직 1단계)

ASTRA 의 scoring.ts 가 검색된 문서별로 conflictSeverity (NONE/LOW/MEDIUM/HIGH) 를 이미 계산하고 있었음 — 그런데 LLM 에게 어느 출처가 충돌인지 전달하지 않아 v4 정책의 "[CONFLICT WARNING] 플래그" 가 무용한 상태. 이번 빌드가 그 갭을 메움.

신규 모듈: src/retrieval/conflictBlock.ts

  • buildConflictWarningsBlock(chunks, options) — [CONFLICT WARNINGS] 시스템 프롬프트 블록 생성.
  • 두 종류 충돌 모두 surface:
    1. 자기-신호 (self-flag) — 출처 내부에서 충돌 키워드(반대/논란/vs 등) 감지된 경우
    2. 교차-문서 발산 (cross-divergence) — 같은 주제 ≥2 chunks 의 본문 Jaccard < 0.30 인 잠재 모순 쌍

Wiring:

  • memoryContext.tsresult.selectedChunks 가 retrieval 완료 직후 conflict 블록 계산 → turnCtx.conflictWarnings 에 저장
  • agent.ts — turn 시작 시 reset, system prompt build 시 인자로 전달
  • buildAstraModeSystemPrompt.ts[CONTEXT] 에 주입 (token-truncation 보호)
  • Casual conversation 모드는 RAG 컨텍스트 자체를 안 쓰므로 충돌 경고도 생략

프롬프트 지침 (LLM 에 명시):

  1. 답변에 위 출처 중 하나라도 사용한다면, 충돌 가능성을 명시
  2. 어느 쪽이 옳다고 단정하지 말고, 사용자가 판단할 수 있도록 근거 분리 제시
  3. 충돌이 답변과 무관하면 무시 가능 — 다만 무관 판단 자체도 한 줄로 기록

신규 설정 3개:

  • g1nation.conflictHighlightingEnabled (boolean, 기본 true) — 마스터 스위치
  • g1nation.conflictSeverityThreshold (low/medium/high, 기본 medium) — 자기-신호 최소 severity
  • g1nation.conflictCrossDocEnabled (boolean, 기본 true) — 교차-문서 발산 감지 활성

다음 (#3, #1 예정):

  • #3 CoVe (Chain-of-Verification) — 결론 직전 자기 검증 루프 (할루시네이션 방지)
  • #1 Actionability Scoring — 검색 결과 재랭킹 시 현재 작업 상태 가중치 반영 (가장 큰 신규 설계)

신규 패키징: astra-2.2.183.vsix.


v2.2.182 (2026-05-29)

🌙 4인 팀 운영 10단계 — /evening 하루 마무리 카드

/morning 의 짝. 하루 시작과 끝을 한 명령씩으로 단조. 오늘 무엇이 진척됐는지 보고 → 내일 무엇을 준비할지 확인 → 짧은 회고 한 줄 로 마무리.

신규 /evening 명령:

  • 단일 형태 — 인자 없음. 매일 저녁 한 번 실행.

섹션 구성:

1. 오늘의 진척

  • 작업 완료 — 오늘 00:00 이후 completed 된 Google Tasks, 멤버별 그룹.
  • 📒 고객 이벤트.astra/customers.jsonl 오늘 append (add/renew/risk/churn/note).
  • 🎯 채용 이벤트.astra/hire.jsonl 오늘 append (stage 이동, offer, hire 등).
  • 💰 재무 기록.astra/runway.jsonl 오늘 append (잔고/지출/수입).

2. 🌅 내일 준비

  • 내일 마감 작업 (멤버별).
  • 7일 내 갱신 — D-3 🔴 / D-7 🟡.
  • 정체 후보 (7일+ 미변동) top 3.

3. 🧭 회고 한 줄

  • 8개 회고 질문 중 날짜 기반 결정적 선택 — 같은 날 재실행해도 동일 질문.
  • 예: "오늘 가장 중요한 한 가지는 무엇이었나? 의도한 대로 됐나?"
  • 답을 어디 적으면 좋은지 안내 (/decisions · /feedback · /customers note · /hire note).

Tasks OAuth 실패 시:

  • "기록된 진척 없음" + Tasks 에러 메시지 별도 표시 — 다른 섹션은 정상 표시.

4인 팀 운영 누적 (1~10단계 — 일과 사이클 완성): /decisions · /onesie · /draft · /feedback · /blocked · /standup · /runway · /customers · /hire · /morning · /evening

일과 ritual:

  • 아침: /morning (긴급 + 액션 5)
  • 낮: /blocked /onesie @멤버 (필요 시)
  • 저녁: /evening (진척 + 내일 + 회고)

신규 패키징: astra-2.2.182.vsix.


v2.2.181 (2026-05-29)

☀️ 4인 팀 운영 9단계 — /morning 매일 아침 통합 대시보드

1~8단계로 만든 모든 트래커(runway / customers / hire / tasks / decisions) 의 핵심을 한 명령으로. CEO 의 아침 ritual — 6개 명령 안 치고 /morning 하나.

신규 /morning 명령:

  • /morning — 전체 대시보드 (긴급 + 재무 + 고객 + 팀 + 채용 + 오늘의 액션)
  • /morning brief — 짧은 버전 (긴급 + 액션 3개만, 30초 스캔용)

섹션 구성:

  1. 🚨 긴급 — 런웨이 < 6개월, 위험 고객, 7일 내 갱신, 지연 작업, 정체 후보 — 자동 집계
  2. 💰 재무 — 현금 / burn / 런웨이 신호등
  3. 📒 고객 — 총 MRR + 활성/위험/이탈 + 7일 내 갱신 top 5
  4. 👥 — 지연/이번 주 작업 카운트 + 멤버별 지연 top 4
  5. 🎯 채용 — 단계별 진행 한 줄 요약 + 정체 후보 top 3
  6. 📋 오늘의 액션 — 위 데이터에서 자동 도출 top 5 (휴리스틱 우선순위)

액션 도출 휴리스틱:

  • 우선순위: 런웨이 위험 > 위험 고객(MRR 큰 순) > 갱신 임박 > 지연 작업 > 정체 후보 > inbox 누적
  • 각 액션은 명시적 다음 행동 포함 ("투자자 미팅", "갱신 의사 확인", "스크리닝 시간 확보" 등)

데이터 부족 시 우아한 처리:

  • 각 섹션이 독립적으로 "데이터 없음 — /runway cash 로 시작" 안내.
  • Tasks OAuth 실패해도 나머지 섹션 계속 표시.

4인 팀 운영 누적 (1~9단계): /decisions · /onesie · /draft · /feedback · /blocked · /standup · /runway · /customers · /hire · /morning

신규 패키징: astra-2.2.181.vsix.


v2.2.180 (2026-05-29)

👥 4인 팀 운영 8단계 — /hire 채용 파이프라인 트래커

4인 → 5인 이상 확장 시점. 후보자가 노션·스프레드시트·이메일에 흩어지지 않게 한 명령으로 본다. /customers 와 동일한 event-sourced 패턴.

신규 /hire 명령 (서브명령 11개):

  • /hire — 파이프라인 대시보드 (역할별/단계별 현황, 정체 알림)
  • /hire add <이름> <역할> — inbox 단계 신규 후보
  • /hire stage <이름> <새 단계> — 단계 이동
  • /hire note <이름> <텍스트> — 자유 메모
  • /hire offer <이름> <연봉> [입사일] — 오퍼 발송 (단계=offer)
  • /hire hire <이름> [입사일] — 입사 확정 (단계=hired)
  • /hire reject <이름> <사유> — 거절 (회사 측)
  • /hire decline <이름> <사유> — 후보 사양
  • /hire show <이름> — 상세 + 이력 (부분 매치 OK)
  • /hire list [active/closed/단계명/역할] — 필터 목록
  • /hire path — 파일 위치

기본 파이프라인: inbox → screened → interview → final → offer → accepted → hired (터미널: rejected · declined)

대시보드 핵심:

  • 진행 중 / 합격 / 종료 카운트
  • 역할별 진행 (백엔드 N명 · 디자이너 M명) — 채용 균형 시야
  • 단계별 후보 + 각자 정체 일수 (⏰ N일 정체 — 7일 이상 미변동 시)
  • 최근 합격 5명 (입사일 순)

저장 — 로컬 only:

  • <workspace>/.astra/hire.jsonl (append-only 이벤트)
  • 민감 정보(이름, 연봉, 거절 사유) 외부 안 보냄.

4인 팀 운영 누적 (1~8단계): /decisions · /onesie · /draft · /feedback · /blocked · /standup · /runway · /customers · /hire

신규 패키징: astra-2.2.180.vsix.


v2.2.179 (2026-05-28)

📒 4인 팀 운영 7단계 — /customers 고객사/MRR/갱신/위험 트래커

/runway지출 쪽 시야라면 /customers수입 쪽. Salesforce 없이도 4인 기업이 알아야 하는 모든 매출 정보 — MRR, 갱신 임박, 위험 고객 — 를 한 명령으로.

Event-sourced 설계 (CRM 아님):

  • 모든 변경(add/update/renew/risk/churn/note) = append-only 이벤트.
  • 현재 상태 = 같은 customerId 의 이벤트를 시간순 재생.
  • 손상·실수 복구 쉬움 — .jsonl 한 줄만 지우면 그 이벤트만 무효화.

신규 /customers 명령 (서브명령 10개):

  • /customers — 대시보드 (총 MRR, 활성/위험/이탈, 30일 내 갱신, 위험 MRR 비율)
  • /customers add <이름> <MRR> [갱신일] [요금제] — 신규
  • /customers update <이름> mrr=… renewal=… plan=… — 정보 수정
  • /customers renew <이름> <새 갱신일> [새 MRR] — 갱신 처리 (active 복귀)
  • /customers risk <이름> <사유> — 위험 표시
  • /customers churn <이름> <사유> — 이탈 처리 (MRR 0 으로)
  • /customers note <이름> <텍스트> — 자유 메모
  • /customers show <이름> — 상세 + 이벤트 히스토리 (부분 매치 OK)
  • /customers list [active/risk/churned] — 필터 목록
  • /customers path — 파일 경로

대시보드 핵심 지표:

  • 총 MRR + 연 환산 (자동)
  • 활성/위험/이탈 카운트
  • 위험 MRR 비율 — 전체 MRR 의 몇 %가 위험에 노출됐는지 (이 숫자 보고 우선순위)
  • 30일 내 갱신 — D-7 🔴 / D-14 🟡 / D-30 🟢 신호등
  • MRR 순 활성 고객 top 10

금액 단위: 200만 / 1.5억 / 300000 모두 OK (한국식). 갱신일: YYYY-MM-DD.

저장 — 로컬 only:

  • <workspace>/.astra/customers.jsonl (append-only 이벤트 로그)
  • 민감 정보(고객사 이름, 매출) 외부 안 보냄.

4인 팀 운영 누적 (1~7단계): /decisions · /onesie · /draft · /feedback · /blocked · /standup · /runway · /customers

신규 패키징: astra-2.2.179.vsix.


v2.2.178 (2026-05-28)

💰 4인 팀 운영 6단계 — /runway 현금/소진율/런웨이 트래커

4인 기업 CEO 가 매일·매주 확인하는 가장 중요한 숫자 — 통장에 얼마, 한 달에 얼마 나감, 몇 개월 버틸 수 있나. 회계 SaaS 연동 없이 한 명령으로 한 화면.

신규 /runway 명령 (서브명령 7개):

  • /runway — 현재 상태 카드 (현금 / burn / 런웨이 + 위험 등급)
  • /runway cash <금액> [메모] — 통장 잔고 스냅샷
  • /runway expense <금액> [메모] — 지출 기록 (자동 burn 계산에 반영)
  • /runway revenue <금액> [메모] — 수입 기록 (burn 상쇄)
  • /runway burn <월 금액> — 월 소진율 수동 설정 (자동 계산보다 우선)
  • /runway log [N] — 최근 N건 (기본 20, 최신순)
  • /runway path — .jsonl 파일 위치

금액 파싱 — 한국식 단위 그대로:

  • 5000만 / 1.5억 / 300000 / 1,500,000 / 10k / 5m 모두 OK.

런웨이 위험 등급:

  • 🟢 6개월+ (안전)
  • 🟡 3~6개월 (자금 계획 점검 권장)
  • 🔴 3개월 미만 (즉시 조달/절감 필요)
  • ♾️ 흑자 운영 (지출 ≤ 수입)

Burn 계산 우선순위:

  1. /runway burn 으로 수동 설정한 값 (예측 가능, 계절성 무시)
  2. 최근 30일 실적 (expense revenue, 30일 미만이면 일평균 × 30 환산)

저장 — 로컬 only:

  • <workspace>/.astra/runway.jsonl (append-only, 사람 편집 가능)
  • 민감 정보(현금 잔고) 외부 안 보냄 — ASTRA local-first.

4인 팀 운영 누적 (1~6단계): /decisions · /onesie · /draft · /feedback · /blocked · /standup · /runway

신규 패키징: astra-2.2.178.vsix.


v2.2.177 (2026-05-28)

📊 4인 팀 운영 5단계 — /standup 공유용 스탠드업 카드

/blocked대표가 본다 (분석), /standup팀에 공유한다 (소통). 같은 Tasks 데이터지만 다른 포맷·관점.

신규 /standup [daily/weekly/monthly] 명령:

  • 기본: weekly (7일 윈도우). 옵션: daily (1일) · monthly (30일).
  • 멤버별 그룹핑 + 3-row 표준 스탠드업 포맷:
    • 완료 (윈도우 내 완료, 최대 8건)
    • 🎯 진행/예정 (다가오는 마감 + 마감 미정, 최대 6건)
    • 🚧 블로커 (지연된 항목, 최대 5건)
  • 멤버 정렬: 활동량(완료+진행+지연×2) 내림차순 — 가장 바쁜 사람 위.
  • 부록: 이번 기간 결정 (Chronicle ADR) 목록, 최대 10건.
  • 출력: 단순 마크다운 — 슬랙·노션 그대로 복붙 가능.

/blocked vs /standup:

  • /blocked: 대표 시야 확보용. 멤버별 압박 요약 + /onesie 안내. 매일 아침.
  • /standup: 팀 공유용. 표준 standup 3-row. 매일/매주 게시.

4인 팀 운영 누적 (1~5단계): /decisions · /onesie · /draft · /feedback · /blocked · /standup

신규 패키징: astra-2.2.177.vsix.


v2.2.176 (2026-05-28)

🚨 4인 팀 운영 4단계 — /blocked 전사 across 지연·블로커 뷰

대표의 일일 아침 ritual 도구. /onesie 가 멤버 단위라면 /blocked 는 전체 across 한 화면 — "오늘 어디 살펴봐야 하나" 즉시 잡힘.

신규 /blocked [@멤버] 명령:

  • Google Tasks 전체 조회 후 owner 자동 추출(제목 [멤버] prefix · notes 담당: 이름 패턴 모두 인식 — /task/meet 양쪽 호환).
  • 3개 섹션 자동 분류:
    • 🔴 지연 (마감 < 오늘) — 가장 오래 지연된 것부터, 최대 20건
    • 🟡 이번 주 마감 (오늘~+7일) — 임박 순, 최대 15건
    • 마감일 없음 — owner 별, 우선순위 합의 대상, 최대 10건
  • 멤버별 압박 요약 (전체 보기일 때) — 지연·이번주 가중치로 정렬 → 압박 큰 멤버부터 /onesie @<멤버> 안내.
  • @멤버 인자 시 그 멤버만 (압축된 1인 뷰).

사용 예:

  • /blocked → 매일 아침 전체 점검
  • /blocked @기획자 → 기획자만 압축 뷰

4인 팀 운영 누적 (1~4단계 완성):

  • /decisions · /onesie · /draft · /feedback · /blocked

신규 패키징: astra-2.2.176.vsix.


v2.2.175 (2026-05-28)

📥 4인 팀 운영 3단계 — /feedback 고객 신호 누적 + 패턴 분석

3단계: 슬랙·이메일·CS 채널에 흩어진 고객 피드백을 한 곳에 모으고 LLM이 자동 분류·패턴 분석. ASTRA local-first 의 강점이 가장 살아나는 영역 — 민감 정보도 외부 전송 없이 로컬 처리.

신규 모듈 feedbackStore.ts:

  • 저장 위치: <workspace>/.astra/customer-feedback.jsonl (한 줄 = 한 항목, append-only, 사람이 직접 편집 가능).
  • FeedbackEntry 타입: id / timestamp / text / source / categories / sentiment.

신규 /feedback 4-mode 명령:

  • /feedback <텍스트> — 저장 + LLM 자동 카테고리 분류 (1~3개 카테고리 + sentiment positive/neutral/negative). LLM 분류 실패해도 원본은 보존.
  • /feedback list [카테고리] — 누적 목록 (최신순, 최대 20건). 카테고리 필터 가능.
  • /feedback summary — 3건 이상 누적 시 LLM 패턴 분석 리포트 (카테고리 분포 + 감정 분포 + 반복 패턴 Top 3 + 추천 액션).
  • /feedback path — 저장 파일 경로 표시.

사용 예:

  • /feedback 결제 흐름이 너무 복잡해서 중간에 포기했어요 - 김XX
  • /feedback list 결제 → 결제 카테고리 누적 피드백만
  • /feedback summary → 전체 패턴 리포트

다음 단계 후보 (별도): /blocked 전사 블로커 뷰, /feedback 자동 주간 리포트 (매주 월요일).

신규 패키징: astra-2.2.175.vsix.


v2.2.174 (2026-05-27)

🏢 4인 팀 운영 2단계 — /onesie 1:1 카드 + /draft 외부 커뮤니케이션 초안

2단계 묶음 (1단계는 v2.2.173 @담당자 태그 + /decisions). 단독 운영자(대표)의 주간 ritual 효율화.

신규 /onesie [멤버] — 1:1 미팅 준비 카드:

  • Google Tasks API 전체 조회 후 멤버 필터 (제목 [멤버] prefix · notes @멤버 · notes 담당: 멤버 패턴 모두 인식).
  • 자동 카테고리: 최근 30일 완료 / 지연 / 진행 중·다가오는 / 마감일 없음.
  • Chronicle ADR 에서 해당 멤버 언급된 결정 최신 5건 동시 표시.
  • 자동 대화 토픽 제안 — 상태 신호(지연 多 → 블로커, 완료 0 → 시간 사용 확인, 마감일 없음 多 → 우선순위 합의)에서 유도.
  • 사용 예: /onesie 기획자 · /onesie @디자이너 · /onesie 개발.

신규 /draft [유형] [요청] — 외부 커뮤니케이션 초안:

  • 6개 유형: email · slack · blog · newsletter · investor-update · proposal.
  • 각 유형별 분량/구조/톤 가이드 자동 적용.
  • 신규 설정 g1nation.teamVoiceGuide (multilineText) — 팀 보이스 가이드를 한 번 저장하면 모든 초안에 자동 반영.
  • 사용 예: /draft email 김 대표님께 미팅 일정 조율 요청, 다음 주 가능 시간 3개 제안

토대 — listTasks Google Tasks API 조회:

  • tasksApi.ts: listTasks(context, {showCompleted, maxResults}) — 신규 ListedTask 타입 (id/title/status/due/completed/notes).
  • /onesie 외 향후 /blocked, 진행률 리포트 등에 재활용 가능.

신규 패키징: astra-2.2.174.vsix.


v2.2.173 (2026-05-27)

🏢 4인 팀 운영 — @담당자 태그 + /decisions 결정 검색

4인 단독 운영 모드(대표가 모든 데이터 입력 + ASTRA가 조회·합성·재활용 담당)의 두 가지 토대 기능.

/task@담당자 태그 추가:

  • 첫 토큰이 @ 로 시작하면 owner 로 파싱 → 제목 앞에 [담당자] prefix 자동 추가.
  • 사용 예: /task @기획자 스펙 1차 정리 26/06/01 26/06/05 → Tasks/Calendar 양쪽에 [기획자] 스펙 1차 정리 로 표시.
  • 노트에도 담당: @기획자 한 줄 자동 기록 → /decisions 가 grep 으로 찾을 수 있음.

신규 /decisions [키워드] [@담당자] — Chronicle ADR 검색:

  • 이미 chronicle 이 쌓고 있는 결정 기록(<recordRoot>/decisions/ADR-NNNN-*.md)을 키워드 + 담당자로 검색.
  • 모든 등록된 chronicle 프로젝트 일괄 스캔, 최신순, 최대 20건.
  • 출력: 제목 + 날짜 + 프로젝트 + 키워드 주변 스니펫 + 파일 경로.
  • 사용 예: /decisions 환불 정책 · /decisions @기획자 · /decisions 결제 @개발
  • 인자 없이 실행 시 도움말 표시.

다음 단계 후보 (별도 작업): /onesie [멤버] — 1:1 미팅 준비 카드, /draft [유형] — 외부 커뮤니케이션 초안.

신규 패키징: astra-2.2.173.vsix.


v2.2.172 (2026-05-27)

🎛️ /meet — 기본값을 Tasks 단독 등록으로 변경 (중복 방지)

  • g1nation.meetUsesCalendar 기본값 truefalse. Tasks 도 Calendar 사이드바에 같이 보이므로 둘 다 켜져 있으면 동일 항목이 중복 노출(일정 + 할 일 각 1건씩)되던 문제 해결.
  • 사용자 명시 설정이 없던 경우 자동으로 새 기본 적용 — 다음 /meet 부터 Tasks 단독.
  • 양쪽 등록을 원하면 Settings 에서 g1nation.meetUsesCalendar 를 true 로 명시 토글.
  • /task 명령은 변경 없음 — 사용자가 직접 호출한 명령이라 항상 양쪽 등록.
  • 신규 패키징: astra-2.2.172.vsix.

v2.2.171 (2026-05-27)

📋 신규 /task — Google Tasks + Calendar 양쪽 단발 등록

  • 사용법:
    • /task <제목> <시작일> <완료일> — 기간 작업 (예: /task Apple 계정 생성 요청 26/05/27 26/06/28)
    • /task <제목> <날짜> — 하루짜리 작업 (시작=완료, 같은 날)
  • 날짜 형식 3종 지원: YY/MM/DD · YYYY-MM-DD · YYYY/MM/DD. 유효성 검증(2/30 같은 잘못된 날짜 차단) 포함.
  • 항상 양쪽 등록/meet 과 달리 사용자가 직접 호출한 명령이므로 meetUsesTasks / meetUsesCalendar 설정 무시하고 무조건 Tasks + Calendar 둘 다 등록.
  • Tasks: 마감일만 (모델 한계 — 시작일은 노트에 기록). Calendar: all-day 기간 일정(end-exclusive 자동 보정으로 완료일 포함 표시).
  • 성공/부분 실패/전체 실패 각각 명확한 메시지 + Calendar 이벤트 deep link 표시.
  • 신규 패키징: astra-2.2.171.vsix.

v2.2.170 (2026-05-27)

📝📅 /meet — Tasks + Calendar 양쪽 동시 등록 (독립 토글)

  • v2.2.169의 either/or 분기 → 양쪽 동시 등록으로 변경. 사용자 요청 반영 ("캘린더에도 등록되고 Tasks로도 등록되게").
  • 신규 설정 g1nation.meetUsesCalendar (기본 true). 기존 meetUsesTasks독립 토글 — 둘 다 true(기본)면 양쪽 동시 등록, 한쪽만 true면 그쪽만, 둘 다 false면 자동 등록 건너뜀.
  • 출력 포맷 개선: 각 액션 아이템 옆에 어디에 성공/실패했는지 표시 — (Tasks + Calendar) 또는 ⚠️ Calendar: <에러>. 마지막 요약도 destination 별로 분리 (Tasks 5/5 · Calendar 5/5).
  • 기존 동작 호환: meetUsesTasks=false + meetUsesCalendar=true 로 두면 2.2.168 이전과 동일 (Calendar 만 등록).
  • 신규 패키징: astra-2.2.170.vsix.

v2.2.169 (2026-05-27)

📝 /meet 액션 아이템 → Google Tasks 등록 (Calendar 일정에서 변경)

  • 신규 Google Tasks API 통합 (tasksApi.ts) — createTask(context, {title, due, notes}). Calendar / Sheets 와 동일한 OAuth 토큰 공유, 새로 추가된 tasks 스코프 사용.
  • /meet 라우팅 변경: 액션 아이템은 시간 없이 마감일만 있는 "할 일" 이라 Google Tasks 모델에 더 자연스럽게 맞음. 기존엔 Calendar all-day 일정으로 등록돼 주 캘린더에 "conference call" 유형으로 표시되던 문제 해결.
  • 신규 설정 g1nation.meetUsesTasks (기본 true) — false 로 두면 기존 Calendar 일정 등록으로 fallback.
  • OAuth 스코프 추가: https://www.googleapis.com/auth/tasks 가 SCOPE 에 추가됨. 기존 OAuth 한 사용자는 재인증 필수 — 새 스코프는 옛 refresh token 에 없음.
  • 사용자 액션 필요 (1회):
    1. Google Cloud Console 에서 Tasks API 활성화: https://console.developers.google.com/apis/api/tasks.googleapis.com/overview
    2. VS Code 에서 Astra: Google Calendar OAuth 연결 (쓰기) 명령 재실행 — Tasks 스코프 동의 화면이 새로 뜬다.
  • 권한 부족 시 친화 안내 메시지 자동 표시 (어떤 명령을 재실행해야 하는지).
  • 신규 패키징: astra-2.2.169.vsix.

v2.2.168 (2026-05-27)

📦 재패키징 (소스 변경 없음)

  • ASTRA 소스 변경 없음. 별개로 적용한 Datacollect Bridge /api/lm 복원력 수정(LM 서버가 raw text 응답해도 OpenAI shape 으로 wrap → ASTRA /youtube info 등이 깨진 에러 벽 대신 정상 결과를 받음)에 맞춰 깨끗한 설치본 제공.
  • 신규 패키징: astra-2.2.168.vsix.

v2.2.167 (2026-05-27)

🔬 /stocks analysis — 분석 로직 정밀화 (사용자 피드백 5건 반영)

로직 수정 (yahooClient.ts):

  • MA224 3-state 도입 — passed / failed / notApplicable (N/A). 현재가가 MA224 보다 +20% 이상 위면 추세 이미 확립 상태로 보고 N/A 처리. 미통과로 표기하던 오해 차단(예: 삼성전자우 +93% 위에 있는데도 표시되던 문제).
  • 낙폭과대 failReason 명시 — 두 조건(고점 -25% / 저점에서 +10%) 중 어느 게 어긋났는지 구체 사유 반환. LLM 이 인과 거꾸로 해석("64% 반등이라서 미통과") 하던 문제 차단.

데이터 보강 (slashStocks.ts):

  • 우선주 자동 감지 (symbol 끝자리 5/7/9 → 보통주 자동 도출, 예: 005935→005930). 보통주 현재가 자동 fetch 후 할인율 계산. 할인 범위 가이드 동봉 (10~30% 정상, <10% 프리미엄, ≥30% 확대).

프롬프트 강화 (ANALYSIS_SYSTEM_PROMPT):

  • 판단 절제 규칙 4건 신설:
    • (a) PBR/PER 절대값으로 "고평가/저평가" 단정 금지 — 업종 평균 부재 시 절대값만 제시
    • (b) 거래량 ±20% 미만은 무의미 — "상승 동력 약화" 같은 강한 해석 금지(예: -9% 변동이 부정 신호로 잡히던 문제)
    • (c) 우선주 특이항목 반영 필수 — [우선주 정보] 블록 있으면 할인율을 매수 의견 근거에 반영
    • (d) 오탈자 자기 점검 — "순위→순칭", "근거→근례" 같은 한국어 토큰 깨짐 방지
  • MA224 N/A 상태 / 낙폭과대 failReason 을 LLM 이 인지하도록 6차원 평가 가이드 갱신.

보류 (별도 작업 필요): 배당수익률 fetch (Naver crawl 확장), 섹터 자동 보강.

신규 패키징: astra-2.2.167.vsix.


v2.2.166 (2026-05-27)

💹 /stocks analysis — 매매 타점(진입·손절·익절·관망 해제) 신규 섹션

  • 신규 ## 매매 타점 섹션 (ANALYSIS_SYSTEM_PROMPT) — 매수 의견 바로 아래, 리스크 위.
  • 4개 sub-section (사용자 제공 매매 규칙을 raw 데이터 기반으로 적응):
    1. 매수 진입 타점 — 3순위 시나리오(MA20 지지 / MA60 눌림 / 낙폭과대+RSI≤30) 중 현재 기술 상태에 부합하는 것만 출력. 회피 권장도면 sub-section 생략.
    2. 손절 기준 — 종가 기준 이탈 (장중 터치 미적용). 매수 시나리오별 (MA20/MA60/60일저점) 가격 + 최대 허용 손실%.
    3. 익절 타점 — 1차(1년 최고가×0.98) → 2차(라운드 넘버) → 3차(업종 PER 비교, 데이터 미수집 명시).
    4. 관망 해제 트리거 — 권장도가 "관망"일 때만 출력. 4개 트리거 중 2개+ 충족 시 진입.
  • LLM이 raw 데이터로 실제 가격 채우도록__원 placeholder 금지, 실제 MA값·1년 고가·60일 저점으로 구체화. 권장도/기술 상태에 따라 적응적으로 출력(부적합 시나리오는 생략).
  • 신규 패키징: astra-2.2.166.vsix.

v2.2.165 (2026-05-27)

📋 /youtube info — 3-tier 재설계 (중복 제거 + 깊이 단순화 + 표 제거)

  • 앞 턴(2.2.164)의 "대시보드 위에 추가" 방식이 중복을 만들었다는 사용자 피드백 수용. 9개 섹션 → 4개 ## 섹션 3-tier 구조로 재설계.
  • 새 구조 (youtubePrompts.ts:buildInfoExtractionPrompt):
    1. 30초 요약 (skim) — 한 줄 + 핵심 포인트 3개 + 화자 한 줄 비유. 바쁜 사람은 여기서 멈춤.
    2. 핵심 개념 설명 (이해) — 영상이 사용한 주요 개념·용어 2-5개 정의 + 등장 맥락.
    3. 깊이 분석 (deep dive) — 타임라인 / 결정적 발언 / 더 파고들 질문 / 구체 수치.
    4. 정리자 노트 (선택) — [정리자 추론] 라벨 전용.
  • 중복 제거: "한 줄 요약"은 30초 요약에 한 번만. 기존엔 대시보드·TL;DR·핵심 주장에 분산.
  • 표 → bullet: "사실·데이터" 표가 깨진 셀(way 같은 LLM artifact)을 노출하던 문제 → 표 금지, bullet로만, 완성된 항목만.
  • 헤더 이모지 제거: 스캔할 때 시선이 분산되어 내용을 가린다는 피드백 수용. 모든 ## · ### 헤더에서 이모지 제거.
  • 신규 시스템 원칙 3건 추가: 헤더 이모지 금지 / 표 사용 신중 / 중복 금지.
  • 신규 패키징: astra-2.2.165.vsix.

v2.2.164 (2026-05-27)

📋 /youtube info — 상단 "구조화된 요약" 대시보드 추가

  • 신규 ## 📋 구조화된 요약 섹션을 메타데이터 바로 아래에 추가 (youtubePrompts.ts:buildInfoExtractionPrompt).
  • 하위 3개 sub-section:
    • 🎯 핵심 3요소: 주제 / 핵심 주장 / 근거·사례
    • ⏱️ 타임라인 기반 요약: 30분 이상 영상은 4-7개 구간 압축, 미만은 생략(🧭 구조 요약 참조)
    • 📝 한 줄 요약 + 기억할 포인트 3~5개
  • 기존 8개 섹션(🎯 한 줄 요약·💡 화자 한 줄 비유·📌 핵심 주장·📊 사실·데이터·인용·🧭 구조 요약·🔗 인용용 카드·❓ 더 파고들 질문·🧩 정리자 노트)은 그대로 유지 — 대시보드는 압축 버전, 아래 섹션들은 깊이 버전.
  • 약간의 redundancy(한 줄 요약 두 번 등장)는 의도 — 대시보드에서 빠르게 잡고, 필요하면 깊이 섹션에서 풀어 읽는 dual-layer.
  • 신규 패키징: astra-2.2.164.vsix.

v2.2.163 (2026-05-27)

📊 /stocks analysis 6차원 확장 + 신규 /stocks position

  • /stocks analysis 6차원으로 확장 — 가이드(주식 분석 6단계) 흡수:
    • 부채비율 추가 (재무 안정성 차원 강화 — 200% 이하 안전, 100% 이하 우량)
    • MA 정배열/역배열 (5/20/60/120일 이평선 배열 판정 — 추세 차원에 추가)
    • RSI(14) (Wilder's smoothing, 과열≥70 / 침체≤30 / 중립 — 진입 타이밍 신규 차원)
    • LLM 시스템 프롬프트도 6차원 + 각 지표 해석 가이드로 갱신
    • 추가 API 호출 없음 — 이미 fetch한 1년 시세에서 모두 계산
  • 신규 /stocks position [심볼] <총자산> <리스크%> <손절%> — 포지션 사이징 계산기:
    • 공식: 권장 투자금 = 총자산 × 리스크% ÷ 손절% (가이드 5단계)
    • 심볼 주면 Yahoo 현재가로 매수 가능 주수까지 자동 계산
    • 권장 투자금이 총자산의 50% 초과 시 입력값 재검토 경고
    • 별칭: /stocks size
  • 보류한 가이드 항목 (현실적 한계): PEG(이익 성장률 데이터 부재), 업종 평균 PER / 5년 역사적 PER(별도 데이터소스 필요), 사업 해자(LLM 환각 위험), MACD(우선순위 낮음).
  • 새 helper (yahooClient.ts): evalMaAlignment, evalRsi14.
  • 신규 패키징: astra-2.2.163.vsix.

v2.2.162 (2026-05-27)

🔎 /stocks analysis <심볼> — 단일 종목 심층 분석

  • 신규 sub-command (slashStocks.ts): 한 종목에 대해 Naver 펀더멘털 fresh fetch + Yahoo 1년 시세 기반 기술 지표(224일선 회복, 낙폭과대) + LLM 종합 평가까지 한번에. stocks.json 미등록 종목도 가능.
  • 차이점 vs 기존 /stocks judge: judge는 stocks.json 저장된 펀더멘털만 사용한 4-criteria 평가. analysis는 fresh fetch + 차트 패턴 + LLM 매수권/관망/회피 권장도.
  • 출력 형식 (LLM 강제): ## 종합 평가 2-3문장 / ## 매수 의견 권장도 + 근거(수치 인용) / ## 리스크 1-2줄.
  • 데이터 투명성: LLM에 보내는 raw 데이터 요약을 사용자에게도 코드블록으로 먼저 표시. 모델 응답과 비교 검증 가능.
  • 별칭: /stocks analyze <심볼> 도 동일하게 동작.
  • 신규 패키징: astra-2.2.162.vsix.

v2.2.161 (2026-05-22)

📈 /stocks discover — 낙폭과대 키워드 + 224회복 거래량 확인

  • 신규 낙폭과대 키워드 (evalDropRecovery): 영상(주식단테 "이미 빠진 종목 + 바닥 찍고 회복")의 정량화. 현재가 ≤ 1년 최고가 × 0.75(25%↓) AND 현재가 ≥ 60일 최저가 × 1.10(저점에서 10%↑) → 낙폭과대 +1. 224회복(추세 전환)과는 다른 각도 — 안전마진 + 반등 초입.
  • 224회복 거래량 확인 강화 (evalMa224Recovery): 기존 가격 조건에 더해 최근 5일 평균 거래량 ≥ 60일 평균 × 1.2 요구. 거짓 돌파(일시적 가격 튐) 필터. 거래량 데이터 부족 시 가격 조건만으로 판정(폴백).
  • 추가 API 비용 없음 — fetchYahooHistory가 이미 1년 일봉을 가져오므로 거래량·1년 max·60일 min 계산만 추가.
  • 결과 표시 예: 통과 (5): ROE, 수익성, 저평가, 224회복, 낙폭과대.
  • 신규 패키징: astra-2.2.161.vsix.

v2.2.160 (2026-05-22)

📈 /stocks discover — 저평가(PBR↓) 강조 + 224일선 회복 패턴 추가

  • 저평가 2단계 키워드 (stockDiscovery.ts:evaluateKeywords): 기존 PBR(≤1.5)는 유지. 추가로 PBR ≤ 1.0 = 저평가, PBR ≤ 0.7 = 초저평가. PBR 낮을수록 점수 자체가 +1~2 가산.
  • PBR 오름차순 타이브레이커: 정렬 = 통과 키워드 수 desc → 동점 시 PBR asc. 같은 점수면 저평가 종목이 위로.
  • 224일선 회복 보너스 (224회복): 영상(주식단테 "224일선 안착 = 추세 전환") 기준 정량화. 1차 통과 후보에 한해 Yahoo 1년 일봉 fetch → 현재 종가 ≥ 오늘 MA224 AND 최근 30거래일 중 5일 이상 MA224 아래에 머문 적 있으면 224회복 키워드 +1. 회복 직후 추세 전환 신호인 종목이 자연스럽게 상위로.
  • 신규 모듈 (yahooClient.ts): fetchYahooHistory(1년 일봉), fetchAllHistories(배치, 1초/심볼 throttle), evalMa224Recovery(rolling MA224 + 회복 판정).
  • 비용: 1차 통과 후보(보통 2050개)에만 시세 fetch → +2050초 추가. 전체 1차후보엔 안 돌림.
  • 신규 패키징: astra-2.2.160.vsix.

v2.2.159 (2026-05-22)

📦 재패키징 — 다른 머신의 2.2.158 코드 + chronicle 갱신을 이 머신 설치본으로 빌드

  • 소스 변경 없음. git pull 로 받은 2.2.158 작업 트리(다른 머신의 v2.2.64~2.2.158 누적 작업 — LM Studio 발견·로그·CSP·chunked writer·info prompt 강화·답변 포맷 정리·god-file 분해·Stocks·대화 연속성 등)를 이 머신용 .vsix 로 패키징.
  • 신규 패키징: astra-2.2.159.vsix.

v2.2.72 (2026-05-23)

LM Studio 통신 hardening + 속도 부스트 팩

한 turn 에 두 라운드 작업을 묶었다. (A) 통신 경로 안전망 9건 + (B) 속도 개선 4건.

(A) 통신 hardening

  • Sampling parity SDK ↔ REST. 기존엔 topP/topK/minP/repeatPenalty 가 SDK 경로에만 적용 → 핸들이 죽어 REST 로 fallback 되면 한글 토큰 깨짐(붕괴→붕점) 재발. 공유 LmStudioSampling + samplingToRestBody 로 두 경로가 동일 값을 보내도록 통일. Ollama 도 options.{top_p,top_k,min_p,repeat_penalty} 로 같이 받음.
  • 신규 설정: g1nation.lmStudio.sampling.{topP=0.9, topK=20, minP=0.05, repeatPenalty=1.1} + g1nation.lmStudio.statsInBudget=true.
  • prediction.stats UI 노출. 매 turn 끝나면 ctx-badge 에 … · 32.1 tok/s · TTFT 0.40s 표시 (SDK 경로만). 툴팁에 출력 토큰 수 / 총 시간 / stopReason 도 추가.
  • listDownloaded TTL 캐시 (60s). 사이드바 드롭다운 열 때마다 LM Studio 디스크 walk 하던 호출을 캐싱. 빈 결과는 캐싱 안 함 (방금 켠 LM Studio 가리는 회귀 방지). setBaseUrl / invalidateCaches() 가 캐시 초기화.
  • Empty-response 복구 일원화. LMStudioStreamer.stream() 의 attempt-2 retry 가 dead-handle 에러뿐 아니라 "에러 없이 0 token" 케이스도 다룸. agent.ts 의 중복된 handle-reset retry 블록 (~30 LOC) 삭제. REST fallback 은 유지.
  • handle-dead 패턴 확장. channel closed, WebSocket (is not open|closed|disconnected), Connection (lost|reset|closed), ECONNRESET, socket hang up 추가.
  • httpToWebSocketUrl path 정리. /api/v0, /api/v1, /v1, /api 를 loop 으로 unwind — http://host/api/v0 → ws root 까지 한 번에.
  • service-down 조기 break. createStreamingRequesterror.cause.code === 'ECONNREFUSED' | 'ENOTFOUND' | 'EAI_AGAIN' 감지 시 attempt/variant/candidate 루프 즉시 종료. 12회 fetch → 1회 → 사용자 에러 ~1s.
  • callAgent cutoff warn. sub-agent SDK 호출도 stopReason 검사 → /maxPredicted|context|truncat/ 매칭 시 logError. 잘린 specialist 출력이 silently pipeline 을 오염시키는 거 방지.

(B) 속도 부스트

  • Speculative decoding. 신규 설정 g1nation.lmStudio.draftModel (빈 값 = OFF). 작은 draft 모델 (e.g. gemma-2b-it) 지정 시 large 모델 1.5~3× throughput. ChatStreamRequest.draftModel → SDK respond({draftModel}). main 모델 load 직후 lifecycle 이 unstable_preloadDraftModel 호출해 cold-load 비용 제거. ctx-badge 에 spec 68% accept-ratio 표시 (60%+ healthy, 30% 미만 = draft 가 잘못 골라 오히려 느려질 수 있음).
  • Load-time 옵션 (8개). client.load()LMStudioLoadConfig 받아 LLMLoadModelConfig (GPUSetting 래퍼 포함) 으로 SDK 에 전달.
    • g1nation.lmStudio.load.flashAttention (true) — long-context 10~20%
    • g1nation.lmStudio.load.gpuOffloadRatio ("max" | "off" | 0-1)
    • g1nation.lmStudio.load.offloadKVCacheToGpu (true)
    • g1nation.lmStudio.load.keepModelInMemory (true) — swap-out 방지
    • g1nation.lmStudio.load.useFp16ForKVCache (false) — KV-cache 메모리 반감 (VRAM 빠듯할 때)
    • g1nation.lmStudio.load.evalBatchSize (0 = 엔진 default) — prefill 속도
  • liveStreamTokens 기본 → true (← false). TTFT 체감 향상 — sanitize + streamReplace 가 생성 끝에 최종 답변으로 교체하므로 control token 노출은 잠깐만 가능. (memory 의 "sanitize-before-post handles the leak" 가 근거)

시스템 프롬프트 KV-cache (item 1+5): 조사 결과 현재 ordering (stable head → [CONTEXT] body → stable tail) 이 이미 prefix-cache 친화적이라 코드 변경 없음. 단, agent persona-first 배치는 small-model anchoring 우선으로 유지 — KV-cache 잠재 이득보다 답변 품질이 우선.

Touched: src/{config,agent,extension}.ts, src/lmstudio/{client,streamer,lifecycleManager}.ts, media/sidebar.js, package.json (12개 신규 설정 + liveStreamTokens default flip), 2개 test FakeClient 에 listDownloadedCached stub. 401/401 jest 통과 · tsc clean · esbuild 2.9MB.

신규 패키징: astra-2.2.72.vsix.


v2.2.71 (2026-05-23)

📦 자동 기록 줄 전체를 도구 ▾ 메뉴 안으로 이동

  • 요청 명확화: v2.2.70 에서 토글만 도구 메뉴에 추가했는데, 사용자가 원했던 건 사이드바 하단의 records-line ("● 자동 기록 · filename · 기록 ▾") 줄 전체 를 도구 메뉴 안으로 옮기는 것.
  • 수정: media/sidebar.html<div class="records-line"> 통째로 삭제. 그 안에 있던 모든 요소 (자동 기록 status, recordsLatest, chronicleRecordSel, openChronicleRecordBtn, refreshChronicleRecordsBtn, openDesignerBtn) 를 도구 ▾ 드롭다운 안으로 흡수. 도구 메뉴는 hdr-menu-wide 로 변경.
  • 새 메뉴 레이아웃: 도구 ▾ 클릭 시
    • "자동 기록" 섹션 — 토글 / 최근 저장 기록 status / 기록 selector / 선택 기록 열기 / 새로고침 / 폴더 열기
    • "도구" 섹션 — 근거 추적 JSON 보기 / 원본 답변을 두뇌에 저장 / 두뇌 동기화
  • JS 안전성: 모든 element ID 는 유지했으므로 기존 sidebar.js 핸들러는 그대로 작동. renderChronicleAutoToggle 만 살짝 수정 — chronicleAutoStatus 가 이제 자식 (status-dot · recordsLatest) 을 가진 컨테이너라 textContent 직접 할당이 자식을 지우는 회귀를 막기 위해 opacity / title 만 갱신하도록 변경.
  • 사이드바 공간: records-line 줄 한 줄 제거 → context bar 와 chat 본문 사이 noise 감소.
  • 신규 패키징: astra-2.2.71.vsix.

v2.2.70 (2026-05-23)

🎚 자동 기록 On/Off 토글 (도구 메뉴)

  • 추가: 사이드바 records-line 의 "자동 기록" 표시를 끄고 켤 수 있는 토글. 위치는 도구 ▾ 드롭다운 첫 항목 (자동 기록: 켜짐 / 꺼짐).
  • 신규 설정: g1nation.chronicleAutoRecord (기본 true). 토글 클릭 시 즉시 VS Code Global 설정에 영구 저장 — 다음 세션에도 유지.
  • gating: _autoWriteChronicleAfterPrompt 진입 시 getConfig().chronicleAutoRecord === false 면 early return. 자동 저장만 멈추고, 수동 기록 (도구 메뉴의 다른 기록 항목, /wiki 등) 은 그대로 동작.
  • UI 피드백: OFF 일 때 records-line 의 "자동 기록" 라벨이 "자동 기록 (꺼짐)" + dim opacity, 최근 기록 라벨도 dim 처리해 한눈에 상태 파악. 클릭 반응성을 위해 낙관적 갱신 후 서버 응답으로 보정.
  • 메시지: 신규 webview ↔ extension 메시지 setChronicleAutoRecord / getChronicleAutoRecord / chronicleAutoRecordStatus. chronicleHandlers.ts 에서 라우팅.
  • 신규 패키징: astra-2.2.70.vsix.

v2.2.69 (2026-05-23)

💾 대화 히스토리 — 슬라이딩 윈도우 + 모드 전환 bridge

  • 현황 확인: "히스토리 전역 단일 관리" 요구는 이미 충족 — AgentExecutor.chatHistory 단일 인스턴스이며 에이전트/회사/멀티에이전트 모드 전환은 history 를 비우지 않는다. 명시적 /newChat 이나 세션 삭제 때만 reset.
  • 수정 1 — sliding window 요약. 기존 trimHistoryToBudget 은 오래된 메시지를 단순히 [이전 대화 N개 ... 생략됨] count 마커로 대체 → 모델이 "이전에 무슨 얘기를 했는지" 모름. 이제는 dropped 메시지 배열을 marker factory 로 같이 넘기고, agent.ts buildDroppedHistorySummary() 가 추가 LLM 호출 없이 heuristic 으로 (a) 각 user prompt 첫 문장 (b) 각 assistant 답변 첫 문장 (R1 conclusion-first 가정) 만 뽑아 U1: ... / A1: ... / U2: ... 형식의 한 system 메시지로 압축. 8턴 이상이면 가장 오래된 절반은 한 줄로 축약.
  • 수정 2 — 모드 전환 bridge. AgentExecutor._lastModeSignature 로 (agent skill, multiAgent, company mode, brain) 의 해시를 추적. handlePrompt 진입 시 직전 값과 다르면 system prompt 에 [MODE TRANSITION BRIDGE] 이전 모드 / 현재 모드 / 직전 대화 주제 한 블록을 끼움. chatHistory 는 그대로라 사용자에겐 대화 연속이고, 모델은 새 페르소나/포맷을 따르면서도 직전 맥락을 잊지 않는다. clearHistory / resetConversation 에서 signature 도 함께 초기화해 새 세션 첫 메시지에 spurious bridge 가 끼지 않게 함.
  • 시그니처 변경: trimHistoryToBudgetmakeMarker(droppedCount, droppedMessages) 두 인자를 받는다. 호출부 (agent.ts) 와 단위 테스트 (contextManager.test.ts) 갱신.
  • 신규 패키징: astra-2.2.69.vsix.

v2.2.68 (2026-05-23)

📐 답변 형식 — 7개 hard rules

  • 변경: 답변 포맷 규칙을 사용자가 지정한 7개 hard rule 로 전면 교체. 기존 "긴 답변엔 핵심 요약 블록 + 상세 설명 + 제안" 의 3-section 템플릿은 폐기.
    • R1. 첫 문장에 결론 (no 인삿말, no "분석해보겠습니다", no "핵심 요약" 라벨)
    • R2. 섹션 최대 3개
    • R3. 같은 내용을 두 번 말하지 않는다
    • R4. 볼드는 전체 답변에서 3개 이하
    • R5. 추가 정보 없이 판단 가능하면 바로 실행
    • R6. 질문은 1개만 — (a) 방향이 두 갈래로 갈리고 사용자 의도를 알 수 없을 때, 또는 (b) 비가역 작업 직전
    • R7. 추측 가능하면 추측+실행하되 가정 한 줄 명시 ("가정: ...")
  • 적용 범위: 단일 에이전트 경로 (BASE_SYSTEM_PROMPT [OUTPUT FORMAT]) + 멀티 에이전트 최종 단계 (SynthesizerAgent persona) 양쪽에 동일 규칙 주입. 두 경로 모두 같은 형식으로 답변하도록 보장.
  • 부수 정리: [FOLLOW-UP QUESTION RULES] 섹션은 R6 에 흡수돼 제거. [ENGINEERING STANCE] 의 "Give the verdict first, then explain tradeoffs" 도 R1 과 중복이라 정리.
  • 신규 패키징: astra-2.2.68.vsix.

v2.2.67 (2026-05-23)

🧠 두뇌 추가/수정/삭제 정상화

  • 문제: v2.2.66 이후 신고된 두 가지 회귀.
    1. 두뇌 "추가" 후 dropdown 에 새 brain 이 들어가긴 하는데 선택된 표시는 마지막 옵션인 + Add New Brain... 으로 굳어버림 → 사용자에겐 "이름이 add new brain 으로 바뀜" 으로 보임.
    2. 그 상태에서 "수정"/"삭제" 버튼이 침묵 — 클릭해도 아무 일 안 일어남.
  • 원인 1 — selected 적용 순서: brainProfiles 핸들러가 option.selected = trueappendChild 직전에 거는 패턴이라 일부 Chromium webview 가 무시. 결과적으로 dropdown selectedIndex 가 마지막 옵션 (+ Add New Brain...) 에 머무름.
  • 원인 2 — brainSel.value === 'new' 잠금: 사용자가 dropdown 의 + Add New Brain... 옵션을 직접 클릭하거나, 폴더 선택 모달을 취소하면 brainSel.value'new' 로 굳어버림. 수정/삭제 버튼 onclick 첫 줄 if (brainSel.value === 'new') return; 가 silently early-return → 수정 안 됨.
  • 수정 1 — selected 적용 순서 변경. 옵션을 다 넣은 후에 brainSel.value = activeBrainId 로 한 번에 selection 적용. appendChild 전 o.selected = true 패턴 제거. 이전에 'new' 로 굳어있던 값도 확실히 덮어쓴다.
  • 수정 2 — 'new' 클릭 즉시 복원. brainSel.onchange'new' 를 감지하면 addBrain 메시지를 보냄과 동시에 dropdown 을 직전 유효 선택(brainSel.dataset.lastSelected)으로 즉시 되돌림. 사용자가 폴더 선택을 취소해도 dropdown 이 'new' 로 굳지 않는다.
  • 수정 3 — Edit/Delete 폴백. 두 버튼이 만약 dropdown 이 'new' 인 순간에도 작동하도록 직전 유효 선택 또는 첫 실제 옵션으로 폴백. 더 이상 silent early-return 없음.
  • 신규 패키징: astra-2.2.67.vsix.

v2.2.66 (2026-05-23)

🧠 두뇌(지식 폴더) 드롭다운 회귀 수정

  • 문제: 사이드바 컨텍스트 바의 두뇌 선택자가 갑자기 + Add New Brain... 하나만 보이는 상태. readyBar 에는 Brain 5407 처럼 brain 자체는 정상 인식되는데 dropdown 만 빔.
  • 원인 추정: webview 의 ready 핸드셰이크 체인 (_sendBrainStatus → _sendBrainProfiles → _sendSessionList → _sendModels → _sendChronicleProjects → _restoreActiveSessionIntoView → _sendReadyStatus) 도중 한 단계가 throw 하면 그 뒤가 통째로 안 도는 구조. 또는 빈 profiles 배열 메시지가 한 번이라도 도착하면 기존 dropdown 옵션을 그대로 비워버리는 핸들러.
  • 수정 1 — sidebar.js 방어: brainProfiles 메시지의 profiles 가 빈 배열/undefined 이면 기존 dropdown 옵션을 보존하고 warn 로그만 남긴다. 잘못된 상태로 옵션을 0개로 만들어 + Add New Brain... 만 남기는 회귀 차단. case 블록을 {...} scope 로 감싸 향후 const 명 충돌도 예방.
  • 수정 2 — 초기 setup 이중 보장: sidebarProvider.ts view 생성 시점에 _restoreActiveSessionIntoView + _sendReadyStatus 외에 _sendBrainProfiles / _sendAgentsList / _sendModels 도 직접 한 번 푸시. 'ready' 체인이 깨져도 dropdown 은 살아 있음.
  • 수정 3 — 진단 로그: _sendBrainProfiles 가 호출될 때마다 profiles=N activeBrainId=X 를 logInfo. 재발 시 Output → Astra 채널만 보면 원인 즉시 판별.
  • 신규 패키징: astra-2.2.66.vsix.

v2.2.65 (2026-05-23)

🧼 마크다운 마커 2차 sanitize — enforcer 재주입까지 차단

  • 문제: v2.2.64 에서 stripMarkdownFormattingcleanedVisible (모델 raw 출력 직후) 에만 적용했는데, 그 이후 단계인 enforceLocalPathReviewAnswer 가 sanitize 된 답변 앞에 ## 경로 확인 결과 헤더를 하드코딩으로 다시 prepend → 화면에는 마커가 그대로 노출. ## 간단 요약, ## 강점, ## 근거, ## 다음 액션 등 ~20곳에서 같은 패턴.
  • 수정: agent.ts finalAssistantContent (webview / chatHistory 에 들어가는 진짜 최종 문자열) 단계에 sanitizer 2차 패스를 추가. 1차(모델 출력) + 2차(enforcer 출력) 이중 방어로 어떤 코드 경로에서 ##/** 가 prepend 되어도 디스플레이 직전에 모두 벗겨진다.
  • 신규 패키징: astra-2.2.65.vsix.

v2.2.64 (2026-05-23)

🪶 Plain-text 출력 + 긴 답변 강제 요약

  • 문제: 작은 로컬 모델이 학습된 습관으로 ## 다음 한 수, ** 강조 마커를 그대로 노출. 어떤 답변엔 라벨만 있고 본론으로 곧장 들어가서 사용자가 현황을 빠르게 파악하기 어려움.
  • 수정 1 — 후처리 sanitizer. responseRecovery.tsstripMarkdownFormatting(text) 추가. 코드 블록/인라인 코드는 보존하고 줄 시작 #{1,6}\s+ 헤더 마커, **bold** / __bold__, 단일 *강조*, blockquote > , asterisk 불릿 * 만 제거. 라벨 텍스트(핵심 요약, 다음 한 수)는 그대로 유지.
  • 수정 2 — Synthesizer 강제 규칙. Synthesizer 페르소나에 [FORMAT — PLAIN TEXT ONLY, NO MARKDOWN] 블록과 [STRUCTURE] 블록 추가. 답변이 ~4문장 / 400자 를 넘으면 반드시 핵심 요약 블록(24 bullets)을 답변 맨 앞에 넣는다. 짧은 답변은 그대로.
  • 수정 3 — BASE_SYSTEM_PROMPT 정비. 기존 [OUTPUT FORMAT]## 핵심 요약, ## 상세 설명 같은 마크다운 헤더 예시 → bare label (예: 핵심 요약) 로 교체. [STRICT GLOBAL RULES][NO MARKDOWN MARKERS] 명문화. 단일 에이전트 경로도 plain text 출력.
  • 수정 4 — review-evaluation 가이드 정비. 1. ## 한 줄 판단 같은 markdown-prefix 라벨 → 1) 한 줄 판단 으로 교체. 마크다운 마커가 prompt 단계에서 모델에 학습되지 않도록.
  • 수정 5 — Drafter 페르소나 정비. 섹션 라벨도 plain text. Synthesizer가 받는 입력이 깨끗해야 최종 출력도 깨끗.
  • 양쪽 경로 적용. 단일 에이전트(agent.ts line ~1189) + multi-agent (finalReport 직전) 두 곳 모두에서 outputFormat === 'plain' 이면 sanitizer 통과. chatHistory 에도 정제본만 저장 → 다음 턴 컨텍스트에서 마커가 재학습되지 않음.
  • 신규 설정: g1nation.outputFormat (plain 기본 / markdown opt-out).

🧩 5단계 파이프라인 (Planner → Researcher → Reflector → Drafter → Synthesizer) + 깔끔한 스트림

  • 문제: 작은 로컬 모델(예: gemma 4 e2b/e4b)이 컨텍스트 한계 때문에 한 번에 답을 끝내려다 EOS/잘림 발생. 또 multi-agent 모드일 때 채팅 본문에 > **[Planner]** ... 같은 단계 메시지가 본문에 섞여 사용자에게 답답함. 일부 응답에서 <|channel|>thought ... 같은 control token이 짧게 노출.
  • 수정 1 — Synthesizer 단계 추가 (5번째). Drafter(=기존 Writer)가 1차 초안만 빠르게 생성하고, Synthesizer가 작은 draft만 받아 도입 한 줄·섹션 흐름·결론을 정리. 입력이 가벼워 작은 모델로도 한 번에 처리 가능. 신규 클래스 SynthesizerAgent (src/agents/factory.ts), AgentEngine 생성자 4번째 파라미터, PipelineStagesynthesizer 추가.
  • 수정 2 — 자동 발동 확장. 기존 트리거는 prompt > 180자 + 키워드일 때만 → 작은 모델일 때도 single-agent 로 가다 폭사. 신규 g1nation.workflow.multiAgentMode (auto/always/off) 에서 auto 기본값: (a) 모델 ≤4B (b) prompt 가 컨텍스트의 30% 이상 (c) "코드 리뷰/심층 분석/보고서" 등 키워드 (d) 사용자가 multiAgentEnabled 명시적 ON — 중 하나만 만족해도 5단계 발동. 인사·12자 미만 prompt 는 제외.
  • 수정 3 — 단계 메시지를 채팅 본문에서 분리. 진행 상태(> **[Researcher]** ...)를 채팅 버블에 흘리던 코드 제거. 대신 신규 webview message workflowStage 가 사이드바 상단의 statusLabel + thinkingBar 한 줄에만 표시 → "생각 단계가 본문에 계속 보임" 답답함 제거. 라벨도 ① 계획 → ② 자료 수집 → ③ 자기 검증 → ④ 초안 작성 → ⑤ 최종 정리 한국어 + 번호로 통일.
  • 수정 4 — 라이브 토큰 스트리밍 기본 OFF. 신규 g1nation.liveStreamTokens (기본 false): 토큰을 내부에서만 누적하고 extractVisibleFinal sanitize 끝난 최종 답변만 한 번에 표시 → Harmony <|channel|>thought/<think> 마커가 잠시라도 화면에 노출되는 누설 원천 차단. true 로 두면 legacy 라이브 스트리밍 복원.
  • 신규 설정 4개: g1nation.workflow.synthesizerEnabled (기본 true), g1nation.workflow.multiAgentMode (auto/always/off, 기본 auto), g1nation.workflow.autoCtxFractionThreshold (기본 0.30), g1nation.liveStreamTokens (기본 false).
  • 소프트 페일 보장: Synthesizer가 빈 출력/예외를 내도 미션을 막지 않고 Drafter 초안을 그대로 최종 답변으로 사용. Reflector와 동일한 패턴.
  • 신규 패키징: astra-2.2.64.vsix.

v2.2.63 (2026-05-22)

🎚️ 한국어 오타 최소화 — 채팅 Temperature 설정 + anti-glitch 샘플링

  • 문제: 채팅 분석 답변에 한국어 오타(붕괴붕점, 핵심핵점, 텍스트텍록)가 잦음. 토큰 단위 샘플링 glitch.
  • 원인: 메인 채팅 경로가 temperature 0.7(창작용)에 top_p·top_k·min_p·repeat_penalty하나도 안 보냄. 2.2.54의 anti-glitch 샘플링은 슬래시 명령에만 적용돼 있었음.
  • 수정 1 — 채팅 샘플링 강화. LM Studio SDK 호출에 topP 0.9·topK 20·minP 0.05·repeatPenalty 1.1 추가. 저확률 오답 토큰을 잘라내 한 글자 오류·더듬음(것입니다서입니다)을 억제.
  • 수정 2 — 채팅 기본 temperature 0.7 → 0.3. 분석·업무형 답변에서 오답 토큰 채택을 크게 줄임.
  • 신규 설정 g1nation.chatTemperature (기본 0.3, 0~2). Astra Settings 패널 '고급' 섹션에서 조절 가능 — 낮출수록 오타·환각이 줄고 안정적, 높일수록 표현이 다양.
  • 한계: 붕점처럼 멀쩡한 한글 두 글자로 보이는 깨짐은 사후 교정이 불가 — 근본 해결은 양자화 등급 상향(Q4→Q6/Q8) 또는 한국어가 강한 모델 사용.
  • 신규 패키징: astra-2.2.63.vsix.

v2.2.62 (2026-05-22)

🧹 모델 출력 붕괴(degeneration) 방어 — 가독성 보호

  • 문제: 긴 세션의 분석 답변에서 ①같은 분석이 통째로 두 번 생성됨 ②밑줄 ___ 수백 개 등 문자 벽 ③(Note: I am acting as ...) 메타 노트 반복 ④내부 지시문 Candidate records for this discussion... 누출 ⑤[핵심 확인 질문]·(질문 의도: …) 누출. 마크다운/테이블이 깨져 렌더링 불가.
  • 원인: 소형 로컬 모델이 긴 컨텍스트에서 붕괴. 특히 auto-continuation이 "이어서 쓰라"는 지시를 무시하고 답변을 처음부터 재생성mergeContinuationParts가 중복을 못 걸러 통째로 이어 붙임.
  • 수정 1 — 재시작 감지. continuation 결과가 기존 답변과 같은 도입부로 시작하면(앞부분 12자+ 일치) "이어쓰기"가 아닌 "재시작"으로 판정해 버림. 분석이 두 번 나오는 문제 제거.
  • 수정 2 — degeneration 정리 패스. 최종 출력에서 문자 벽(같은 기호 8개+), (Note: …) 메타 노트, Candidate records… 내부 지시문, (질문 의도: …)·[핵심 확인 질문] 누출, 연속 중복 문단을 제거. 모델이 붕괴해도 답변은 읽을 수 있게 유지.
  • 한계: 한글-한글 토큰 깨짐(붕괴붕점, 핵심핵점)은 멀쩡한 단어처럼 보여 탐지 불가 — 이는 모델 자체 한계. 긴 세션에서는 /newChat으로 초기화 권장.
  • 신규 패키징: astra-2.2.62.vsix.

v2.2.61 (2026-05-22)

🔁 출력 없는 액션엔 2번째 LLM 호출 생략 — "빈 응답" 근본 원인 제거

  • 문제: git 커밋해줘 한 번에 LLM이 2번 호출됨 — ①<run_command> 액션을 뱉는 호출, ②결과를 정리하는 continuation 호출. 2번째가 빈 응답(eosFound)으로 실패.
  • 원인: run_command는 터미널 출력을 캡처하지 않아 대화에 주입하는 내용이 없는데도, ASTRA는 continuation에서 26K+ 토큰 전체 컨텍스트를 다시 실어 "결과를 보고 답하라"는 무의미한 2번째 호출을 함. 빈약한 로컬 모델이 81% 찬 컨텍스트에서 붕괴(첫 토큰부터 EOS). 타이밍 race가 아니라 불필요하게 무거운 2번째 호출이 원인.
  • 수정: 액션이 모델이 해석할 내용을 실제로 주입했는지(read_file/list_files/read_brain/read_sheet는 시스템 메시지 주입, run_command·파일 생성/수정/삭제는 주입 없음) 판정. 주입이 없으면 continuation LLM 호출을 생략하고 결정론적 확정 메시지("실행한 작업: …")만 출력. 읽기 계열 액션엔 continuation 유지.
  • 효과: run_command·파일 쓰기 후 빈 응답이 사라지고, 더 빠르고(불필요한 26K 토큰 호출 제거) 실제 실행된 명령을 그대로 확인 가능.
  • 신규 패키징: astra-2.2.61.vsix.

v2.2.60 (2026-05-22)

🔧 && 명령 체이닝 — 코드 레벨에서 PowerShell 문법으로 자동 변환

  • 문제: v2.2.59에서 프롬프트로 "&& 쓰지 말라"고 지시했으나, 모델이 여전히 cd ... && git add . && git commit ... && git push를 출력 → PowerShell 5.1에서 '&&' 토큰은 올바른 문 구분 기호가 아닙니다 파서 오류로 명령 전체가 실행 실패.
  • 원인: 모든 git/npm 튜토리얼이 &&를 쓰므로, 시스템 프롬프트 규칙만으로는 소형 로컬 모델의 && 출력을 신뢰성 있게 막을 수 없음.
  • 수정: sanitizeCommand가 터미널로 보내기 직전 && 체인을 PowerShell 조건부 체인으로 결정론적 변환. A && B && CA; if ($?) { B; if ($?) { C } }. $?로 단축 평가(short-circuit)를 보존 — 예: cd 실패 시 git이 엉뚱한 디렉터리에서 실행되지 않음. 따옴표 안의 &&(커밋 메시지 등)는 분리 대상에서 제외.
  • 이제 모델이 &&를 출력해도 git add/commit/push 다단계 명령이 정상 실행됨.
  • 신규 패키징: astra-2.2.60.vsix.

v2.2.59 (2026-05-22)

🩹 긴 대화에서 "빈 응답" 차단 — 출력 토큰 예산 확보

  • 문제: 긴 세션(예: 34개 메시지, ~29.6K 토큰)에서 모델이 빈 응답을 반환하고 "AI 엔진이 빈 응답을 반환했습니다 / Output budget: 1,073 tokens" 오류 출력.
  • 원인: 대화 기록 압축(trimHistoryToBudget)이 출력용으로 단 512토큰(minOutputTokens)만 예약했음. 그래서 32K 윈도우가 거의 다 찰 때까지 프롬프트가 자라도록 허용 → 답변에 ~1K 토큰만 남음. gemma 4B-active 같은 소형/MoE 로컬 모델은 이 압박에서 첫 토큰부터 EOS를 뱉어 빈 응답을 냄.
  • 수정: 기록·시스템 프롬프트를 자르기 전에 실제 답변용 예산(preferredOutputReserve)을 컨텍스트의 ~10%, 최소 2048토큰 확보(상한은 maxOutputTokens)하도록 변경. 이제 프롬프트가 항상 답변 공간을 남기고 잘려, 32K 모델에서도 출력 예산이 3K+ 보장됨. minOutputTokens(512)는 절대 하한 clamp 용도로만 유지.
  • 추가: [EXECUTION RULE]에 PowerShell 체이닝 규칙 명시 — 명령 연결은 ; 사용, && 금지(PowerShell 5.1 구문 오류). git add/commit/push 같은 다단계 명령이 터미널에서 정상 실행됨.
  • 신규 패키징: astra-2.2.59.vsix.

v2.2.58 (2026-05-22)

📋 답변은 "핵심 요약 먼저, 상세 아래" — 한눈에 들어오는 출력 포맷

  • 문제: 답변 내용 퀄리티는 좋으나 분량이 길어 한눈에 안 들어옴. 게다가 요약(## 요약)이 맨 위가 아니라 맨 아래에 출력되고, ## ## 요약처럼 헤딩 접두사가 중복되며, 이미 금지된 "핵심 확인 질문" 섹션이 누출됨.
  • 원인: [OUTPUT FORMAT]이 "기술 분석/아키텍처/트러블슈팅/전략 기획일 때만" 3섹션을 쓰라는 모호한 카테고리 게이트라, 일반 상담형 질문에서 모델이 포맷을 제멋대로 해석함.
  • 수정 1 — 길이 게이트. 카테고리 대신 길이 기준으로 전환: 답변이 4문장을 넘으면 무조건 ## 핵심 요약(불릿 24개, 전체를 관통하는 스캔 가능한 요약)을 맨 위에 출력하고 그 아래 ## 상세 설명. 요약 앞 인트로 문단 금지. 짧은 답변은 헤딩 없이 바로 답변.
  • 수정 2 — 헤딩 규칙. 모든 마크다운 헤딩은 정확히 ## 하나로 시작(## ## 중복 금지).
  • 수정 3 — 후속 질문 규칙 강화. 후속 질문은 한 문장·한 줄·라벨 없음. 섹션 헤딩·"질문 의도" 설명·복수 질문 금지 → "핵심 확인 질문" 섹션 누출 차단.
  • 신규 패키징: astra-2.2.58.vsix.

v2.2.57 (2026-05-22)

🚀 실행 요청은 설명 대신 즉시 실행 — [EXECUTION RULE] 추가

  • 문제: "E:\Wiki\Datacollect 서버 실행해줘" 같은 요청에 ASTRA가 직접 실행하지 않고, npm run platform 등 추측성 명령·존재하지 않는 포트(8787)·환경변수(GEMINI_API_KEY)를 지어내며 "이렇게 하시기 바랍니다" 식 튜토리얼만 출력했음.
  • 원인: 시스템 프롬프트의 [LOCAL PATH RULE]이 "review/analysis/debugging"만 다뤄, "실행/구동/시작" 요청에 발동되는 규칙이 전무했음. 모델이 학습 prior대로 산문 설명으로 회귀.
  • 수정 1 — 프롬프트. [EXECUTION RULE] 신설: 실행/구동/시작/run/start 키워드 → 튜토리얼 금지, 명령을 모르면 <read_file>로 package.json을 먼저 읽고 그 다음 <run_command>로 실제 스크립트 실행. 추측한 스크립트명·포트·환경변수 단정 금지. Few-shot 예시 1건 포함(작은 로컬 모델의 태그 준수율 향상).
  • 수정 2 — 경로 경계. <read_file>/<list_files>가 워크스페이스 안으로만 제한돼 형제 프로젝트(E:\Wiki\Datacollect 등)의 package.json을 못 읽던 문제 해결. security.ts가 워크스페이스의 상위 디렉터리 1단계까지 신뢰 루트로 포함(드라이브 루트로는 확장 안 함). 이로써 형제 프로젝트를 읽어 정확한 실행 명령을 찾을 수 있음 → 환각 제거.
  • 신규 패키징: astra-2.2.57.vsix.

v2.2.56 (2026-05-22)

코드 리뷰 기반 성능·메모리 최적화 (12건, 동작 변경 없음)

  • 🔴 브레인 코퍼스 디스크 재읽기 제거. secondBrainTrace는 메시지마다 브레인 전체를 디스크에서 다시 읽어 재분류했음 → mtime+size 키 스캔 캐시로 변경(파일이 실제로 바뀔 때만 재읽기). scopedBrainRetriever(텔레그램 경로)도 동일 안티패턴 → 캐시된 getBrainTokenIndex() + scoreTfIdfPreTokenized 경로로 라우팅. 점수 결과는 바이트 단위로 동일.
  • 🟡 메모리 누수·중복 작업 정리. agent.ts chatHistory 무제한 증가 → 최근 40개 유지·오래된 도구 결과 본문 축약. EpisodicMemory 에피소드 JSON 메시지마다 재읽기 → 디렉터리 mtime 키 캐시. _walkBrainFilesreaddirSync({withFileTypes})·단일 누산기(concat 제거). TF-IDF termFrequency → 문서별 term-count Map 1회 사전 계산. getConfig() 중복 호출 1회로 통합.
  • 🟢 누수·정리 보강. clearBrainTokenIndex()deactivate()·브레인 프로필 전환 시 호출. 웹뷰 메시지 리스너 dispose 배선. LongTermMemory longTermMaxEntries(100) 강제. Pixel Office 인터벌은 뷰 비표시 시 일시정지. /ping은 핑마다 브레인 전체 탐색 대신 5초 TTL 캐시 응답.
  • 전 항목 동작 보존 — 기능·출력 변경 없음. 타입 체크(tsc --noEmit) 무오류, 테스트 400/400 통과.
  • 신규 패키징: astra-2.2.56.vsix.

v2.2.55 (2026-05-21)

📅 /meet — 회의록 액션 아이템 → Google 캘린더 자동 등록 (Phase 1)

  • /meet이 회의록 합성·저장 후, 액션 아이템 표를 파싱해 task별 종일 일정으로 Google Calendar에 자동 등록한다.
  • 날짜 규칙(사용자 정의): 명시 날짜(YYYY-MM-DD/YYYY년 M월 D일)→그대로 / "차주·다음 주"→회의일 +6일 / "즉시·당일"→등록일 / 변환 불가·빈 값→등록일 +영업일 5일(토·일 제외, 공휴일 무시) + 제목에 "(미확정)" 꼬리표.
  • 캘린더 이벤트 설명에 회의 제목·담당·원래 기한 표기를 기록. Google Calendar OAuth(쓰기)가 연결돼 있어야 하며, 미연결 시 회의록 저장만 하고 안내한다.
  • handleSlashCommandExtensionContext 배선 추가(/meet만 사용).
  • 신규 패키징: astra-2.2.55.vsix.

v2.2.54 (2026-05-21)

🔧 한·영 토큰 깨짐 추가 개선 — 샘플링 조정 + 교정 패스

  • 샘플링 파라미터 조정. 슬래시 합성 LLM 호출에 top_p(0.85)·top_k(20)·repeat_penalty(1.1) 추가 — 깨진 저확률 토큰("핵ess" 등)의 샘플링 자체를 억제.
  • 조건부 교정 패스. 합성 결과에 한·영 깨짐(한글+영문 소문자 조각)이 감지되면 LLM 교정 패스를 1회 돌려 깨진 표기만 자연스러운 한국어로 교정. 깨짐이 없으면 추가 호출 없음. 교정 결과가 원본보다 비정상적으로 짧으면(잘라먹음) 원본을 유지하는 안전장치 포함.
  • 적용 범위: /benchmark·/youtube·/wikify·/meet 모든 슬래시 합성.
  • 신규 패키징: astra-2.2.54.vsix.

v2.2.53 (2026-05-20)

📝 신규 /meet — 회의 녹취 txt → 사실 기반 구조화 회의록

  • 신규 슬래시 명령 /meet <txt 파일 경로> [메타데이터]. 로컬 회의 녹취 텍스트 파일을 ASTRA가 직접 읽어(로컬 파일이라 Bridge 불필요), 사실 기반 구조화 회의록(Actionable Minutes)으로 LLM 합성·저장한다.
  • 처리 규칙: Deconstruction(잡담 제거) → Classification(Fact/Discussion/Decision/Risk/Action) → Decision Logic → Structuring. 메타데이터(참석자·날짜)가 녹취록과 충돌하면 메타데이터 우선.
  • 출력 구조: 요약 보고 / 주요 논의 사항 / 리스크·이슈 / 결정 사항 / 오픈 이슈 / 액션 아이템(담당·작업·기한 표).
  • 경로에 공백이 있으면 따옴표로 감쌀 수 있음. 결과물은 .mdWIKI_RAW_PATH(E:\Wiki\2nd\00_Raw)에 저장.
  • 신규 패키징: astra-2.2.53.vsix.

v2.2.52 (2026-05-20)

📦 재패키징 (v2.2.51 동일 내용)

  • 기능 변경 없음 — v2.2.51 작업 트리를 버전만 올려 재패키징. 버전 정합성 정리를 위해 package-lock.json 버전도 함께 2.2.52로 동기화.
  • 신규 패키징: astra-2.2.52.vsix.

v2.2.51 (2026-05-20)

🐛 채팅 기록 목록 누락 수정 + Python/tsc 검증 크로스플랫폼화

  • 기록(Chat History) 목록에 최근 대화가 안 뜨던 문제 수정. 답변을 다 받은 뒤 후처리 단계(아키텍처 감지·Self-Reflector·Chronicle 자동기록 등)에서 예외가 한 번이라도 나면 _saveCurrentSession()이 통째로 건너뛰어져 화면엔 답변이 보여도 기록 목록엔 안 들어가던 회귀. 일반 채팅·회사 모드 가벼운 대화 경로를 try/finally로 감싸 저장을 항상 보장하고, _saveCurrentSession() 자체도 절대 throw하지 않게 방어 처리.
  • 1인 기업 모드 업무 턴도 기록 목록에 기록. _runCompanyTurn은 dispatcher로 돌아 _agent 히스토리를 채우지 않아 기록 목록에 영영 안 남던 문제 — 완료된 업무 턴(report-done)을 요청/보고서 한 쌍으로 독립 항목 저장(_saveCompanyTurnSession). 이제 어느 모드든 최근 대화가 빠짐없이 기록됨.
  • Self-Reflector 실행 검증 크로스플랫폼화. .py 검증을 pythonpython3(Windows는 python 우선)로 자동 탐지, .ts 검증을 npx tsc 대신 로컬 node_modules/typescript/bin/tscnode로 직접 호출 — macOS 12.3+/Windows에서 검증이 헛돌던 문제 해결.
  • 신규 패키징: astra-2.2.51.vsix.

v2.2.48 (2026-05-20)

🧹 출력 품질 — 내부 체크 로그 차단 + 한영 토큰 깨짐 정제

  • [Self-Reflector Check] 내부 검증 로그 노출 차단. Self-Reflector Phase A를 기본 비활성화(g1nation.selfReflector.enabled 기본값 truefalse). 답변 끝에 Consistency/Completeness/Accuracy 내부 체크 블록이 더 이상 붙지 않는다 — 일반 채팅·회사 모드 모두 적용. 기능 자체는 남아 설정에서 켤 수 있음.
  • 한영 토큰 깨짐 정제. 슬래시 합성(callLmSynthesis)·일반 채팅(getSystemPrompt) 시스템 프롬프트에 출력 위생 규칙 추가 — 한 단어 안에 한글·영문 알파벳 혼용 금지(결ently·인orp 같은 깨진 합성 표기 차단), 외래어는 완전 한글 또는 완전 영문으로 일관되게.
  • 안전망. 슬래시 합성 결과에 내부 검증 로그가 새어 나오면 후처리 정규식으로 자동 제거.
  • 신규 패키징: astra-2.2.48.vsix.

v2.2.47 (2026-05-20)

🔗 /wikify 다중 링크 배치 처리

  • /wikify여러 링크를 공백으로 구분해 한 번에 넣으면 1개씩 순차 위키화한다. 예: /wikify url1 url2 … url10 → 10개 위키 문서 생성.
  • 진행 표시 [i/N], 한 건이 실패해도 나머지는 계속 진행, 완료 시 N/M개 성공 요약.
  • URL과 주제명 자동 분류 — URL 패턴 토큰은 모두 처리 대상, 비-URL 토큰은 공통 주제명으로.
  • 단일 링크 입력은 기존과 동일하게 동작.
  • 신규 패키징: astra-2.2.47.vsix.

v2.2.46 (2026-05-20)

🔧 /wikify 정확도 개선 — 명세 문서 완전성 + 위키링크 교정

  • 명세/스키마 문서 완전성 강화. buildWikifyPrompt에 규칙 추가 — 원문이 JSON Schema·API 명세·기술 스펙이면 📖 세부 내용에 모든 필드·속성을 누락 없이 마크다운 표([필드|타입|필수/선택|제약])로 정리하고, 원문 required 배열을 임의 변경 금지, additionalProperties·enum·중첩 구조도 원문 그대로 반영. (이전엔 LLM이 extra·models 등 최상위 필드를 누락하던 문제 — 추출은 정확했으나 합성 단계 손실)
  • 위키링크 [[ ]] 자동 교정. LLM이 닫는 대괄호를 하나 빠뜨리는 깨짐([[rfcs repo])을 후처리 정규식으로 자동 보정.
  • 신규 패키징: astra-2.2.46.vsix.

v2.2.45 (2026-05-20)

📚 신규 /wikify — 웹사이트 본문을 P-Reinforce v3.0 위키 문서로

  • 신규 슬래시 명령 /wikify <url> [주제명]. 사이트 본문 텍스트를 추출해 Datacollect Research(/research)와 동일한 P-Reinforce v3.0 규격 위키 문서로 LLM 합성·저장한다 — YAML frontmatter + 🎯 한 줄 통찰 / 🧠 핵심 개념 / 🧩 추출된 패턴 / 📖 세부 내용 / ⚖️ 모순 / 🛠️ 적용 사례 / ✅ 검증 상태 / 🔗 관련 문서 링크([[위키링크]]) / 📝 변경 이력.
  • Bridge에 본문 추출 엔드포인트 /api/web-extract 신규 — Playwright readability 방식으로 main/article 본문 텍스트만 추출(nav·header·footer 등 노이즈 제거), 본문 32000자 상한.
  • /benchmark(디자인 벤치마킹)와 달리 /wikify는 사이트 콘텐츠를 지식 문서화한다. 결과물은 datacollectSavePath(또는 Bridge WIKI_RAW_PATH)에 저장.
  • 신규 패키징: astra-2.2.45.vsix.

v2.2.44 (2026-05-20)

📜 /youtube — 보고서 앞에 영상 전체 스크립트 출력

  • /youtube 결과물 맨 앞에 영상 전체 자막(Full Script) 섹션을 추가. 30초 버킷으로 묶어 [mm:ss] 문장… 형태로 정리 — 잘게 끊긴 자동자막을 가독성 있게 합쳐, 분석 보고서와 원문 대본을 한 문서에서 함께 본다.
  • 화면 출력·저장 markdown 양쪽 모두 📜 전체 스크립트---대본 역기획서 순서로 적용.
  • 신규 패키징: astra-2.2.44.vsix.

v2.2.43 (2026-05-20)

✍️ /youtube 출력 포맷 개편 — "대본 역기획서"

  • /youtube 분석 리포트를 영상 제작 가이드(4-렌즈)에서 대본(스크립트) 역기획서로 전면 개편. BGM·자막·컷 전환 등 영상 연출 항목을 걷어내고 스크립트(텍스트)·언어 구조에만 집중한다.
  • 새 레이아웃 5종: 🎬 한 줄 인상 / 1. 스크립트 뼈대 구조도(표) / 2. 말의 맛 & 톤앤매너 / 3. 내 대본에 바로 쓰는 액션 체크리스트 / ✂️ 빈칸 채우기식 대본 템플릿.
  • 언어적 장치를 고정 태그 어휘(#FOMO #권위부여 #호기심갭 #브릿지멘트 등)로 라벨링. '전문용어 → 쉬운 비유' 분석 항목 신설 — 화자의 구어체 '말의 맛'을 명시적으로 추출한다.
  • 신규 패키징: astra-2.2.43.vsix.

v2.2.42 (2026-05-20)

🎬 /youtube — Datacollect youtube insight 4-렌즈 분석 이식

  • /youtube가 이제 LLM 4-렌즈 콘텐츠 제작 가이드를 생성한다. 그동안 transcript/메타데이터 덤프만 했으나, 이제 Datacollect 웹앱(YoutubePanel)의 build4LensPrompt를 그대로 이식 — 10초 훅 / 스크립트 구조(기승전결 타임라인) / 제작 리소스·편집 스타일 / 썸네일·제목 CTR 4-렌즈 분석 + 역기획서 + 대본 템플릿을 생성한다.
  • extract 필드 버그 수정. Bridge /api/youtube/extractsource 필드를 요구하는데 ASTRA가 url을 보내 "source URL이 필요합니다" 에러가 나던 문제. 이제 { source, withMetadata, limit } 로 올바르게 호출한다.
  • 결과물 자동 저장. 분석 markdown을 /benchmark와 동일하게 raw 폴더(datacollectSavePath > Bridge WIKI_RAW_PATH)에 저장.
  • 명령어 보조 컨텍스트. /youtube <url> <우리 채널 설명> 형태로 URL 뒤 자연어는 "우리가 만들 콘텐츠" 컨텍스트로 분석에 반영된다.
  • 신규 패키징: astra-2.2.42.vsix.

v2.2.41 (2026-05-20)

🎛️ /benchmark 합성 Temperature 설정 추가

  • g1nation.datacollectSynthesisTemperature 신설 (기본 0.1). /benchmark LLM 4-렌즈 합성의 temperature를 Astra Settings 패널 'Datacollect' 섹션에서 조절 가능 — 그동안 코드에 0.3으로 하드코딩돼 있었다. 낮출수록(0.1) 한국어 생성 중 섞이는 깨진 문자·환각이 줄고 결과가 결정적이다. 0~2 범위로 클램프.
  • 신규 패키징: astra-2.2.41.vsix.

v2.2.40 (2026-05-20)

📦 재패키징 (코드 변경 없음)

  • v2.2.39와 코드·기능 완전 동일. 버전 번호만 갱신한 재패키징 빌드 — v2.2.39의 변경사항(/benchmark LLM 4-렌즈 합성, 크롤 깊이/페이지 설정)이 모두 그대로 포함된다.
  • 신규 패키징: astra-2.2.40.vsix.

v2.2.39 (2026-05-20)

/benchmark LLM 4-렌즈 합성 + 크롤 깊이/페이지 설정

  • LLM 4-렌즈 합성 추가 — 결과물이 Datacollect 웹앱과 동등해짐. 그동안 /benchmark는 Playwright 스캔 데이터를 그대로 덤프만 했다(디자인 토큰 raw 목록). 이제 Datacollect 웹앱(WebBenchmarkPanel)과 동일하게 scan → LLM 3단계 합성(Visual/Layout/Interaction/Voice 4-렌즈 + IA·페이지 템플릿 + 원본 재구축 명세) → 완성된 마크다운 리포트를 생성한다. Bridge /api/lm 프록시 경유, Astra 기본 모델(g1nation.defaultModel/ollamaUrl)을 사용. 합성 실패 시 raw 스캔 요약으로 자동 fallback.
  • 크롤 깊이·최대 페이지 설정 추가. g1nation.datacollectCrawlDepth(기본 1)·g1nation.datacollectMaxPages(기본 8) 신설 — Astra Settings 패널 'Datacollect' 섹션에서 편집. 명령어에서 /benchmark <url> depth=2 pages=12 로 그때그때 덮어쓰기 가능 (우선순위: 명령어 > 설정 > 기본값).
  • 명령어 보조 컨텍스트. /benchmark <url> [depth=N] [pages=N] <자연어 설명> 형태로 URL 뒤에 붙인 자연어는 합성 part 1·2의 톤 추정 보조 컨텍스트로 전달된다.
  • 신규 패키징: astra-2.2.39.vsix.

v2.2.38 (2026-05-20)

🐛 /benchmark URL 파싱 fix — 자연어 섞인 입력 + 빈 결과 경고

  • URL 토큰만 추출. /benchmark www.caliverse.io 분석해줘 처럼 URL 뒤에 자연어를 붙이면 "분석해줘"까지 URL에 섞여 https://www.caliverse.io 분석해줘. 라는 무효 URL이 되고, Playwright가 페이지를 못 열어 meta·디자인·마이크로카피가 전부 (없음)으로 나오던 문제. 이제 arg의 첫 공백 전 토큰만 URL로 사용한다. (스캔은 Playwright 결정론적 추출이라 local LLM과 무관 — 빈 결과는 LLM 문제가 아니라 URL 오염이었다.)
  • 빈 스캔 결과 경고. 스캔이 에러 없이 끝나도 meta·design·microcopy가 모두 비면 ⚠️ 경고를 표시 — URL 오타·봇 차단·JS 전용 렌더링을 사용자가 즉시 인지.
  • 신규 패키징: astra-2.2.38.vsix.

v2.2.37 (2026-05-20)

Slash 결과물 미표시 근본 fix + /benchmark 진행 표시·결과물 저장

  • streamStart 누락 수정 — slash 명령 결과가 화면에 안 보이던 진짜 원인. v2.2.30이 streamEnd(input 잠금 해제)만 보냈고 streamStart는 빠뜨렸다. webview는 streamStart를 받아야 assistant 메시지 버블(streamBody)을 만들고, 그게 없으면 이후 모든 streamChunk(=결과 텍스트, 에러 메시지 포함)를 silently drop한다. handleSlashCommand 시작부에서 streamStart를 명시적으로 보내도록 수정 — /research·/benchmark·/youtube·/blog 모두 결과가 정상 표시됨.
  • /benchmark 진행 표시. scan은 단일 동기 호출이라 진행률 스트림이 없어 사용자가 멈춘 줄 오해하던 문제 → 4초마다 경과 시간(·4s ·8s …)을 한 줄에 누적 표시하고, 완료 시 ✅ 스캔 완료 (Ns 소요) 출력.
  • /benchmark 결과물 자동 저장. scan 결과를 markdown 리포트로 합성해 Bridge /api/wiki/save로 저장. 저장 위치는 신규 설정 g1nation.datacollectSavePath(비우면 Bridge의 WIKI_RAW_PATH 환경변수가 결정 — 코드에 절대경로 하드코딩 없음).
  • Settings 패널에 "Datacollect" 섹션 추가. Bridge URL과 결과물 저장 폴더를 Astra Settings 패널에서 직접 편집 가능.
  • 신규 패키징: astra-2.2.37.vsix.

v2.2.36 (2026-05-20)

🛠️ Antigravity 빌트인 "Connect AI"와의 view 충돌 해소

  • 사용자 보고 console에 Connect AI extension activated + 우리 [ASTRA-DEBUG] 로그 0개 → 우리 vsix activate 함수가 호출조차 안 되고 있다는 결정적 증거. Antigravity가 빌트인으로 가진 "Connect AI" extension이 우리 view container id astra-activity / view id astra-launcher / title Astra 영역과 충돌해 우리 코드를 덮은 것으로 추정.
  • view container/view id를 unique하게 변경: astra-activityg1nation-astra-activity, astra-launcherg1nation-astra-launcher, title AstraAstra (g1nation). 좌측 활성바에 빌트인과 별도의 우리 아이콘이 표시되며, 그 아이콘 클릭 시 우리 activate가 호출됨.
  • 신규 패키징: astra-2.2.36.vsix.

v2.2.35 (2026-05-20)

🛠️ Slash 미동작 결정적 fix: globalState 이전 진입 + DevTools console 진단

  • globalState write보다 먼저 slash 분기를 잡도록 변경. g1nation.astra global state가 ~917KB로 누적된 환경에서 globalState.update 호출이 첫 prompt를 지연/hang시키는 사례 보고됨. slash 명령은 LLM/blank-chat state 갱신과 무관하므로 update를 건너뛴다.
  • DevTools console에 ASTRA-DEBUG trace. OutputChannel(logInfo)·popup·statusbar에 더해 console.error[ASTRA-DEBUG] activate vX.Y.Z, [ASTRA-DEBUG] prompt case entered, [ASTRA-DEBUG] slash check matched=…, [ASTRA-DEBUG] slashRouter handleSlashCommand을 출력. 사용자가 F12 DevTools console을 볼 때 우리 코드 실행 단계가 즉시 보임.
  • 신규 패키징: astra-2.2.35.vsix.

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에 도착했는지"부터 결정적으로 판별 가능.
  • StatusBar 5초 toast: /research, /benchmark, /youtube, /blog 명령이 slashRouter에 진입하면 VS Code 하단 StatusBar에 📻 Datacollect Radio: /benchmark 처리 중… 표시. OutputChannel 못 봐도 진입 자체를 즉시 확인.
  • 신규 패키징: astra-2.2.33.vsix 패키지로 배포합니다.

v2.2.32 (2026-05-19)

🔬 Datacollect Radio: 슬래시 명령 진단 로깅 강화

  • OutputChannel(Astra)에 단계별 trace 추가: [SLASH] prompt received, [SLASH] handleSlashCommand start/finished/error 라인을 logInfo로 출력. "/benchmark 입력했는데 아무 응답 없음" 같은 보고가 들어왔을 때 어디서 막혔는지 (분기 진입 여부 / webview 부재 / bridge 호출 실패) 즉시 판별 가능.
  • webview 부재 시 즉시 사용자 알림: provider._view가 undefined면 chunk 메시지가 silently drop되어 사용자가 무한 로딩으로 보였습니다. 이제 그 경우 VS Code notification으로 "채팅 webview가 활성 상태가 아닙니다" 안내.
  • 신규 패키징: astra-2.2.32.vsix 패키지로 배포합니다.

v2.2.30 (2026-05-19)

🔓 Datacollect Radio: 슬래시 명령 후 채팅 input 자동 해제

  • 슬래시 명령(/research, /benchmark, /youtube, /blog) 종료 시 streamEnd 신호 누락 수정. Astra 채팅 input은 streamEnd 메시지로 잠금이 풀리는데, 우리 slashRouter는 일반 LLM streamer를 우회해 bridge를 직접 호출하므로 자동으로 신호가 안 가던 상태. 사용자가 /benchmark를 입력하면 결과가 채팅에 표시돼도 input이 영원히 잠긴 채 무한 로딩으로 보였습니다.
  • try/finally로 streamEnd 보장. timeout / 에러 / 정상 종료 어떤 경로든 input이 풀리도록 강제.
  • 신규 패키징: astra-2.2.30.vsix 패키지로 배포합니다.

v2.2.29 (2026-05-19)

⏱️ Datacollect Radio: NotebookLM 리서치 타임아웃 완화

  • /research 명령의 import 단계 타임아웃을 120s → 300s로 확대: NotebookLM이 deep research 결과를 노트북 소스로 옮길 때 큰 리포트는 2~5분이 걸려 기존 120s cap에서 TRANSIENT_TIMEOUT으로 떨어지고 정작 백엔드는 정상 처리 중인 race가 보고돼 수정.
  • synthesize 단계 타임아웃 300s → 600s: 큰 노트북의 LLM 합성이 5~10분 걸리는 경우 cover.
  • status polling 타임아웃 30s → 60s: MCP 자식 프로세스가 stale일 때 30s 안에 응답 못 하는 사례 완화. (같은 이슈는 Wiki/Datacollect 프로젝트engine.ts에도 동일한 값으로 수정 완료)
  • 신규 패키징: astra-2.2.29.vsix 패키지로 배포합니다.

v2.2.28 (2026-05-19)

📻 Datacollect Radio: 채팅 슬래시 명령으로 외부 도구 통합

  • 새 UI 버튼 없이 채팅 한 줄로 외부 파이프라인 호출: Astra 채팅에서 /research, /benchmark, /youtube, /blog 슬래시 명령으로 별도의 Wiki/Datacollect 프로젝트 bridge(기본 http://127.0.0.1:3002)의 무거운 기능을 직접 라우팅합니다.
  • /research <주제>: NotebookLM Deep Research 전체 파이프라인(notebook 생성 → status polling → import → synthesize)을 채팅에서 한 번에 실행하고 결과 마크다운을 스트리밍으로 받습니다.
  • /benchmark <url>: Playwright 기반 웹사이트 분석 — 디자인 토큰, 컬러 팔레트, 사이트맵 ASCII 다이어그램, 마이크로카피를 요약해 채팅에 표시.
  • /youtube <url>: 영상 metadata + transcript를 추출해 챕터/태그/본문 미리보기까지 한 번에.
  • /blog <키워드>: Datacollect Blog Pipeline 페이지(http://127.0.0.1:8787/blog/)를 자동 오픈 (Bridge에 대응 API가 추가되면 채팅 직접 실행도 지원 예정).
  • LLM 토큰 절약: 슬래시 명령은 회사 모드/일반 chat 분기 전에 잡히므로 모델 비용 없이 처리됩니다. 진행상황·결과는 일반 LLM 응답과 같은 자리(streamChunk)에 표시.
  • 설정 추가: g1nation.datacollectBridgeUrl (default http://127.0.0.1:3002)로 bridge 위치 override 가능. Datacollect는 npm run bridge로 미리 띄워 두어야 합니다.
  • 신규 패키징: astra-2.2.28.vsix 패키지로 배포합니다.

v2.2.19 (2026-05-16)

☁️ Cloud Model Providers Support: OpenRouter, Anthropic, Gemini

  • 클라우드 모델 프로바이더 통합: 이제 로컬 모델뿐만 아니라 OpenRouter, Anthropic, Gemini 등 주요 클라우드 AI 모델을 직접 사용할 수 있습니다.
  • 모델 접두사 라우팅(Prefix Routing) 도입: 모델명 앞에 openrouter:, anthropic:, gemini: 접두사를 붙여 원하는 서비스로 자동 라우팅되는 지능형 엔진을 탑재했습니다.
  • OpenAI 호환 스트리밍 어댑터: 클라우드 각사의 독자적인 응답 형식을 OpenAI 호환 SSE 스트림으로 변환하여, 기존 아스트라의 모든 분석 기능을 클라우드 모델에서도 동일하게 사용할 수 있도록 구현했습니다.
  • 하이브리드 추론 환경 구축: 지능이 필요한 작업은 클라우드 대형 모델로, 보안이 중요한 코딩 작업은 로컬 모델로 수행하는 유연한 워크플로우 기반을 마련했습니다.
  • 신규 패키징: astra-2.2.19.vsix 패키지를 통해 로컬과 클라우드를 아우르는 하이브리드 지능형 레이아웃을 배포합니다.

v2.2.18 (2026-05-16)

🏗️ Dynamic Office Auto-Layout & Legacy Cleanup

  • 동적 오피스 레이아웃(Dynamic Auto-Layout) 엔진 도입: 팀원 수에 따라 책상 배치를 1~3열로 자동 정렬하는 지능형 레이아웃 알고리즘을 탑재했습니다. 이제 팀원 수에 관계없이 최적화된 오피스 뷰를 제공합니다.
  • 레거시 레이아웃 감지 및 마이그레이션: 구 버전의 고정형(8석) 레이아웃을 자동으로 감지하여 최신 동적 레이아웃으로 전환하는 로직을 추가했습니다.
  • 스테이지 밸런스 조정: CEO 책상 위치를 중앙 하단으로 재배치하고, 전반적인 오브젝트 크기와 간격을 조정하여 시각적 안정성을 높였습니다.
  • 오피스 동기화 로직 강화: 작업 흐름(Pipeline)이 없을 때도 활성 팀원(Roster) 기반으로 오피스가 자동 구성되도록 동기화 엔진을 개선했습니다.
  • 신규 패키징: astra-2.2.18.vsix 패키지를 통해 팀 규모에 따라 유연하게 변하는 지능형 오피스 환경을 배포합니다.

v2.2.17 (2026-05-16)

⚙️ Google Service Control & Astra Office Flow Layer

  • 구글 서비스 설정 패널(Google Control) 도입: 설정 패널 내에 구글 캘린더 OAuth 연결, iCal 동기화, 클라이언트 자격 증명 관리를 위한 전용 섹션을 추가했습니다.
  • 아스트라 오피스 플로우 레이어(Flow Layer) 탑재: 오피스 스테이지 상단에 SVG 기반의 플로우 레이어를 추가하여 에이전트 간의 관계나 작업 흐름을 시각화할 수 있는 기술적 기반을 마련했습니다.
  • 배경 최적화: 아스트라 오피스 V2 전용 백드롭 자산을 추가하고 디자인 디테일을 개선했습니다.
  • 실시간 동기화 강화: 설정 변경 시 즉시 오피스 상태와 캘린더 캐시에 반영되도록 백엔드 핸들러를 정교화했습니다.
  • 신규 패키징: astra-2.2.17.vsix 패키지를 통해 구글 연동 제어권이 강화된 최신 버전을 배포합니다.

v2.2.16 (2026-05-16)

🏢 Astra Office UI Overhaul: Operations Floor Experience

  • 차세대 오피스 UI 도입: 단순한 뷰어를 넘어 실제 운영 본부(Operations Floor)의 느낌을 주는 대대적인 인터페이스 개편을 단행했습니다.
  • 데이터 기반 사이드 패널: 에이전트 라인업(Team), 운영 브리프(Signal), 활동 도크(Activity Dock) 등 전문적인 정보 레이아웃을 탑재했습니다.
  • 비주얼 경험 고도화: 글래스모피즘(Glassmorphism)과 그라데이션 백그라운드, 정교한 상태 배지(Pills)를 통해 더욱 프리미엄한 룩앤필을 구현했습니다.
  • 진행 상황 가시화: 미션별 진행률, 단계 보고, 주의 신호 감지 등 에이전트의 작업 흐름을 한눈에 파악할 수 있는 대시보드 기능을 강화했습니다.
  • 구글 캘린더 OAuth 연동 기반 마련: 구글 캘린더와의 정식 연동을 위한 인증 시스템 및 구현 기록을 통합했습니다.
  • 신규 패키징: astra-2.2.16.vsix 패키지를 통해 더욱 강력하고 아름다워진 아스트라 오피스를 배포합니다.

v2.2.15 (2026-05-16)

💎 Astra Office Refactor & Multi-Service Integration (Calendar, Sheets, Tasks)

  • 아스트라 오피스(Astra Office) 대규모 리팩토링: 모놀리식 구조에서 기능 기반 모듈 구조(src/features/astraOffice/)로 전면 개편했습니다. OfficeSnapshot 데이터 모델 도입을 통해 에이전트의 활동 가시성과 레이아웃 관리 능력을 혁신적으로 개선했습니다.
  • 캘린더(Calendar) 연동: ICS 파일 분석 및 일정 관리 기능을 추가하여 에이전트가 일정 기반의 맥락을 인지할 수 있도록 했습니다.
  • 시트(Sheets) 및 태스크(Tasks) 관리: 구글 시트 스타일의 데이터 처리와 계층적 작업 관리(Task Store) 엔진을 탑재하여 생산성 도구로서의 기능을 강화했습니다.
  • 에이전트 엔진 복원력 고도화: 디스패처와 프롬프트 빌더의 정합성을 개선하고, 복합 파이프라인 수행 시의 안정성을 높였습니다.
  • 신규 패키징: astra-2.2.15.vsix 패키지를 통해 차세대 오피스 아키텍처와 새로운 연동 기능들을 배포합니다.

v2.2.14 (2026-05-16)

🎭 Advanced Pixel Office Customization & Face Directions

  • 캐릭터 방향성 고도화: 기존 좌우(Left/Right) 방향에 더해 상하(Up/Down) 방향 스프라이트 지원을 추가하여 더욱 다채로운 사무실 연출이 가능해졌습니다.
  • 캐릭터-책상 독립 제어: 책상은 유지하면서 캐릭터만 삭제하거나, 캐릭터가 없는 책상에 새 팀원을 다시 추가할 수 있는 기능을 도입했습니다.
  • 레이아웃 스키마 V2 도입: 캐릭터 존재 여부 및 정밀한 위치/회전 정보를 보존하는 최신 레이아웃 스냅샷 엔진을 적용했습니다.
  • UI/UX 편의성 개선: 속성 패널에서 방향 전환과 캐릭터 추가/삭제가 즉시 반영되도록 인터랙션을 강화했습니다.
  • 신규 패키징: astra-2.2.14.vsix 패키지를 통해 더욱 유연해진 사무실 모델링 환경을 제공합니다.

v2.2.13 (2026-05-16)

🏗️ Pixel Office Interactive Editor & Core Refinement

  • 픽셀 오피스 편집 모드 도입: 책상 추가/삭제, 에이전트 매핑 변경, 가구(프랍) 배치 및 크기 조절이 가능한 인터랙티브 편집 기능을 추가했습니다.
  • 속성 패널(Property Panel) 구현: 선택한 팀원이나 가구의 상세 속성(라벨, 방향, 스프라이트 종류 등)을 실시간으로 수정할 수 있는 UI를 탑재했습니다.
  • 프로젝트 컨텍스트 동기화 최적화: 로컬 환경에 맞게 chronicle.config.json의 경로 정보를 최신화하고 프로젝트 인지 능력을 안정화했습니다.
  • 신규 패키징: astra-2.2.13.vsix 패키지를 통해 더욱 강력해진 픽셀 오피스 커스터마이징 기능을 제공합니다.

v2.2.12 (2026-05-16)

🚀 Sync & Visual Polish Expansion

  • 픽셀 오피스(Pixel Office) 자산 및 레이아웃 확장: 다양한 방향의 캐릭터 애니메이션과 사무실 레이아웃 프리뷰 자산을 대폭 확충하여 시각적 피드백의 완성도를 높였습니다.
  • 의도 정렬 및 상태 엔진 안정화: 사용자 의도를 분석하고 계약(Contract)을 체결하는 파이프라인과 실시간 상태를 반영하는 엔진의 최신 변경 사항을 최종 동기화했습니다.
  • 아키텍처 결정 기록(ADR) 최신화: 프로젝트의 구조적 진화와 설계 결정을 담은 신규 ADR(0013, 0014)을 통합했습니다.
  • 신규 패키징: astra-2.2.12.vsix 패키지를 통해 최신 시각적 자산과 기능이 통합된 버전을 배포합니다.

v2.2.11 (2026-05-15)

🛡️ Cross-Project Build Optimization & Stability Enforcement

  • 멀티 빌드 도구 대응 강화: Vite와 CRA 등 서로 다른 빌드 환경 간의 설정 혼선을 감지하고, 프로젝트 성격에 맞는 최적화된 인프라(package.json)로 자동 복구 및 정렬하는 로직을 추가했습니다.
  • 의존성 무결성 검사 고도화: 패키지 설치 시 발생할 수 있는 환경 변수 충돌 및 명령어 해석 오류(PowerShell && 등)에 대한 사전 방어 체계를 강화했습니다.
  • 성능 프로파일링 개선: 빌드 과정에서의 리소스 점유율을 실시간으로 모니터링하여, 대규모 프로젝트 배포 시의 안정성을 한층 끌어올렸습니다.
  • 신규 패키징: astra-2.2.11.vsix 패키지를 통해 더욱 견고하고 유연한 프로젝트 관리 환경을 제공합니다.

v2.2.10 (2026-05-15)

🏗️ Advanced Technical Design Alignment & Architecture Refinement

  • 기술 설계 문서(Technical Design) 동기화: tetris/technical_design.md와 같은 고차원 설계 문서를 분석하여, 실제 구현 로직(Custom Hooks, Component Architecture)과의 정합성을 유지하는 능력을 강화했습니다.
  • 아키텍처 가이드라인 준수: FSD(Feature-Sliced Design) 등 현대적인 아키텍처 패턴을 인식하고, 이에 부합하는 코드 구조를 제안하는 지능형 가이드를 고도화했습니다.
  • 게임 엔진 로직 최적화 지원: 복잡한 상태 관리(Single Source of Truth) 및 렌더링 최적화(Canvas API)를 위한 핵심 알고리즘 설계 지원 능력을 대폭 향상시켰습니다.
  • 신규 패키징: astra-2.2.10.vsix 패키지를 통해 설계와 구현의 경계를 허무는 강력한 아키텍처 파트너십을 제공합니다.

v2.2.9 (2026-05-15)

🚀 Strategic Project Scaffolding & Core Engine Expansion

  • 하이퍼-센서리 프로젝트 스캐폴딩: Tetris Modernized와 같은 Canvas 기반 물리 게임 프로젝트의 자동 인프라 구축(Vite, React, Tailwind, Framer Motion) 로직을 정교화했습니다.
  • 컨텍스트 엔진 도메인 확장: 게임 개발, 물리 연산, UI 인터랙션 설계 등 전문적인 도메인에 대한 코드 생성 및 분석 능력을 강화했습니다.
  • 빌드 및 배포 자동화 강화: 프로젝트 생성부터 빌드, 패키징까지 이어지는 워크플로우를 최적화하여 개발 생산성을 극대화했습니다.
  • 신규 패키징: astra-2.2.9.vsix 패키지를 통해 더욱 광범위한 프로젝트 지원 능력을 갖춘 최신 버전을 배포합니다.

v2.2.8 (2026-05-15)

🧠 Cognitive Architecture & Telemetry Refinement

  • 컨텍스트 인식 엔진 고도화: 복잡한 멀티 프로젝트 환경에서의 연관 지식 추출 알고리즘을 개선하여, Test_0303과 같은 게임 엔진 개발 시의 맥락 유지 능력을 강화했습니다.
  • 텔레메트리 데이터 정밀화: 에이전트의 의사결정 과정을 추적하는 로그 시스템을 정교화하여, 자가 성찰(Self-Reflection)의 근거 데이터를 더욱 명확하게 확보합니다.
  • 인터페이스 응답성 최적화: 사이드바와 에디터 간의 데이터 통신 프로토콜을 경량화하여, 대규모 코드베이스 분석 중에도 부드러운 UI 인터랙션을 보장합니다.
  • 신규 패키징: astra-2.2.8.vsix 패키지를 통해 인지 아키텍처가 한 단계 진화한 최신 버전을 배포합니다.

v2.2.7 (2026-05-15)

🛠️ Performance & Pipeline Refinement

  • 빌드 파이프라인 최적화: 패키징 과정에서의 리소스 점유율을 개선하고, 불필요한 캐시 데이터를 정리하여 빌드 정합성을 높였습니다.
  • 모듈 로딩 효율화: 익스텐션 활성화 시의 초기 로딩 지연 시간을 단축하기 위해 핵심 기능들의 초기화 순서를 재조정했습니다.
  • 안정성 강화: 장기 실행 환경에서의 메모리 누수 방지를 위한 가비지 컬렉션 트리거 포인트를 최적화했습니다.
  • 신규 패키징: astra-2.2.7.vsix 패키지를 통해 전반적인 성능과 안정성이 개선된 최신 버전을 배포합니다.

v2.2.6 (2026-05-15)

🧮 Gugudan Master Engine & Global Standards

  • 구구단 마스터(Test_0303) 엔진 최적화: useGameEngine.js의 중복 선언 및 미완성 물리 루프 로직을 완벽하게 복구하고, App.jsx의 애니메이션 오타를 수정하여 '구구단 학습 인터랙션'을 완성했습니다.
  • Vite 인프라 표준화: postcss.config.js, vite.config.js, main.jsx 등 리액트 앱 구동을 위한 필수 표준 설정 파일을 자동화하여 멀티 프로젝트 스캐폴딩 안정성을 확보했습니다.
  • 의존성 결합도 최적화: Tailwind CSS와 Framer Motion의 연동 설정을 강화하여 저사양 환경에서도 '쫀득한' UX를 보장합니다.
  • 신규 패키징: astra-2.2.6.vsix 패키지를 통해 학습용 게임 엔진 지원 기능이 고도화된 최신 버전을 배포합니다.

v2.2.5 (2026-05-15)

🎮 Multi-Project Synergy & Infrastructure

  • 학습 게임 생태계 구축: Test_0303(구구단 마스터) 및 Hangeul Puzzle Game의 기초 인프라(Vite, Tailwind, Framer Motion)를 완벽하게 구축하고 엔진 오타를 수정하여 즉시 실행 가능한 상태로 최적화했습니다.
  • Vite-React 스캐폴딩 안정화: 신규 프로젝트 생성 시 postcss.config.js, vite.config.js 등 필수 설정 파일 자동 구성 로직을 강화했습니다.
  • 코어 엔진 안정성 유지: 최근 추가된 의도 정렬(Intent Alignment) 및 픽셀 오피스 상태 엔진의 연동 안정성을 재검증했습니다.
  • 신규 패키징: astra-2.2.5.vsix 패키지를 통해 범용 프로젝트 지원 기능이 강화된 최신 버전을 배포합니다.

v2.2.4 (2026-05-15)

⚙️ Intent Alignment & Pixel Office Engine

  • 의도 정렬 시스템(Intent Alignment) 공식화: intentAlignment.tsintentClassifier.ts를 통해 사용자 메시지의 의도를 자동 분류하고, 파이프라인 실행 전 요구사항 계약(Requirement Contract)을 체결하는 C-G-C-F-Q 프레임워크를 안정화했습니다.
  • 픽셀 오피스 상태 엔진 구축: pixelOfficeState.ts를 통해 에이전트 파이프라인 상태(분석 중, 실행 중, 대기 등)를 실시간으로 반영하는 비주얼 피드백 레이어를 완성했습니다.
  • Self-Reflector 서브 모듈 안정화: selfReflectorExecution, selfReflectorVerifier, selfReflectorPrompt, selfReflectorHollow 4개 모듈의 상호작용 로직을 정교화하여 성찰 단계의 신뢰성을 높였습니다.
  • 신규 패키징: astra-2.2.4.vsix 패키지를 통해 최신 의도 정렬 및 성찰 엔진을 배포합니다.

v2.2.3 (2026-05-15)

🚀 Stability & Packaging Refinement

  • 패키지 정합성 강화: 최신 코드베이스 변경 사항을 반영하여 빌드 파이프라인을 재검증하고 배포 안정성을 확보했습니다.
  • 지속적 품질 관리: 298개 전체 테스트 스위트 통과를 재확인하여 엔진 신뢰성을 유지합니다.
  • 신규 패키징: astra-2.2.3.vsix 패키지를 통해 최신 안정화 상태를 배포합니다.

v2.2.2 (2026-05-15)

🧠 Intelligent Reflection & Knowledge Consolidation

  • 자가 성찰 결과의 영속성(Reflection Persistence) 강화: reflectionPersister.ts를 통해 에이전트의 비평(Critique)과 성찰 내용을 지식 베이스에 영구적으로 기록하고, 향후 미션에서 이를 자가 학습 데이터로 활용할 수 있는 기반을 마련했습니다.
  • 작업 재개 로직 안정화: resumeStore.ts 시스템을 최종 정비하여 비즈니스 파이프라인 중단 시의 복구 신뢰도를 극대화했습니다.
  • 사이드바 제공 로직 최적화: sidebarProvider.ts 대규모 리팩토링을 통해 메시지 핸들링 성능을 개선하고 UI 반응성을 높였습니다.
  • 아키텍처 문서 및 기획 자산 최신화: 프로젝트 구조 분석 결과와 기획 레코드를 동기화하여 에이전트의 상황 인지 능력을 향상시켰습니다.

v2.2.1 (2026-05-14)

🔄 Autonomous Task Resumption & Engine Resilience

  • 작업 중단 후 자율 재개 기능 도입: 예기치 않은 오류나 중단 상황에서도 이전에 진행하던 작업 흐름(Company Mission)을 마지막 성공 단계부터 즉시 이어서 실행할 수 있는 resumeStore 시스템을 구축했습니다.
  • 상태 보존 정교화: _resume.json을 통해 각 단계별 팀원의 결과물과 남은 작업들을 실시간으로 저장하며, 원자적(Atomic) 쓰기 방식을 통해 데이터 일관성을 보장합니다.
  • 워크플로우 안정성 강화: dispatcher.ts 내의 복구 로직을 강화하여 다단계 협업 미션 수행 중 발생할 수 있는 레이스 컨디션과 상태 불일치 문제를 해결했습니다.
  • UI 및 피드백 개선: 작업 재개 시 현재 상황을 명확히 인지할 수 있도록 사이드바와 대화 핸들러의 상태 보고 기능을 최적화했습니다.

v2.2.0 (2026-05-14)

💎 Milestone: Human-Centric UI & Workflow Evolution

  • UI 용어 및 인터랙션 전면 한글화: '에이전트', '파이프라인' 등 딱딱한 용어를 '팀원', '작업 흐름' 등 직관적인 한글로 순화하여 친숙도를 높였습니다.
  • 신규 사용자 가이드 고도화: 시작 체크리스트와 예시 질문 칩을 통해 첫 사용자가 Astra의 강력한 기능을 즉시 체험할 수 있도록 설계했습니다.
  • 작업 흐름(Pipeline) 에디터 개선: 복잡한 설정 없이도 템플릿을 통해 '대표에게 맡기거나', '사용자가 직접 정한 순서대로' 팀원이 이어서 작업하게 만듭니다.
  • 팀원 관리 인터페이스 최적화: 새로운 팀원을 추가할 때 내부 ID와 테마 색상, 응답 스타일 등을 더욱 세밀하게 설정할 수 있도록 UI를 정교화했습니다.
  • 시각적 일관성 강화: 사이드바 전반의 디자인 토큰을 재검토하여 더욱 프리미엄하고 일관된 룩앤필을 완성했습니다.

v2.1.9 (2026-05-14)

🚀 Immersive Onboarding & UX Transformation

  • 신규 사용자 온보딩 프로세스 도입: 사이드바에 3단계 체크리스트(두뇌 연결, 모델 선택, 첫 질문)를 추가하여 초기 설정 과정을 직관적으로 개선했습니다.
  • 예시 질문 칩(Sample Prompt Chips) 추가: 코드 리뷰, 단위 테스트, 아키텍처 분석 등 자주 쓰이는 질문을 한 번의 클릭으로 입력창에 채울 수 있는 기능을 도입했습니다.
  • 웰컴 패널 전면 개편: 상태에 따라 동적으로 변하는 환영 메시지와 팁을 통해 더욱 개인화된 사용자 경험을 제공합니다.
  • 에이전트 역할 정밀 튜닝: 레오, 루나, 아라 등 신규 에이전트들의 페르소나와 전문 분야 설명을 더욱 매끄럽게 다듬었습니다.

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 패키지를 생성했습니다.
  • Git 충돌 해결: git pull 과정에서 발생한 자동 생성 파일(.astra/project-context/architecture.md 등)의 컨플릭트를 리모트 우선 방식으로 해결하여 상태를 안정화했습니다.
  • 패키지 정합성 확보: 최신 빌드 결과물을 포함한 astra-2.1.7.vsix 배포 준비를 완료했습니다.

v2.1.6 (2026-05-14)

🛠️ Sidebar Polish & Configuration Refinement

  • 사이드바 상호작용 최적화: sidebar.jschatHandlers.ts를 튜닝하여 비동기 메시지 처리 시의 UI 지연 현상을 최소화하고 사용자 피드백 루프를 강화했습니다.
  • Company Suite 설정 정교화: companyConfig.ts의 기본 설정을 보완하여 멀티 프로젝트 환경에서의 에이전트 전환 안정성을 높였습니다.
  • 테스트 케이스 동기화: 스트레스 테스트 중 발생한 컨플릭트 미션 파일을 정리하고 캐시 정합성을 확보했습니다.
  • 패키징 안정화: astra-2.1.6.vsix를 통해 더욱 세밀하게 조정된 제어 레이어를 배포합니다.

v2.1.5 (2026-05-14)

🚀 Orchestration Pipeline & Immersive Synergy

  • Pipeline Templates 도입: 1인 기업 모드의 업무 흐름을 템플릿화하여 pipelineTemplates.ts를 통해 고정된 비즈니스 시나리오를 빠르게 실행할 수 있는 구조를 구축했습니다.
  • Orchestration 로직 정교화: CEO PlannerDispatcher 간의 데이터 흐름을 최적화하여, 복합적인 미션 수행 시의 컨텍스트 유지 능력을 강화했습니다.
  • UI/UX 미세 조정: 사이드바의 반응형 스타일과 상호작용 로직을 개선하여 더욱 쾌적한 에이전트 제어 환경을 제공합니다.
  • 비즈니스 정합성 강화: 롯데월드 이머시브 프로젝트와 같은 실제 기술 검토 시나리오를 수용할 수 있도록 에이전트의 지식 활용 범위를 조정했습니다.

v2.1.4 (2026-05-14)

🏢 Enterprise Multi-Agent Suite & Reflector Stabilization

  • Company Suite 고도화: CEO Planner, CEO Reporter 등 1인 기업 모드를 위한 비즈니스 오케스트레이션 기능을 안정화하고, 부서 간 협업 로직을 강화했습니다.
  • Self-Reflection (Reflector) 공식 도입: Researcher와 Writer 사이에 비평(Critique) 단계를 추가하여, 리서치 결과의 누락이나 모순을 사전에 검증하는 인텔리전스 루프를 완성했습니다.
  • 지식 자산(ADR/Bug) 체계화: 신규 ADR 및 버그 레코드를 통합하여 프로젝트의 의사결정 이력과 기술적 부채 관리 능력을 향상시켰습니다.
  • 인프라 환경 정비: 프로젝트 루트 및 하위 모듈 간의 환경 설정 충돌을 해결하고 빌드 파이프라인의 견고함을 확보했습니다.

v2.1.3 (2026-05-14)

🚀 Core Synergy & Distribution Alignment

  • 종속성 정합성 완결: package-lock.json을 최신 엔진 사양에 맞춰 동기화하여 빌드 시의 의존성 충돌 가능성을 원천 차단했습니다.
  • 텔레메트리 및 시맨틱 인덱싱 통합: 신규 도입된 telemetry.tsembeddings.ts를 통해 시스템 진단 능력을 강화하고 지식 검색의 의미론적 정확도를 높였습니다.
  • 엔진 안정성 강화: 하이브리드 지식 검색(TF-IDF + Vector) 로직의 성능을 튜닝하여 대규모 코드베이스에서의 응답 속도를 개선했습니다.
  • 신규 패키징: astra-2.1.3.vsix 패키지를 통해 더욱 강력해진 인텔리전스 레이어를 배포합니다.

v2.1.2 (2026-05-14)

🏛️ Chronicle Repair & Context Stability

  • 프로젝트 루트 자동 복구 로직 도입: 이전 버전에서 워크스페이스 상위 폴더를 기준으로 잘못 저장된 서브프로젝트 루트 정보를 자동으로 탐지하고 수정하는 복구(_repairCorruptedChronicleProjectRoots) 기능을 추가했습니다.
  • 컨텍스트 전환 정교화: 에디터 포커스 기반의 자동 프로젝트 전환 로직을 개선하여, 사용자가 수동으로 지정한 프로젝트 컨텍스트가 의도치 않게 초기화되지 않도록 안정성을 강화했습니다.
  • 아키텍처 인지 고도화: 서브프로젝트 인식 실패 시 워크스페이스 루트로 폴백하는 동작을 보완하여 다중 프로젝트 환경에서의 일관성을 확보했습니다.
  • 신규 패키징: astra-2.1.2.vsix 패키지를 통해 더욱 안정화된 프로젝트 관리 환경을 배포합니다.

v2.1.1 (2026-05-14)

🏛️ Multi-Subproject Awareness & Context Precision

  • 서브프로젝트 자동 인식 기능 도입: 상위 폴더를 열어 여러 프로젝트를 동시에 작업할 때, 현재 활성화된 파일의 위치를 기반으로 개별 프로젝트(ConnectAI, Datacollector 등)의 루트를 정확히 식별합니다.
  • 실시간 컨텍스트 재동기화: 에디터에서 다른 프로젝트의 파일을 클릭할 때마다 아키텍처 정보와 지식 베이스 범위를 즉시 동기화하여, 혼선 없는 정확한 답변이 가능하도록 개선했습니다.
  • 워크플로우 안정화: 서브프로젝트 전환 시 발생할 수 있는 레이스 컨디션을 방지하기 위해 상태 업데이트 로직에 디바운스(Debounce)를 적용했습니다.
  • 신규 패키징: astra-2.1.1.vsix 패키지를 통해 복잡한 폴더 구조에서도 완벽하게 작동하는 개발 환경을 배포합니다.

v2.1.0 (2026-05-14)

🧠 Self-Reflection & Multi-Agent Intelligence

  • 자가 성찰(Self-Reflection) 단계 도입: Researcher와 Writer 사이에 Reflector 에이전트를 추가하여 수집된 데이터의 무결성과 논리적 정합성을 자동으로 검토하는 기능을 구현했습니다.
  • 메타 인지 기반 품질 보증: Reflector가 분석 단계에서의 누락 사항이나 모순점을 식별하여 Writer에게 구체적인 보정 지시(Critique)를 전달함으로써 최종 답변의 품질을 비약적으로 향상시켰습니다.
  • 설정 제어 기능: g1nation.enableReflection 옵션을 통해 성능 우선 모드와 지능 우선 모드를 선택할 수 있도록 유연성을 부여했습니다.
  • 버그 수정: 아키텍처 문서 연결(Attach) 시 상태 동기화가 간헐적으로 실패하던 로직을 수정하여 안정성을 강화했습니다.
  • 신규 패키징: astra-2.1.0.vsix 패키지를 통해 더욱 고도화된 추론 엔진을 배포합니다.

v2.0.9 (2026-05-14)

🛡️ System Synchronization & Distribution

  • 전역 저장소 동기화 완료: Wiki, Datacollector, Agent 등 모든 관련 저장소의 대규모 리팩토링 및 업데이트 사항을 익스텐션 환경에 최종 동기화했습니다.
  • 배포 안정성 강화: 멀티 저장소 동기화 이후의 패키지 무결성을 검증하고, 최신 지식 베이스 구조(.agent/ 등)와의 호환성을 확보했습니다.
  • 신규 패키징: astra-2.0.9.vsix 패키지를 통해 모든 프로젝트 자산이 최신화된 안정된 실행 환경을 배포합니다.

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

  • 텔레그램 결과물 추적 강화: 텔레그램 보고서에 에이전트가 생성한 파일 경로(*결과물:*)와 세션 폴더 위치를 명시적으로 포함하여, 생성된 자산을 즉시 확인할 수 있도록 개선했습니다.
  • 액션 리포팅 시스템 고도화: AgentTurnOutputactionReport 필드를 추가하여 실행된 액션 태그의 결과를 체계적으로 추적하고 다른 서비스에서 활용할 수 있도록 정교화했습니다.
  • 디스패처 안정성 향상: dispatcher.ts 내의 액션 실행 로직을 개선하여 태그 실행 결과와 응답 본문의 정합성을 확보했습니다.
  • 타입 안정성 보강: 비즈니스 엔진 전반의 인터페이스와 타입을 보강하여 유지보수성과 확장성을 높였습니다.
  • 신규 패키징: astra-2.0.7.vsix 패키지를 통해 강화된 텔레그램 리포팅과 안정화된 엔진을 배포합니다.

v2.0.6 (2026-05-14)

🚀 Intelligence & UX Optimization

  • UI & UX 정교화: 사이드바(sidebar.js, sidebar.css)의 인터랙션과 스타일을 개선하여 더욱 매끄러운 사용자 경험을 제공합니다.
  • 텔레그램 대화 기록 관리: conversationHistory.ts를 도입하여 텔레그램 연동 시의 대화 맥락 유지 기능을 강화했습니다.
  • 비즈니스 엔진 고도화: dispatcher.tspromptBuilder.ts 최적화를 통해 CEO 에이전트의 의사결정 및 작업 할당 정밀도를 높였습니다.
  • 아키텍처 분석 강화: 프로젝트 구조 스캔 및 컨텍스트 주입 로직을 보완하여 더 깊은 코드 이해가 가능하도록 개선했습니다.
  • 신규 패키징: astra-2.0.6.vsix 패키지를 통해 통합된 성능 및 인터페이스 개선 사항을 배포합니다.

v2.0.5 (2026-05-13)

📢 Telegram Business Reporting & Core Resilience

  • 텔레그램 비즈니스 리포팅 도입: 비즈니스 에이전트의 성과를 실시간으로 보고하는 telegramReport.ts를 추가하여 원격 모니터링 기능을 강화했습니다.
  • 에이전트 엔진 복원력 강화: agent.tsdispatcher.ts 내의 예외 처리 로직을 보강하여 복잡한 자율 미션 수행 시의 안정성을 높였습니다.
  • 사이드바 상태 관리 최적화: sidebarProvider.tssidebar.js를 수정하여 세션 전환 및 대화 초기화 시의 반응성을 개선했습니다.
  • 신규 패키징: astra-2.0.5.vsix 패키지를 통해 텔레그램 연동 보고와 강화된 엔진 안정성을 통합 배포합니다.

v2.0.4 (2026-05-13)

Advanced Business Orchestration & UI Polishing

  • 비즈니스 에이전트 고도화: companyConfig.tspromptBuilder.ts 수정을 통해 CEO 에이전트의 목표 설정 및 컨텍스트 주입 로직을 정교화했습니다.
  • 사이드바 사용자 경험 개선: sidebar.csssidebar.js를 갱신하여 비즈니스 워크플로우 진행 상태 시각화를 최적화했습니다.
  • 대화 핸들러 안정화: chatHandlers.tssidebarProvider.ts 내의 비동기 메시지 처리 및 상태 동기화 로직을 강화했습니다.
  • 신규 패키징: astra-2.0.4.vsix 패키지를 통해 더욱 안정적인 비즈니스 자동화 환경을 제공합니다.

v2.0.3 (2026-05-13)

🏢 AI 1-Person Company Engine & Business Intelligence

  • AI 1인 기업(Company) 엔진 도입: 비즈니스 전략 수립부터 자동화 실행까지 아우르는 src/features/company/ 모듈을 신규 도입했습니다.
  • CEO 에이전트 워크플로우: ceoPlannerceoReporter를 통해 비즈니스 목표 설정과 결과 분석을 자율적으로 수행하는 지능형 워크플로우를 구축했습니다.
  • 비즈니스 프롬프트 자산화: 비즈니스 컨텍스트에 최적화된 프롬프트 관리 시스템(promptAssets.ts, promptBuilder.ts)을 통합했습니다.
  • 사이드바 UI 및 인터랙션 최적화: 비즈니스 에이전트와의 매끄러운 소통을 위해 사이드바 구성 요소와 대화 핸들러를 정교화했습니다.
  • 신규 패키징: astra-2.0.3.vsix 패키지를 통해 '지능형 비즈니스' 자동화 기능이 통합된 버전을 배포합니다.

v2.0.2 (2026-05-13)

🏛️ Structural Integrity & Automated Context Management

  • 프로젝트 컨텍스트 자동 관리: .astra/project-context/architecture.md를 통해 프로젝트 구조, 스택, 주요 모듈 정보를 자동으로 스캔하고 관리하는 기능을 도입했습니다.
  • 아키텍처 시각화 엔진 강화: mermaid.tsscanner.ts를 추가하여 프로젝트 구조를 다이어그램으로 시각화하고 심층 스캐닝하는 기반을 구축했습니다.
  • 의사결정 기록(ADR) 동기화: ADR-0009를 포함한 최신 전략적 의사결정 사항을 프로젝트 지식 베이스에 통합했습니다.
  • 사이드바 인터랙션 정교화: 대규모 프로젝트 분석 시의 UI 안정성을 높이고 사용자 피드백 루프를 개선했습니다.
  • 신규 패키징: astra-2.0.2.vsix 패키지를 통해 자동화된 컨텍스트 관리와 강화된 아키텍처 분석 기능을 제공합니다.

v2.0.1 (2026-05-13)

🧠 Advanced Knowledge Mix & Architectural Intelligence

  • 지식 믹스(Knowledge Mix) 엔진 도입: 에이전트가 답변 시 '세컨드 브레인' 지식과 자체 학습 지식을 사용하는 비중을 정교하게 조절할 수 있는 knowledgeMix.ts를 구현했습니다.
  • 프로젝트 아키텍처 인텐트 감지: 프로젝트의 구조적 질문을 자동으로 식별하고 대응하는 projectArchitecture 기능을 추가하여 심층 분석 능력을 강화했습니다.
  • 사이드바 UI 및 인터랙션 최적화: 사이드바의 시각적 요소와 스크립트를 개선하여 대화 흐름의 매끄러움을 더했습니다.
  • 신규 패키징: astra-2.0.1.vsix 패키지를 통해 최신 지능 최적화와 아키텍처 분석 기능이 통합된 버전을 배포합니다.

v2.0.0 (2026-05-13)

🚀 Major Milestone & Intelligence Evolution

  • 지식 검색 엔진 고도화: embeddings.tsscoring.ts를 통해 시맨틱 검색과 키워드 검색이 결합된 하이브리드 검색 기능을 강화했습니다.
  • 텔레그램 통합 안정화: 원격 에이전트 실행 및 모니터링을 위한 텔레그램 서비스 로직을 고도화했습니다.
  • 성능 분석 텔레메트리 도입: 에이전트의 응답 품질과 처리 속도를 정밀하게 측정하는 텔레메트리 시스템을 구축했습니다.
  • 사이드바 UI 최적화: 대규모 대화 세션에서의 인터랙션 성능을 개선하고 시각적 가독성을 높였습니다.

v2.80.43 (2026-05-13)

🛡️ Resilience & Advanced Logic Integration

  • 자율 복구 로직 최적화: 에이전트 실행 중 발생하는 비정상적 상태를 감지하고 자동으로 세션을 복구하는 Resilience Matrix를 고도화했습니다.
  • 신규 패키징: astra-2.80.43.vsix 패키지를 통해 최신 마이너 개선 사항을 통합 배포합니다.

v2.80.42 (2026-05-13)

🚀 Core Intelligence & Extension Maintenance

  • 엔진 안정성 강화: 대규모 대화 세션에서의 컨텍스트 관리 효율을 높이고 메모리 누수 방지 로직을 강화했습니다.
  • 신규 패키징: astra-2.80.42.vsix 패키지를 통해 최신 마이너 개선 사항을 통합 배포합니다.

v2.80.41 (2026-05-13)

🚀 Distribution & Build Stabilization

  • 신규 패키징: astra-2.80.41.vsix 패키지를 생성하여 최신 기능과 아키텍처 개선 사항을 통합 배포합니다.
  • 버전 정규화: 시스템 전반의 버전을 v2.80.41로 동기화하여 배포 정합성을 확보했습니다.

v2.80.40 (2026-05-13)

🏛️ Strategic Architecture & Core Optimization

  • 아키텍처 결정 기록(ADR) 도입: ADR-0008을 통해 프로젝트의 부족한 점 분석과 향후 개선 방향에 대한 전략적 의사결정을 문서화했습니다.
  • 에이전트 엔진 정밀 튜닝: agent.tsconfig.ts 수정을 통해 복잡한 다단계 추론 과정에서의 안정성과 응답 품질을 최적화했습니다.
  • 연대기 및 타임라인 동기화: 최신 아키텍처 결정 사항과 개발 마일스톤을 chronicle.config.jsontimeline.md에 반영했습니다.
  • 신규 패키징: astra-2.80.40.vsix 패키지를 생성하여 전략적 아키텍처 개선안과 최적화된 엔진을 통합했습니다.

v2.80.39 (2026-05-13)

🎨 UI Polish & Core Logic Tuning

  • 사이드바 시각적 정교화: sidebar.css를 업데이트하여 다크 모드에서의 가독성과 전반적인 디자인 정밀도를 높였습니다.
  • 에이전트 구성 최적화: agent.tsconfig.ts 내의 매개변수를 튜닝하여 복잡한 지식 검색 작업에서의 응답 일관성을 개선했습니다.
  • 연대기 및 타임라인 최신화: 프로젝트 진행 상황을 반영하여 chronicle.config.jsontimeline.md를 갱신했습니다.
  • 심층 구현 기록 추가: 기술적 한계 극복과 개선 과정을 상세히 기술한 신규 구현 문서를 통합했습니다.
  • 신규 패키징: astra-2.80.39.vsix 패키지를 생성하여 시각적 개선과 로직 튜닝이 완료된 버전을 통합했습니다.

v2.80.38 (2026-05-13)

🛡️ Response Recovery & Stability Overhaul

  • 응답 복구 메커니즘 도입: responseRecovery.ts 및 관련 테스트 코드를 통해 AI 모델의 비정상 응답이나 스트리밍 중단 시 자동으로 상태를 복구하고 재시도하는 강력한 회복 탄력성을 구축했습니다.
  • 컨텍스트 매니저 고도화: contextManager.ts를 수정하여 대규모 프로젝트 분석 시 토큰 사용 효율을 높이고 컨텍스트 누락을 최소화했습니다.
  • 에이전트 실행 안정성 강화: agent.tsconfig.ts 내의 타임아웃 및 에러 처리 로직을 개선하여 고부하 상황에서의 작동 안정성을 확보했습니다.
  • 신규 패키징: astra-2.80.37.vsix 패키지를 생성하여 불확실한 AI 응답 환경에서도 신뢰할 수 있는 실행 환경을 통합했습니다.

v2.80.37 (2026-05-12)

🛡️ Response Recovery & Stability Overhaul

  • 응답 복구 메커니즘 도입: responseRecovery.ts 및 관련 테스트 코드를 통해 AI 모델의 비정상 응답이나 스트리밍 중단 시 자동으로 상태를 복구하고 재시도하는 강력한 회복 탄력성을 구축했습니다.
  • 컨텍스트 매니저 고도화: contextManager.ts를 수정하여 대규모 프로젝트 분석 시 토큰 사용 효율을 높이고 컨텍스트 누락을 최소화했습니다.
  • 에이전트 실행 안정성 강화: agent.tsconfig.ts 내의 타임아웃 및 에러 처리 로직을 개선하여 고부하 상황에서의 작동 안정성을 확보했습니다.
  • 신규 패키징: astra-2.80.37.vsix 패키지를 생성하여 불확실한 AI 응답 환경에서도 신뢰할 수 있는 실행 환경을 통합했습니다.

v2.80.36 (2026-05-12)

🎨 UI/UX Refinement & Agent Logic Optimization

  • 사이드바 UI 전면 고도화: sidebar.html, sidebar.js, sidebar.css를 갱신하여 더 매끄러운 애니메이션과 직관적인 컴포넌트 인터랙션을 구현했습니다.
  • 에이전트 추론 로직 최적화: agent.ts 내의 컨텍스트 주입 및 응답 생성 파이프라인을 개선하여 더 정확하고 빠른 답변이 가능하도록 조정했습니다.
  • 로컬 경로 프리플라이트 강화: localPathPreflight.test.ts 수정을 통해 다양한 작업 환경에서의 경로 인식 안정성을 재검증했습니다.
  • 신규 패키징: astra-2.80.36.vsix 패키지를 생성하여 최신 UI 개선 사항과 로직 최적화를 통합했습니다.

v2.80.35 (2026-05-12)

🧠 Experience Memory & Architectural Lessons

  • 경험 메모리(Experience Memory) 설계: EXPERIENCE_MEMORY_PLAN.md를 통해 에이전트가 수행한 작업의 성공/실패 사례를 '레슨'으로 자산화하는 체계를 설계했습니다.
  • 레슨 헬퍼 도입: lessonHelpers.ts 및 관련 테스트를 통해 과거의 교훈을 동적으로 검색하고 프롬프트에 주입하는 기능을 추가했습니다.
  • 브레인 인덱스 타입 정교화: types.tsbrainIndex.ts 수정을 통해 지식 검색의 타입 안정성과 필터링 정확도를 개선했습니다.
  • 익스텐션 코어 최적화: extension.ts 내의 리소스 관리 및 라이프사이클 로직을 보강하여 장시간 사용 시의 안정성을 높였습니다.
  • 사이드바 UI 정밀 개선: 사이드바의 시각적 요소와 인터랙션 스크립트를 최적화하여 조작감을 개선했습니다.
  • 신규 패키징: astra-2.80.35.vsix 패키지를 생성하여 경험 기반 학습 능력이 강화된 에이전트 환경을 통합했습니다.

v2.80.34 (2026-05-12)

🧠 Advanced Context Management & Brain Indexing

  • 신규 컨텍스트 매니저 도입: contextManager.ts를 통해 대규모 파일 및 대화 내역의 우선순위를 지능적으로 관리하고 토큰 예산을 최적화하는 기능을 추가했습니다.
  • 브레인 인덱싱 고도화: brainIndex.ts 및 관련 테스트 코드를 도입하여 지식 베이스 검색 속도와 정확도를 향상시켰습니다.
  • LM Studio 스트리밍 안정화: streamer.ts 내의 응답 처리 로직을 개선하여 긴 응답 생성 시의 연결 안정성을 확보했습니다.
  • 사이드바 UI/UX 정밀 튜닝: 사이드바의 인터랙션 로직(HTML/JS/CSS)을 개선하여 사용자 경험을 한층 더 강화했습니다.
  • 텔레그램 원격 실행 설계: TELEGRAM_REMOTE_EXECUTION_PLAN.md를 통해 향후 텔레그램을 통한 원격 에이전트 실행 및 모니터링을 위한 청사진을 수립했습니다.
  • 신규 패키징: astra-2.80.34.vsix 패키지를 생성하여 최신 기능과 안정성 개선 사항을 통합했습니다.

v2.80.33 (2026-05-11)

🏛️ Agent Repository Reorganization & Sync

  • 에이전트 저장소 구조 개편 대응: Agent 저장소의 핵심 스킬 및 지식 베이스가 .agent/에서 _agent/ 폴더로 대폭 재배치됨에 따라, 이를 익스텐션의 스킬 로딩 엔진 및 경로 탐색 로직에 동기화했습니다.
  • 스킬 경로 정합성 확보: 외부 스킬 로더 및 범용 에이전트가 개편된 _agent/skills 구조를 정확히 참조하도록 내부 매핑을 갱신했습니다.
  • 저장소 간 일관성 유지: 에이전트 자산 재배치에 따른 주요 워크플로우의 작동 유무를 재검증하고, 관련 설정을 최적화했습니다.
  • 신규 패키징: astra-2.80.33.vsix 패키지를 생성하여 개편된 에이전트 자산과의 호환성을 확보했습니다.

v2.80.32 (2026-05-11)

🛡️ LM Studio SDK Resilience & Auto-Recovery

  • LM Studio SDK 안정성 강화: 모델 핸들이 "disposed" 상태로 방치되어 발생하는 스트리밍 실패를 감지하고, SDK 클라이언트를 자동으로 재생성(resetHandle)하여 복구하는 로직을 도입했습니다.
  • 2단계 스트리밍 복구 프로세스: 빈 응답 감지 시 (1) 핸들 초기화 후 스트리밍 재시도, (2) 실패 시 비스트리밍(POST) 폴백을 수행하는 다단계 복구 체계를 구축했습니다.
  • 지능형 진단 가이드: 소형 모델(3B 이하) 및 대규모 컨텍스트 상황에서 첫 토큰부터 EOS를 뱉는 현상에 대한 구체적인 해결 가이드(LM Studio 로그 분석 기반)를 에러 메시지에 추가했습니다.
  • 신규 패키징: astra-2.80.32.vsix 패키지를 생성하고 고부하 스트리밍 복구 시나리오에 대한 검증을 완료했습니다.

v2.80.31 (2026-05-11)

🧠 Logic Optimization & Skill Integration

  • 에이전트 응답 로직 간소화: src/agent.ts 내의 복잡한 하드코딩 폴백 및 리뷰 판단 로직을 제거하여 모델 기반의 유연한 응답 생성을 강화했습니다.
  • 범용 에이전트 스킬 확장: General 에이전트에 대한 외부 스킬 폴더(Agent/_agent/skills) 연동 구조를 최적화하여 범용 작업 처리 능력을 향상했습니다.
  • 워크스페이스 연동 강화: .astra/agent-knowledge-map.json 설정을 통한 에이전트별 지식 및 스킬 범위 정의의 정합성을 개선했습니다.
  • 신규 패키징: astra-2.80.31.vsix 패키지를 생성하고 주요 기능의 작동 유무를 재검증했습니다.

v2.80.30 (2026-05-11)

🛠️ External Skills & Sidebar UX Enhancement

  • 외부 스킬 로딩 지원 (External Skill Loading): externalSkillLoader.ts 신규 도입 및 agentKnowledgeMap.ts 고도화를 통해 외부 정의 스킬을 동적으로 로드하고 활용하는 기반을 구축했습니다.
  • 사이드바 UI 정교화: sidebar.html, sidebar.js, sidebar.css 전면 갱신을 통해 스킬 선택 인터페이스를 개선하고 시각적 피드백을 강화했습니다.
  • 에이전트 실행 로직 최적화: agentHandlers.ts 내의 스킬 컨텍스트 주입 및 메시지 처리 파이프라인을 개선하여 실행 안정성을 확보했습니다.
  • 신규 패키징: astra-2.80.30.vsix 패키지를 생성하고 핵심 워크플로우에 대한 회귀 테스트를 완료했습니다.

v2.80.29 (2026-05-10)

🛡️ Service Reliability & Telegram Integration

  • 텔레그램 봇 안정화 (Telegram Bot Stabilization): telegramBot.ts 내의 폴링 및 응답 로직을 개선하여 메시지 누락 및 연결 지연 문제를 해결했습니다.
  • 서비스 계층 리팩토링: services.ts 내의 핵심 인프라 서비스 초기화 및 종속성 관리 방식을 최적화하여 시스템 부팅 속도를 향상했습니다.
  • 익스텐션 코어 강화: extension.ts 내의 커맨드 등록 및 리소스 해제 사이클을 정교화하여 메모리 누수를 방지하고 실행 안정성을 높였습니다.
  • 신규 패키징: astra-2.80.29.vsix 패키지를 생성하고 전체 테스트 스위트를 재검증했습니다.

v2.80.28 (2026-05-10)

🏛️ Knowledge Architecture & Skill Scoping

  • 지식 맵핑 고도화 (Knowledge Mapping): agentKnowledgeMap.tsscopedBrainRetriever.ts 도입을 통해 에이전트별로 검색할 지식 범위를 정교하게 제한하고 관리하는 기능을 추가했습니다.
  • 사이드바 UI 안정화: 미디어 폴더의 sidebar.html, sidebar.js를 갱신하여 사용자 인터랙션과 상태 동기화의 정합성을 개선했습니다.
  • 패키징 최적화: 최신 빌드 파이프라인을 통해 astra-2.80.28.vsix 패키지를 생성하고, 스트레스 테스트를 통해 엔진의 복원력을 재검증했습니다.
  • 시스템 안정성 강화: extension.tsagentHandlers.ts 내의 비동기 처리 로직을 보완하여 다중 에이전트 실행 시의 안정성을 확보했습니다.

v2.64.0 (2026-05-04)

🛡️ Resilient Pipeline & Stability Overhaul

  • 상태 영속성 및 재개 (State Persistence & Resume): 미션 진행 상태를 디스크(.astra/missions/)에 실시간 저장하며, 크래시나 오류 발생 시 마지막 단계부터 자율 재개하는 기능 도입.
  • 중복 수집 방지 (Deduplication): 동일한 프롬프트와 컨텍스트에 대한 LLM 응답을 해시 기반으로 캐싱하여 불필요한 중복 호출을 차단하는 CacheManager 탑재.
  • 실패 원인 명시적 기록: Transient(일시적) 및 Permanent(영구적) 오류 분류와 함께 세부 실패 원인을 로그에 기록하여 진단 편의성 강화.
  • 수집 결과 품질 점수화 (Quality Scoring): 데이터의 길이, 구조, 정보 밀도를 기반으로 수집 결과의 품질을 자동 평가하는 QualityScorer 도입.
  • 위키 포맷 표준화 (Standardization): 최종 결과물에 P-Reinforce v3.0 표준 프론트매터 및 헤더를 자동 주입하는 WikiFormatter 연동.

v2.63.0 (2026-05-04)

🛡️ Agent Handoff Tracing & Diagnostics

  • 데이터 무결성 검증 (Data Integrity): 에이전트 간(Planner → Researcher → Writer) 핸드오프 시 발생할 수 있는 데이터 누락을 감지하고 차단하는 AgentDataValidator 기능 도입.
  • 성능 프로파일링 (LLM Latency Profiling): 에이전트별 LLM 처리 시간(ms) 및 초당 토큰 생성 속도를 측정하여 잠재적인 비동기 병목 현상을 진단하는 기능 추가.
  • 프롬프트 포맷 한글화: Inferred user intent 및 Blocking Questions 등 영어로 출력되던 마크다운 헤더를 명확한 한글(## 사용자 의도 추론, ## 핵심 확인 질문)로 개선.

v2.62.0 (2026-05-04)

🚀 Astra Autonomous Loop (AAL) 기초 구축

  • 데이터 중앙화: .astra 디렉토리를 프로젝트 루트에서 ConnectAI/.astra/ 내부로 이전하여 프로젝트 응집도 향상.
  • AAL 프로토콜 도입: 에이전트 간 자율 협업을 위한 protocol.jsontasks.json 스키마 구축.
  • 경로 해결기(Path Resolver): 확장 프로그램 설치 경로 기반의 데이터 관리 시스템(astraPath.ts) 도입.

🔍 파일 직접 분석 기능 강화

  • 경로 감지 범용화: 하드코딩된 경로 대신 /Volumes/, /Users/, /home/, ~/ 등 모든 절대 경로 감지 지원.
  • 분석 키워드 확장: "읽어줘", "열어줘", "파일 내용", "코드 분석" 등 직관적인 한국어/영어 트리거 추가.
  • 대용량 프리뷰 지원: 코드/문서 파일 분석 시 프리뷰 제한을 1,200자에서 8,000자로 대폭 상향하여 정밀 분석 가능.

Patch Notes - v2.61.0 (2026-05-04)

🛡️ Resilient Engine & Monitoring (복원력 강화)

  • Error Recovery Matrix: 에러 유형을 Transient(일시적)와 Permanent(영구적)로 자동 분류하는 복구 매트릭스가 전면 도입되었습니다. 네트워크 오류 시 지수 백오프 재시도를 자동 수행합니다.
  • Mission Control Dashboard: toStructuredLog() 기반의 프리미엄 시각화 대시보드(assets/mission_control.html)가 추가되었습니다. 에이전트의 흐름과 지연 시간을 한눈에 파악할 수 있습니다.
  • 성능 및 병렬화 최적화: 단계별 500ms 강제 지연을 제거하고, Researcher와 Writer 준비 과정을 병렬화하여 전체 워크플로우 처리 속도를 대폭 향상했습니다.
  • 신뢰성 검증: 37종의 통합 테스트 및 성능 벤치마크 스위트를 통해 엔진의 안정성과 복구 메커니즘을 완벽히 검증했습니다.

Patch Notes - v2.60.0 (2026-05-04)

🧠 Memory & Knowledge Search (Unified RAG Pipeline)

  • Retrieval Orchestrator: 통합 RAG 파이프라인(src/retrieval)이 전면 도입되었습니다. 무거운 외부 프레임워크(LlamaIndex 등) 없이 자체적으로 초경량 TF-IDF 스코어링 및 컨텍스트 예산 최적화를 수행합니다.
  • 2nd Brain (Obsidian) 연동: 프로젝트 문서 및 옵시디언 지식 기지에서 질문과 연관된 핵심 문단을 자동 추출하여 AI 프롬프트에 주입합니다.
  • 다중 메모리 계층 동시 탐색: 과거 대화(Episodic), 프로젝트 결정 사항(Project), 문제 해결 절차(Procedural) 등 다양한 메모리를 융합하여 입체적인 답변을 제공하도록 강화되었습니다.

Patch Notes - v2.59.0 (2026-05-03)

🎨 UI/UX Polish & Stability

  • Visual Consistency: Refined the sidebar layout to ensure 100% alignment with the latest design guidelines.
  • Error Handling: Improved the clarity of diagnostic messages during agent execution failures.
  • Workflow Persistence: Fixed a minor edge case where the multi-agent execution state was not correctly reset after cancellation.

Patch Notes - v2.58.0 (2026-05-03)

🛠️ Performance & Core Refinement

  • Workflow Orchestration: Further optimized the agent handoff logic for smoother transition between reasoning stages.
  • Resource Management: Enhanced memory cleanup during intensive multi-agent tasks to prevent UI lag.
  • System Stability: Finalized the synchronization between core logic and UI event handlers.

Patch Notes - v2.37.0 (2026-05-03)

🚀 Orchestration & System Stability

  • Version Normalization: Synchronized system-wide versioning to v2.37.0 to align with the latest architectural refinements.
  • Build Pipeline Optimization: Streamlined the VSIX packaging process for consistent distribution across environments.
  • Git Sync Strategy: Enhanced the automated commit & push workflow to ensure 100% repository integrity after major updates.

Patch Notes - v2.36.9 (2026-05-02)

✍️ Content Engineering: Blog Automation Standard

  • Blog Production Standard Manual: Integrated the authoritative guide for structure, layout, and SEO-optimized headline design into the agent's reasoning core.
  • Tone & Manner Refinement: Established the "Ryuri-style" persona (Friendly Expert) as the default for content-centric tasks to ensure high engagement and trust.
  • Knowledge Pipeline: Synced the latest blog writing patterns from the Wiki into the extension's knowledge retrieval layer.

Patch Notes - v2.36.8 (2026-05-02)

🔍 Intelligence & Stability: Review Preflight

  • Code Review Preflight: Implemented a local path validation layer that verifies workspace integrity before initiating deep autonomous code analysis.
  • System Prompt Testing: Added a suite of automated tests for system prompts to ensure consistent agent behavior across diverse reasoning tasks.

Patch Notes - v2.36.7 (2026-05-02)

🎨 UX & Search Refinement

  • Answer Format Tuning: Optimized response formatting to improve readability and visual clarity of synthesized information.
  • Query Intent Search: Enhanced the intent-based search logic to provide more contextually relevant results from the knowledge base.

Patch Notes - v2.36.6 (2026-05-02)

🛡️ Reliability Upgrade: Project Claim Output Brake

  • Output Brake Mechanism: Introduced a strict filtering layer that prevents the agent from making unverified project claims.
  • Evidentiary Reasoning: Refined the core logic to enforce a "No Evidence, No Claim" policy for higher architectural integrity.

Patch Notes - v2.36.5 (2026-05-02)

🛡️ Project Governance: Guard Policy Enforcement

  • Project Chronicle Guard: Implemented strict validation logic for project claims, ensuring all assertions are backed by verifiable evidence.
  • Trace Optimization: Enhanced SecondBrainTrace for more precise knowledge tracking and context synthesis.

Patch Notes - v2.36.4 (2026-05-02)

🏛️ Knowledge Integration: Datacollector Sync

  • Wiki Expansion: Integrated 43 high-density technical artifacts from the Datacollector (Software Engineering, Architecture, DevOps).
  • v3.1 Standard Compliance: All new artifacts processed with enhanced validation and duplicate check metadata.

Patch Notes - v2.36.3 (2026-05-02)

⚙️ Core Orchestration Tuning

  • Signal Handling Optimization: Refined the internal event bus to ensure smoother transitions between autonomous reasoning steps.
  • Distribution Integrity: Final validation of build artifacts and metadata consistency for the v2.36 series.

Patch Notes - v2.36.2 (2026-05-02)

📝 Documentation Fix

  • Repository URL Correction: Fixed incorrect GitHub repository URLs in README.md and package.json to point to the authoritative g1nations/locallm repository.

Patch Notes - v2.36.1 (2026-05-02)

🛠️ Stability & Refinement

  • Action Queue Optimization: Refined the ActionQueue to handle rapid succession of wiki-grounded reasoning tasks without state overlap.
  • Distribution Prep: Finalized build artifacts for the standardized P-Reinforce v3.0 knowledge base integration.

Patch Notes - v2.36.0 (2026-05-02)

🏛️ Knowledge Ecosystem: P-Reinforce v3.0 Standard

  • Full Wikification Milestone: Standardized 153+ raw engineering and architectural artifacts into high-density knowledge clusters.
  • Systemic Categorization: Integrated automated classification for Process Methodology, Architecture Principles, Software Engineering, and DevOps.
  • Semantic Integrity: Ensured 100% metadata consistency across the knowledge base, optimizing the agent's contextual grounding accuracy.

Patch Notes - v2.35.1 (2026-05-02)

🎨 UI & UX Optimization

  • Second Brain Trace: Collapsible UI: Integrated <details> blocks for Trace evidence to reduce visual noise while maintaining transparency.
  • Trace Summary: Added a compact usage summary showing note counts and grounding status at a glance.
  • Improved Readability: Optimized the layout of referenced notes and debug JSON within the expanded section.

Patch Notes - v2.35.0 (2026-05-02)

🏛️ Milestone: Knowledge Resilience & Standardization

  • Authoritative Knowledge Base: Completed the full synthesis of all raw engineering artifacts into the 10_Wiki system, establishing a single source of truth for Cognitive Engineering, Agentic Coding, and Security Governance.
  • Zero-Ghost Integrity: Finalized global graph cleanup, ensuring the Obsidian brain remains 100% free of broken nodes and fragmented stubs.
  • VSIX Distribution: Optimized packaging for the new standardized environment, ensuring seamless integration with the latest knowledge clusters.

Patch Notes - v2.34.1 (2026-05-02)

🧠 Knowledge Base Standardized (P-Reinforce v3.0)

  • High-Density Wikification: Synthesized 148+ raw cognitive engineering and software maintenance artifacts into 9 authoritative, cross-linked clusters.
  • Graph Integrity Purge: Executed global regex-based cleanup to eliminate all broken links (Ghost Nodes) and empty stubs, ensuring 100% structural reliability.
  • Topic Architecture: Reorganized knowledge into standardized categories (Cognitive Engineering, AI/Agentic Coding, Security/Quality, etc.) for optimized discovery.

Patch Notes - v2.33.9 (2026-05-01)

🚀 Core Engine Upgrade

  • Agent Workflow Optimization: Enhanced AgentWorkflowManager and AgentFactory for more robust multi-agent orchestration.
  • Utility Refinement: Core utilities and configuration logic updated for improved reliability and performance.
  • UI/UX Sync: Further alignment between sidebar provider and core agent logic for a seamless experience.

Patch Notes - v2.33.8 (2026-05-01)

🛠️ Performance & Stability

  • Agent Execution Refinement: Further stabilized task orchestration and response validation.
  • Workflow Stabilization: Minor internal logic updates to ensure consistent agent performance.

Patch Notes - v2.33.7 (2026-05-01)

⚙️ Logic Refinement

  • Multi-Agent Routing: Optimized workflow to prioritize local project analysis over general multi-agent execution when explicit projects are referenced.
  • Intent Detection: Expanded analysis intent keywords for better project-level understanding triggers.
  • Error Handling: Improved diagnostic details for empty AI responses to help troubleshoot local server issues.
  • Default Config: Set multiAgentEnabled to false by default for a leaner initial experience.
  • UI Polish: Enhanced Multi-Agent button UI with dynamic tooltips and state synchronization.

Patch Notes - v2.33.6 (2026-05-01)

🛠️ Critical Bug Fixes

  • Chat Persistence Overhaul: Resolved an issue where chat history disappeared after switching sidebar tabs.
  • Webview State Management: Implemented vscode.setState for instant UI restoration.
  • Internal Message Logic: Refined message filtering to ensure intermediate agent steps are visible to the user.

Patch Notes - v2.33.5 (2026-05-01)

🎨 UI Refinement

  • Sidebar Provider Update: Optimized sidebar rendering and event handling for smoother navigation.

Patch Notes - v2.33.4 (2026-05-01)

🛠️ Manual Refinement & Stabilization

  • Core Agent Logic Update: Manually refined agent.ts and AgentWorkflowManager.ts for improved task orchestration.
  • Workflow Factory Optimization: Updated factory.ts to support more robust agent instantiation.
  • Configuration & UI Polish: Fine-tuned config.ts and sidebarProvider.ts for a better user experience.

Patch Notes - v2.32.0 (2026-04-30)

🏛️ Modernization: Actor/Queue Model & Monitoring

1. Actor/Queue 기반 비동기 워커 도입

  • Asynchronous Worker Pool: queue_worker.py를 구축하여 데이터 수집과 추론 처리를 완전히 분리했습니다.
  • Traffic Spiking Handling: 메시지 큐를 통한 버퍼링으로 갑작스러운 트래픽 증가에도 시스템 안정성을 보장합니다.

2. 실시간 성능 모니터링 및 SLO 추적

  • SLO Monitoring Hub: monitoring.py를 통해 핵심 추론 경로의 지연 시간을 실시간 측정합니다.
  • P95 Latency Tracking: 목표 지연 시간(200ms) 준수 여부를 모니터링하고 가시성을 확보했습니다.

3. 아키텍처 현대화 완결 (Phase 1~3)

  • Actor 모델 지향: 모놀리식 동기 처리에서 비동기 이벤트 기반 마이크로서비스 지향 아키텍처로의 근본적 전환을 달성했습니다.

Patch Notes - v2.31.0 (2026-04-30)

🧠 Intelligent Optimization & Scalable Parallelization

1. 지능형 파라미터 최적화 엔진 도입

  • Simulated Annealing Optimizer: 브루트 포스 방식을 대체하는 시뮬레이티드 어닐링 엔진(optimizer.py)을 구축하여 최적의 파라미터를 최소한의 계산으로 도출합니다.
  • Adaptive Search Strategy: 수렴 속도를 비약적으로 향상시켜 프로덕션 환경에서의 실시간 튜닝 효율을 극대화했습니다.

2. P3 병렬 처리 엔진 고도화

  • Multi-core Scaling: match_features_parallel 기능을 통해 대규모 배치 처리를 멀티 CPU 코어에 분산하여 처리량(Throughput)을 비약적으로 향상시켰습니다.
  • Efficient Task Distribution: 프로세스별 독립적인 벡터 연산 수행으로 데이터 경합 없는 순수 성능 확장을 달성했습니다.

3. P2 데이터 구조 전면 마이그레이션

  • NumPy Core Storage: 내부 수치 데이터를 Python 리스트에서 NumPy 배열로 전환하여 메모리 연속성과 캐시 효율성을 확보했습니다.
  • Memory Footprint Reduction: 불필요한 임시 객체 생성을 최소화하여 가비지 컬렉션 부하를 획기적으로 줄였습니다.

Patch Notes - v2.30.0 (2026-04-30)

🏗️ Next-Gen Engine & Architectural Modernization

1. 차세대 Python 코어 엔진 구축 (Phase 1~3)

  • Vectorized Inference: NumPy 행렬 연산을 활용한 O(N) 특징 매칭 엔진(core_py/inference.py) 도입으로 연산 속도 극대화.
  • Asynchronous Data Loader: asyncio 기반의 비차단 I/O 파이프라인(core_py/loader.py)을 통해 데이터 로딩 병목 현상(65% 대기 시간) 제거.
  • Observer Pattern Integration: 중앙 이벤트 버스(core_py/events.py)를 통한 모듈 디커플링으로 시스템 유연성 확보.

2. TypeScript 서비스 전면 비동기화

  • Non-blocking I/O: agent.ts 내의 모든 동기식 파일 작업을 fs.promises로 전환하여 대규모 프로젝트 분석 시의 UI 프리징 문제 해결.
  • Async Project Search: 병렬 재귀 탐색 알고리즘을 도입하여 프로젝트 구조 파악 속도 향상.

3. 안정성 및 유지보수성 강화

  • DIP 실현: AgentEvents 허브를 통한 이벤트 기반 아키텍처로 전환하여 모듈 간 강한 결합 해소.
  • TypeScript 정밀 타입화: 비동기 호출 및 Null 안정성에 대한 엄격한 타입 체크 적용.

Patch Notes - v2.29.0 (2026-04-30)

🚀 Performance Leap & Structural Decoupling

1. Algorithmic Optimization (O(N) Core)

  • DataProcessor Implementation: 핵심 집계 로직을 $O(N^2)$에서 O(N) 선형 복잡도로 최적화하여 대규모 데이터셋 처리량을 비약적으로 향상시켰습니다.
  • Adaptive Indexing: 데이터 분포에 민감하게 반응하는 효율적인 인덱싱 구조를 적용했습니다.

2. Strategic Architecture Separation

  • Bridge Refactoring: BridgeServer에 집중된 비즈니스 로직을 AIServiceBrainService로 완전히 분리(SRP/DIP)하여 순환 복잡도를 대폭 낮췄습니다.
  • Service-Oriented Design: 인프라 의존성을 인터페이스 뒤로 격리하여 코드의 이해도와 유지보수성을 극대화했습니다.

3. Quantitative Validation

  • Benchmark Suite: 데이터 규모 확대에 따른 성능 향상을 정량적으로 입증하는 벤치마크 테스트를 추가했습니다.

Patch Notes - v2.28.0 (2026-04-30)

🏗️ Next-Gen Engine Architecture & Stability

1. New AgentEngine Core (Producer-Consumer)

  • Architecture Refactor: 멀티 에이전트 워크플로우의 핵심 로직을 AgentEngine으로 완전히 분리했습니다.
  • Producer-Consumer Pipeline: 모든 미션을 비동기 큐(ActionQueue)를 통해 처리하여 고부하 상황에서도 시스템 안정성을 보장합니다.
  • Dependency Injection (DI): 에이전트 간 결합도를 낮추어 유지보수성과 확장성을 극대화했습니다.

2. Explicit Synchronization (Mutex Locking)

  • Race Condition Protection: lockManager를 이용한 명시적 뮤텍스(Mutex) 락을 도입하여, 동일 미션이 중복 실행되거나 데이터가 충돌하는 문제를 원천 차단했습니다.

3. High-Resolution Telemetry

  • Stage Tracking: PlannerResearcherWriter로 이어지는 파이프라인 단계를 실시간으로 추적하고 UI에 정확하게 보고합니다.

Patch Notes - v2.27.0 (2026-04-30)

🛠 Stability & IDE Integrity Enhancements

1. Sidebar UX & Session Management

  • Persistence: 세션 복구 및 채팅 히스토리 정합성 로직을 강화했습니다.
  • Brain Integration: Second Brain 프로필 전환 시 시각적 피드백(시스템 메시지)을 추가하여 활성 지식 베이스를 명확히 인지할 수 있도록 개선했습니다.
  • Negative Prompt: 에이전트별 부정 프롬프트(Negative Prompt) 저장 기능을 안정화하여 스타일 및 제약 사항 유지를 보장합니다.

2. Multi-Agent & Proactive Suggestions

  • Tips Engine: 사용자 인터랙션 기반의 능동적 팁(Proactive Suggestion) 기능을 고도화하여 효율적인 설정을 제안합니다.
  • Workflow: 에이전트 간 데이터 전달 시 발생할 수 있는 잠재적 레이스 컨디션을 방지하기 위해 동기화 로직을 보완했습니다.

3. Cleanup & Optimization

  • Logs: 불필요한 빌드 로그 및 디버그 메시지를 정리하여 확장 프로그램 성능을 최적화했습니다.

Patch Notes - v2.26.0 (2026-04-30)

💎 Release Candidate - Production Ready

1. Final Build & Packaging Optimization

  • Cleanup: .vscodeignore 설정을 재검토하여 불필요한 소스 파일(src/**)과 이전 빌드 산출물(*.vsix)이 패키지에 포함되지 않도록 최적화했습니다.
  • Consistency: 최신 드래그 앤 드롭 동기화 로직이 포함된 out/extension.js를 재생성했습니다.

2. Risk Orchestration (SOP #1)

  • 배포 전 트리니티 리뷰(Trinity Review) 관점에서 코드 안정성을 재확인했습니다.
  • 보안 및 리소스 관리 측면에서 활성화 이벤트(activationEvents) 최적화가 정상 작동함을 검증했습니다.

Patch Notes - v2.25.0 (2026-04-30)

🚀 UX Optimization & Stability (Kodari Approved)

1. Drag & Drop Input Synchronization

  • Fix: 드롭된 파일을 내부 배열뿐만 아니라 실제 HTML 파일 입력 요소(fileInput.files)와 강제 동기화하도록 로직을 강화했습니다.
  • Verification: 성공적인 동기화 시 개발자 콘솔에 확인 로그를 출력하여 신뢰성을 높였습니다.

2. Multi-Project IDE Problems Resolved

  • Performance: Wonseok_AI_original 패키지의 활성화 이벤트를 최적화하여 VS Code 초기 실행 속도를 개선했습니다.
  • Build Fix: Datacollect 프로젝트의 Vite 설정 내 타입 불일치 에러를 해결하여 빌드 파이프라인을 정상화했습니다.

3. Syntax Stability

  • 중첩 템플릿 리터럴 내의 이스케이프 처리를 최종 점검하여 빌드 시 구문 오류 발생 가능성을 원천 차단했습니다.

Patch Notes - v2.24.0 (2026-04-30)

🚀 New Features & Enhancements

1. Webview Drag & Drop File Upload

  • Feature: 사용자가 파일이나 폴더를 사이드바 채팅창으로 직접 드래그하여 업로드할 수 있는 기능을 추가했습니다.
  • UX: 드래그 시 시각적 오버레이와 블러 효과를 제공하여 직관적인 피드백을 제공합니다.
  • Reliability: 파일 드롭 시 자동으로 Base64 인코딩을 거쳐 안전하게 백엔드로 전달됩니다.

2. Webview Stability & Syntax Fix

  • Bug Fix: 중첩 템플릿 리터럴 내에서 발생하던 백틱(`) 및 보간법(${}) 이스케이프 오류를 수정하여 빌드 안정성을 확보했습니다.
  • Feedback: 파일 추가 시 Toast 알림 및 효과음을 추가하여 조작 편의성을 높였습니다.

Patch Notes - v2.2.46

🚀 Key Improvements & Bug Fixes

1. AI Communication Protocol Fix

  • Issue: Previously, when a file was attached, the text prompt was completely overwritten by the visionContent structure, leading to empty messages being sent to LM Studio.
  • Fix: Merged the text prompt with the vision content array so that both text and file metadata are correctly transmitted.

2. Autonomous Loop Optimization

  • Issue: Broad keyword matching (e.g., "조사", "설명") triggered local file analysis tasks even for general questions, causing the agent to bypass the LLM and give incomplete answers.
  • Fix: Refined the isProjectAnalysisRequest patterns to be more conservative, ensuring generic conversational requests are always handled by the AI model.

3. Second Brain Profile Management

  • Issue: Adding new brain profiles was inconsistent because a virtual "default-brain" (injected in memory) was being saved into the permanent settings, causing profile list corruption.
  • Fix:
    • Decoupled runtime virtual profiles from persistence logic.
    • Implemented direct settings access for profile addition to avoid stale config caches.
    • Fixed UI sync issues immediately after adding a new brain folder.

4. Build & Reliability

  • Removed premature empty stream chunks that were causing UI flickering.
  • Verified build stability with v2.2.46 VSIX package.

v2.8.0 (2026-04-29) - Intelligent Collaborative System Evolution

🤖 Multi-Agent Workflow (MAW)

  • Planner Agent: 전략 수립 및 작업 단계 자동 설계.
  • Researcher Agent: 지식 베이스(Second Brain) 심층 분석 및 데이터 정제.
  • Writer Agent: 최종 보고서 형태의 고품질 답변 생성 및 통합.
  • 복잡한 요청(분석, 보고서 등) 감지 시 자동으로 멀티 에이전트 모드 활성화.

🔮 Proactive Suggestion Engine

  • Behavioral Tracking: 사용자 UI 체류 시간(Dwell Time) 기반 의도 감지.
  • Smart Tips: 설정, 지식 동기화, 에이전트 선택 등 상황에 맞는 능동적 도움말 제공.

🎨 UX & Reliability Improvements

  • Visual Feedback: 가이드라인에 따른 상태별 아이콘 및 피드백 일관성 강화.
  • Model Fix: 모델 선택 및 저장 로직 안정화 완료.
  • Agent Handoff: 각 에이전트 간 데이터 전달 및 진행 상황 시각화 개선.

Date: 2026-04-25 Version: 2.2.46