Commit Graph

369 Commits

Author SHA1 Message Date
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
koriweb 2ea5185cd6 feat(weekly): /weekly 주간 보고서(금주/차주) 추가 + /meet 정확도 개선 (v2.2.204)
- /weekly: 차주 날짜 입력→금주 자동 역산, Google Tasks 기반 금주/차주 보고서.
  버킷팅은 코드(예측 가능), 포맷팅만 LLM. 신규 weeklyPrompt.ts + coordination.ts runWeekly.
- 기존 CEO /weekly 리뷰 카드(dashboards.ts) 제거 — 이름 충돌 해소, /weekly 일원화.
- /meet: 액션아이템에 '작업 상세' 열 추가, 캘린더 notes 가 실제 작업 내용을 담도록 재구성.
- /meet: 발언자 추적 복원 + 비선형 회의 재조립 + 근거/할루시네이션 억제 규칙으로 오귀속 감소.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 16:12:33 +09:00
koriweb ebfce17b03 fix: v2.2.203 — 기업모드 dev-impl 빈 깡통 99% 버그 (hollow check 기본 ON)
증상: 사용자가 기획서 + 폴더 주고 "여기 개발해줘" 요청 → ASTRA 가 파일 만들고
"개발 완료" 보고 → 실제 파일을 열면 class/함수 본문이 비어 있음
(def foo(): pass · 빈 class · imports only). 99% 확률 재발.

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

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 와 분리.
   - dispatcher.ts 게이트 조건 교체

2. dev-impl 프롬프트 강화 (pipelineTemplates.ts) — [빈 깡통 금지] 5개 규칙:
   - 파일은 하나씩 생성, 모든 함수 본문 완전 구현 후 다음 파일로
   - 금지 패턴 명시: pass · ... · NotImplementedError · # TODO · 빈 class
   - 인터페이스/추상 메서드만 빈 본문 OK
   - 각 파일 생성 직후 자가 검증
   - 최종 요약에 파일별 핵심 동작 한 줄씩

3. 기본값 변경 — 사용자 행동 없이 안전망 작동. 옛 selfReflector Phase A/B 는
   그대로 OFF (UX 부작용 보존).

예상 효과: ~70-85% stub 감소. 남은 ~15% (작은 모델 attention 한계 / 큰 프로젝트)
는 per-file 순차 생성으로 v2.2.204+ 검토.

모델 한계 vs 로직 fix: 대부분 로직 fix 가능. 매우 작은 모델 (≤4B) 은 한계 더
빠름 — 더 큰 모델 (gemma-12b, qwen-32b) 권장.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 11:52:12 +09:00
koriweb c27cd823a9 fix: v2.2.202 — 기업모드 Intent Alignment 가 일반 채팅 컨텍스트 무시하던 버그
증상: 일반 채팅에서 프로젝트·요구사항을 충분히 논의한 뒤 기업모드 전환 후
후속 작업을 요청하면 "추가 정보 필요 — 맥락/목표/기준/형식" 화면이 떠
사용자에게 *방금 말한 내용을 다시 묻는* 느낌을 줌.

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

Fix:
- IntentAnalysisInput 에 priorChatSummary?: 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 가능 → 바로 본 작업 진행.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 11:24:34 +09:00
koriweb 7bec20620a refactor: v2.2.195-201 — slashRouter god-file 해체 (–95%) + 인프라 5개 추출
아키텍처 감사 결과 HIGH 2건 + MED 2건 + LOW 1건 — 7 라운드 정리 시리즈.
기능 변경 없음, 순수 구조 정리.

**slashRouter.ts: 4,174 → 201줄 (–3,973, –95%)**
**agent.ts: 1,617 → 1,551줄 (–66, –4%)**

v2.2.195: eventSourcedStore + SystemPromptBlock registry
  - createEventStore<E>(opts) — 4 store (customers/hire/runway/feedback) I/O 240줄 중복 제거
  - _turnCtx 5 named string field → 1 Map<string, string> (새 verification block 추가 25곳→1곳)
  - buildAstraModeSystemPrompt: 5 ternary gate + 5 위치 → 1 for-loop join

v2.2.196: trackers cluster split
  - src/features/teamops/handlers/_shared.ts (fmtKrw/parseAmount/daysUntil/parseTaskOwner/stageEmoji/STAGE_ORDER/TERMINAL_STAGES)
  - src/features/teamops/handlers/trackers.ts (runway/customers/hire)
  - src/features/teamops/handlers/index.ts (barrel)
  - extension.ts 에 side-effect import (순환 import 회피)

v2.2.197: mtimeFileCache + PostAnswerHook registry
  - src/lib/mtimeFileCache.ts — createMtimeFileCache<T>(name, parse) (terminologyBlock + termValidator 2-cache invariant 자동화)
  - src/agent/postAnswerHooks/{types,index}.ts — Devil/SelfCheck/TermValidator 3 _maybeX method → 1 runPostAnswerHooks(ctx) loop
  - agent.ts –66줄

v2.2.198: dashboards cluster split
  - src/features/teamops/handlers/dashboards.ts (morning/evening/cohort/weekly)

v2.2.199: coordination + communication clusters split
  - src/features/teamops/handlers/coordination.ts (task/decisions/onesie/blocked/standup)
  - src/features/teamops/handlers/communication.ts (draft/feedback)
  - callLmSynthesis export 노출 (communication 이 사용)
  - 옛 parseTaskOwner local 정의 삭제 (_shared.ts 사용)

v2.2.200: system cluster split
  - src/features/system/handlers.ts (memory/glossary/help)

v2.2.201: datacollect cluster split + LLM 인프라 추출
  - src/features/datacollect/handlers.ts (research/benchmark/youtube/blog/wikify/meet)
  - src/features/datacollect/llm.ts (callLmSynthesis + repairKoreanGlitches + bridgeErrorRemedy)
  - slashRouter import 4개로 축소: vscode/logInfo/getBridgeBaseUrl/bridgeErrorRemedy

**최종 slashRouter (201줄):**
- REGISTRY Map + registerSlashCommand/listSlashCommands/isSlashCommand
- handleSlashCommand (dispatcher + 에러 처리)
- Webview interface + chunk helper
- getRecentSlashCommands ring buffer (actionability scoring 용)

**미래 부담 감소 metrics:**
- 새 슬래시 명령: god-file 끝에 함수 + register → 1 파일 + 1 register call
- 새 verification block: 5곳 편집 → 1 set call
- 새 event store: 60줄 boilerplate → createEventStore 한 줄
- 새 post-answer hook: 3 step → 1 push
- 새 mtime cache: Map + invariant 관리 → createMtimeFileCache 한 줄

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 11:55:22 +09:00
koriweb 15a34e0889 feat: v2.2.194 — Post-gen Term Validator (결정론적 글로서리 검증)
v2.2.192 Terminology Dictionary 가 *instructional* 지시 (LLM 에게 표준 표기 사용 권유)
였다면, 이번엔 *deterministic* 검증 — LLM 이 지시를 안 따랐을 때 결정론적 정규식 스캔.

신규 모듈: src/agent/termValidator.ts
- parseGlossary() — .astra/glossary.md 정규식 파싱 (mtime 캐시)
  Pattern 1: **Canonical** (X: typo1, typo2, ...) — typo 등장 시 "→ Canonical 권장"
  Pattern 2: H2/H3 "금지/비추/forbidden/avoid/don't" 섹션의 -  "phrase"
- validateTermUsage() — 정규식 스캔 + 발견 횟수
- formatTermValidatorFooter() — markdown 한 줄 footer

False-positive 필터:
- 한글 1음절·영문 1자·공백 포함 토큰 제외
- 영문 단어 경계 매치, 한글 substring

Wiring:
- agent.ts _maybeRunTermValidator — Self-Check 직후, swallow 패턴
- /glossary reload — Term Validator 캐시도 함께 비움

신규 설정: g1nation.termValidatorEnabled (기본 true)

Footer 누적:
- v2.2.191 🔍 Self-check (LLM 호출, opt-in)
- v2.2.194 🔤 Term validator (정규식, on by default)

시너지: Terminology Dictionary(instructional, 작성 중) + Term Validator(deterministic,
작성 후) → 사용자가 .astra/glossary.md 한 곳만 관리하면 2단 자동 동작.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-29 16:38:56 +09:00
koriweb 990ea0ae5f feat: v2.2.173-193 — 4인 팀 운영 슬래시 13개 + ASTRA 검증 엔진 6종
4인 팀 운영 슬래시 (v2.2.173~189):
- 일과 리듬: /morning, /evening, /weekly, /standup
- 트래커 (event-sourced .astra/*.jsonl): /runway, /customers, /hire
- 작업·결정: /task, /blocked, /onesie, /decisions
- 외부 출력: /draft, /feedback
- 분석: /cohort (MoM 추세)

ASTRA 추론·검색 엔진 (v2.2.183~192):
- v2.2.183 Conflict Surface — scoring.conflictSeverity 를 [CONFLICT WARNINGS] 블록으로
  서피스 + 교차-문서 발산(Jaccard) 감지
- v2.2.184 Chain-of-Verification — [VERIFICATION CHECKLIST] 답변 작성 전 그라운딩 자기 점검
  (instructional, strictMode 옵션)
- v2.2.185 Actionability Scoring — 최근 슬래시 명령 + 열린 파일 신호로 검색 결과 재가중
- v2.2.186 Temporal Markers + Distillation Loop — LongTerm/Episodic 만료 필터 +
  30일+ stale episode → LongTerm 'episode-digest' 승급 (수동 /memory distill + 세션 종료 자동)
- v2.2.187 Hierarchical Context Window + LLM Semantic Re-rank — 3-level 추상도 매칭
  + 토큰 예산 통과 후 LLM 1회로 의도-부합 재정렬 (opt-in)
- v2.2.190 Intent Clarification + Citation Trace — 모호 차원 감지 시 역질문 우선
  + 답변 끝 사용 출처 한 줄 정리
- v2.2.191 Post-hoc Self-Check — 답변 완료 후 별도 LLM 호출 1회로 답함/그라운딩/모순 평가,
  footer 한 줄로 표시 (opt-in, semantic re-rank 와 같은 안전 fallback 패턴)
- v2.2.192 Terminology Dictionary — .astra/glossary.md 사용자 편집 파일 + Term Check
  지침 통합 + /glossary init/path/reload
- v2.2.193 /help — 카테고리별 명령 목록 + 6종 verification 블록 현재 on/off

신규 모듈:
- src/retrieval/{conflictBlock,coveBlock,actionabilityScoring,hierarchicalLevel,
  semanticRerank,intentClarification,citationTrace,terminologyBlock}.ts
- src/memory/distillation.ts + types.ts 에 expiresAt/promoted/episode-digest 추가
- src/agent/postHocSelfCheck.ts
- src/features/{customers,feedback,hire,runway}/*.ts (event-sourced stores)

ASTRA 검증 5종 자동 주입 (buildAstraModeSystemPrompt, casual 모드 제외):
[INTENT CLARIFICATION GUIDANCE] (답변 시작 전) → [TERMINOLOGY DICTIONARY] +
[CONFLICT WARNINGS] + [VERIFICATION CHECKLIST] (작성 중) → [CITATION TRACE] (끝)
+ 6번째: Post-hoc Self-Check footer (답변 완료 후, opt-in)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-29 16:05:30 +09:00
koriweb f3439ddad5 feat: v2.2.168-172 — Google Tasks 통합 + /task 명령 + Tasks 단독 기본
v2.2.168: 재패키징.

v2.2.169: /meet 액션 아이템을 Google Tasks 로 등록 추가.
  - 신규 src/features/calendar/tasksApi.ts (Google Tasks API v1)
  - OAuth SCOPE 에 https://www.googleapis.com/auth/tasks 추가 — 사용자 재인증 필요
  - 신규 설정 g1nation.meetUsesTasks (기본 true)

v2.2.170: /meet 양쪽 동시 등록 (Tasks + Calendar 독립 토글).
  - meetUsesCalendar 신설, 둘 다 독립 on/off
  - 출력에 destination 별 성공/실패 표시

v2.2.171: 신규 /task <제목> <시작일> <완료일> 명령.
  - 단일 작업을 Tasks + Calendar 양쪽에 단발 등록 (설정 무시, 항상 둘 다)
  - 단일일 폼: /task <제목> <날짜> 도 지원
  - 날짜 형식 3종: YY/MM/DD, YYYY-MM-DD, YYYY/MM/DD
  - Calendar all-day end-exclusive 자동 보정

v2.2.172: meetUsesCalendar 기본 true→false (중복 방지).
  - Tasks 도 Calendar 사이드바에 같이 노출되어 둘 다 켜면 중복 표시되던 문제 해결
  - 양쪽 원하면 명시적으로 true 토글

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 18:46:07 +09:00
koriweb 2174504b59 feat: v2.2.162-168 — /stocks analysis 6차원 확장 + position + /youtube info 재설계
v2.2.162-163: 신규 /stocks analysis <심볼> (펀더멘털 + 1년 차트 + LLM 종합).
  - 6차원: 가치/수익성/안정성(부채비율)/추세(MA 정배열+224회복)/안전마진/RSI 진입 타이밍
  - 신규 /stocks position [심볼] <총자산> <리스크%> <손절%> — 포지션 사이징 계산기

v2.2.164-165: /youtube info 3-tier 재설계 (사용자 피드백: 중복·이모지·표 깨짐).
  - 9개 섹션 → 4개 ## 섹션 (30초 요약 / 핵심 개념 / 깊이 분석 / 정리자 노트)
  - 헤더 이모지 전면 제거, 표 → bullet, 한 줄 요약 중복 제거

v2.2.166: /stocks analysis 매매 타점 신규 섹션 (사용자 매매 규칙 raw 데이터 적응).
  - 매수 진입(3순위 시나리오) / 손절 / 익절 / 관망 해제 트리거
  - LLM이 실제 가격(MA값, 1년 고가, 60일 저점) 자동 채움

v2.2.167: /stocks analysis 분석 로직 정밀화 (사용자 피드백 5건).
  - MA224 3-state (passed/failed/notApplicable) — 추세 확립 종목  오해 차단
  - 낙폭과대 failReason 명시 — 인과 거꾸로 해석 차단
  - 우선주(끝자리 5/7/9) 자동 감지 → 보통주 현재가 fetch → 할인율 계산
  - 프롬프트 판단 절제 규칙 4건 (PBR 절대값 단정/거래량 미세변동/우선주 특이/오탈자)

v2.2.168: 재패키징 (별개 Datacollect bridge 수정과 함께 깨끗한 설치본).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 14:59:34 +09:00
koriweb d206293a19 feat(stocks): v2.2.160-161 — 저평가 강조 + 224일선 회복 + 낙폭과대 키워드
영상(주식단테 시리즈) 기준을 /stocks discover에 정량 매핑:

v2.2.160:
- 저평가 키워드 2단계 추가 (PBR ≤ 1.0 = 저평가, ≤ 0.7 = 초저평가)
- 정렬 타이브레이커: 통과 키워드 수 desc → PBR asc
- 224회복 보너스 (가격 only): MA224 돌파 + 최근 30일 중 5일+ 아래에 머문 적
- yahooClient: fetchYahooHistory + evalMa224Recovery 신설

v2.2.161:
- 224회복 거래량 검증 추가 (최근 5일 평균 ≥ 60일 평균 × 1.2) — 거짓 돌파 필터
- 신규 낙폭과대 키워드: 1년 고점 대비 -25% AND 60일 저점에서 +10%
- yahooClient: YahooHistory에 volumes, evalDropRecovery 신설

chronicle: ADR-0025 추가.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 10:10:09 +09:00
g1nation 323537e12b chore: chronicle.config.json 자동 갱신
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 22:53:20 +09:00
g1nation fc2bf0d74e docs: architecture.md Purpose 섹션 최신화
v2.2.158 기준 — 자동 scan 섹션은 이미 최신 (395 files, 25 modules).
Purpose 섹션 (사용자 편집 영역) 을 _TODO_ → 실제 내용으로:

- Top-level 동작 흐름 다이어그램 (User → webview → chatHandlers →
  AgentExecutor → handlePrompt phases / executeActions / LLM I/O)
- 8개 핵심 디자인 패턴 (god-file 분해, 대화 연속성, slash 시스템,
  Stocks feature, 5-Layer Memory, Company 모드, Context budget,
  Cloud LLM routing)
- 진입 파일 5개 + 활성 작업 (2026-05) 정리

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 10:03:12 +09:00
g1nation 0a97324f1b feat: v2.2.92 → v2.2.158 — god-file 분해 + Stocks feature + 대화 연속성
R56–R59: agent.ts 2731→1529줄 god-file 분해 (25 modules)
  · attrParsers + LLM 메서드 8개 (callNonStreaming, streamChatOnce 등)
  · executeActions 415줄 → 8 handler 그룹 (file/run/list/brain/calendar/sheets/tasks)
  · handlePrompt 1100줄 → 7 phase 모듈 (system prompt + budget + autoContinue 등)

R50–R55: extension.ts 1145→349줄 (telegram/settings/provider commands 분리)

Stocks feature 신규: /stocks slash command (v2.2.152~158)
  · .astra/stocks.json 저장소 + Yahoo Finance 현재가 갱신
  · 8 키워드 필터 (ROE/성장성/유동성/수익성/영업효율/기술력/안정성/PBR)
  · Naver 시가총액 페이지 JSON API (m.stock.naver.com) 발굴
  · LLM Top 5 매력도 분석 + Telegram 자동 보고서
  · KST 09:00/15:00 watcher 자동 모니터링

대화 연속성 (v2.2.150~157):
  · [PRIOR TURN CONCLUSION] block 으로 직전 결론 anchor
  · thin follow-up 분류 → boilerplate 헤더 suppression
  · slash 명령 결과 chatHistory mirror (capture wrapper)
  · echo/parrot 금지 system prompt rule

기타: /stocks 슬래시 자동완성 dropdown UI, Naver JSON API 전환 (cheerio 제거)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 09:59:32 +09:00
g1nation 4153f640c2 feat: v2.2.83 → v2.2.91 — info prompt 강화 + 사용자 노출 설정 + 답변 포맷 정리
[v2.2.83] /youtube info 프롬프트 강화
- 비유 방향 보존 룰 (Hugging Face=자료실 같은 짝 뒤집기 방지)
- 신뢰도 라벨 4종 ([근거 명시] / [화자 주장] / [가정] / [정리자 추론])
- 타임스탬프 fail 룰 (인용·구간 요약 모두 mm:ss 필수)
- "정리자 노트" 별도 섹션으로 추론 격리

[v2.2.85] polishPersona self-check 5가지
- 정리·리뷰·요약 답변 출력 직전 머릿속 체크:
  (1) 사실 오류  (2) 없는 내용 추가  (3) 뉘앙스 유지
  (4) 중요도 비례  (5) 중복 제거

[v2.2.86] chunkedSwitchTokens 절대 임계값 게이트
- 입력 < 50k 토큰이면 키워드·길이 트리거 무시하고 단일 호출
- 큰 컨텍스트 모델(131k+)에서 chunked 과잉 발동 방지

[v2.2.87] MAX_SECTIONS 5→3 cap
- 총 호출 7회 → 5회 (outline + 3 section + polish)
- 사용자 피드백 "6+회는 과하다"

[v2.2.88] 이모지 사용 금지 룰
- polishPersona / directPersona / sectionPersona 모두 적용
- 사용자 피드백 "이모지는 시각 노이즈"

[v2.2.89] 사용자 노출 설정 두 항목
- chunkedMaxSections config 신규 (default 3, 1~10 clamp)
- MAX_SECTIONS_HARD_CEILING (10) 으로 안전망 격상
- Astra Settings 패널 "고급" 섹션에 두 슬라이더 노출

[v2.2.90] 가이드 문구 단순화
- "작은 모델은 낮추라" 문구 빼고 일관되게 50000 권장으로

[v2.2.91] 답변 포맷 가독성 fix
- persona 의 "TL;DR" 표현 전부 "한 줄 요약" 으로 단일화
- stripMarkdownFormatting 에 헤더 후 빈 줄 강제 삽입
  (marked.parse 가 라벨·본문을 별도 단락으로 인식 → 시각 분리)

[테스트] 400/400 통과 (resilience_stress + chunked flow + MAX_SECTIONS cap 등)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 14:12:56 +09:00
g1nation ded3eea7ce feat: v2.2.74 → v2.2.82 — chunked writer + 코드 리뷰 패치 + /youtube 확장
주요 변경:

[chunked writer 아키텍처 (v2.2.74~v2.2.75)]
- 5-stage 다중 에이전트(planner/researcher/reflector/writer/synthesizer)
  파이프라인 제거 → 단일 ChunkedWriter 의 outline → section[N] → polish
  3-step 으로 교체. 본문 분석에서 추상화 손실 / 토큰 폭증 문제 해소
- 답변 길이 자동 분기: 짧은 prompt 는 fast-path direct 1회 호출,
  본문 분석은 chunked. outline 빈 배열도 direct 폴백

[코드 리뷰 9개 항목 일괄 패치 (v2.2.76)]
- /research polling hang 방어 (heartbeat + status 정규화 + 연속 실패 abort)
- 회사 모드 dispatcher abort 신호를 AIService.chat 까지 전달
- bridgeFetch 에 onHeartbeat 콜백 도입 (slow endpoint 사용자 친화적)
- dead code 정리: reflectionPersister.ts 제거 + enableReflection 등 좀비 config 키
- parseOutline 의 empty vs fallback reason 명시적 분리
- chatHandlers 의 회사 모드 케이스 ~325줄을 src/sidebar/companyHandlers.ts 로 분리
- Intent Alignment 라운드 한도 도달 시 smart 모드 자동 진행
- LM Studio doSwitch unload 실패 시 currentModel 정리 + load 강행
- retrieval informationDensity → queryCoverage 정합화

[/youtube 채널 지원 (v2.2.77~v2.2.82)]
- 채널/플레이리스트 URL 자동 감지 + n:N 으로 영상 개수 지정 (최대 50)
- 채널 루트 URL 에 /videos 탭 자동 append (yt-dlp enumeration 정상화)
- 영상별 순차 처리 (queue 패턴) + i/N 진행 표시 + 마지막 통계 요약
- mode:info / mode:benchmark / mode:both 분석 모드 분기
  - info: 영상 내용을 지식 카드로 추출 (튜토리얼·강의·뉴스용)
  - benchmark: 4-렌즈 대본 역기획서 (콘텐츠 제작 벤치마크용)
  - both: 둘 다 (기본)
  - bare keyword 도 허용: /youtube <url> n:1 info
- bridge 에러 메시지 [object Object] 깨짐 수정 (구조화 에러 추출)
- "패키지 없음" 등 환경 의존성 에러에 자동 가이드 첨부

[Astra: Setup Datacollect Dependencies 명령 추가 (v2.2.80)]
- Python 자동 감지 + yt-dlp / youtube-transcript-api 자동 설치
- macOS PEP 668 환경 자동 폴백 (--user --break-system-packages)
- /youtube 등에서 패키지 미설치 감지 시 "Install Now" 버튼 notification

[테스트]
- tests/agentEngine.test.ts 를 chunked flow 에 맞춰 전체 재작성
- tests/resilience_stress.test.ts Scenario B/D 를 role-aware mock 으로 갱신
- 399/399 통과

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 23:13:21 +09:00
g1nation 0712014fcb chore: v2.2.73 — ASTRA-DEBUG 로그 레벨 + webview CSP font-src 보강
- ASTRA-DEBUG 정상 흐름 로그를 console.error → logInfo/console.log 로 강등
  (chatHandlers, extension, slashRouter): DevTools에 ERR로 찍히던 오탐 제거
- sidebar webview에 명시적 CSP meta 추가 + font-src에 data: 허용
  (sidebar.html, sidebarProvider._getHtml): VS Code outer iframe이 codicon.ttf를
  data:font/ttf 로 inject하면서 기본 CSP에 막혀 매 prompt 마다 violation
  경고가 찍히던 문제 해소
- 누적된 LM Studio / agent / 컨텍스트 매니저 / 테스트 갱신 동반

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 15:52:19 +09:00
g1nation 36db170844 feat: v2.2.64 — LM Studio 모델 발견/에러 표시 + macOS 셸 호환성
- LM Studio 모델 dropdown을 SDK system.listDownloadedModels('llm') 으로
  조회하도록 변경. REST /v1/models 는 JIT 옵션이 꺼져 있으면 로드된 모델만
  반환하여 macOS 환경에서 dropdown 이 비거나 fallback 한 줄만 남던 문제 해결.
  SDK 실패 시 REST 로 자동 fallback.
- LM Studio 로드/언로드 실패를 readyBar 의 영속 segment 로 표시. 모델을
  다시 선택하면 clearLmStudioError() 로 해제.
- src/security.ts: PowerShell '&&' rewrite 를 win32 에서만 수행. macOS/Linux
  에서는 'if (\$?) { ... }' 가 zsh/bash 문법 오류라 명령 자체가 깨졌음.
- src/utils.ts: system prompt 에 OS 별 [ENVIRONMENT] 블록 동적 주입
  (셸/경로 스타일/체이닝 연산자). 'cd E:\\... ; ...' 같은 Windows 전용
  예시를 macOS 에서 그대로 따라하던 회귀 차단.
- 테스트 mock 에 listDownloaded() 추가.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 09:37:29 +09:00
koriweb 49f941386f feat: v2.2.63 — 한국어 오타 최소화 (채팅 temperature 설정 + anti-glitch 샘플링)
- streamer.ts: LM Studio SDK 호출에 topP/topK/minP/repeatPenalty 추가
  — 저확률 오답 토큰을 잘라 한글 음절 깨짐(붕괴→붕점) 억제
- 채팅 기본 temperature 0.7 → 0.3 (분석/업무형 답변 안정화)
- 신규 설정 g1nation.chatTemperature — Settings 패널 '고급' 섹션에서
  조절 가능 (config.ts / settingsPanelProvider / settings-panel.html+js)

chronicle 기록(ADR-0022, ADR-0023) 포함.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 19:09:01 +09:00
koriweb b0530db6f4 chore: ASTRA 런타임 기록 갱신
소스 코드 변경 없음 — ASTRA가 자동 생성한 산출물만 포함:
- chronicle: ADR-0021 추가, timeline.md 갱신
- project-context 스캔 캐시 갱신

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 17:00:28 +09:00
koriweb 9cddf2aabc fix(agent): v2.2.62 — 출력 degeneration 방어
- 재시작 감지: auto-continuation이 "이어쓰기" 대신 답변을 처음부터
  재생성하면 버림 → 분석이 두 번 나오던 문제 제거
- degeneration 정리 패스(cleanDegeneratedOutput): 문자 벽(같은 기호 8개+),
  (Note:…) 메타 노트, Candidate records 내부 지시문 누출,
  (질문 의도:…)/[핵심 확인 질문] 누출, 연속 중복 문단 제거

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 16:13:39 +09:00
koriweb 745ebc57f6 Update project files 2026-05-22 15:26:10 +09:00
koriweb 8016ef18fa Update project files 2026-05-22 15:00:14 +09:00
koriweb 132d130ff1 feat(datacollect): /meet 회의록 명령 + 캘린더 자동 등록, 한·영 깨짐 개선
- /meet <txt> — 로컬 회의 녹취를 사실 기반 구조화 회의록으로 합성·저장 (v2.2.53)
- /meet 회의록 액션 아이템을 task별 종일 일정으로 Google Calendar에 자동 등록 (v2.2.55)
  - 날짜 규칙: 명시 날짜·"차주"(+6일)·변환 불가(등록일+영업일 5일, "(미확정)" 꼬리표)
  - handleSlashCommand에 ExtensionContext 배선 (chatHandlers 경유)
- callLmSynthesis: top_p/top_k/repeat_penalty 추가 + 한·영 깨짐 조건부 교정 패스 (v2.2.54)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 19:11:00 +09:00
g1nation dea5953f59 Astra v2.2.52
- 채팅 기록 목록 누락 수정: 후처리 예외로 _saveCurrentSession 이 건너뛰던 회귀를
  try/finally 로 보장, _saveCurrentSession 자체도 throw 방지. 1인 기업 모드 업무
  턴(_runCompanyTurn)도 요청/보고서 쌍으로 기록 (_saveCompanyTurnSession).
- Self-Reflector 실행 검증 크로스플랫폼화: .py 는 python3 자동 탐지, .ts 는 로컬
  node_modules/typescript/bin/tsc 직접 호출.
- 버전 2.2.52 상향 + package-lock 동기화 + 재패키징.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 23:48:39 +09:00
koriweb eeb527c242 feat(datacollect): /youtube 개편·/wikify 신규·출력 위생 (v2.2.48)
- /youtube: 4-렌즈 분석 → 대본(스크립트) 역기획서 포맷으로 개편, 보고서
  앞에 영상 전체 스크립트(Full Script) 출력, 명령어 보조 컨텍스트 지원
- /wikify: 신규 슬래시 명령 — 웹사이트 본문(/api/web-extract)을 P-Reinforce
  v3.0 위키 문서로 합성. 여러 링크 순차 배치 처리, 명세 문서 완전성 규칙,
  위키링크 자동 교정
- Self-Reflector Phase A 기본 비활성화 — [Self-Reflector Check] 내부 검증
  로그가 사용자 답변에 노출되지 않도록
- 슬래시 합성·일반 채팅 시스템 프롬프트에 출력 위생 규칙 추가 — 한·영 토큰
  깨짐 정제, 내부 검증 로그 출력 금지

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 18:34:07 +09:00
koriweb 9e7c7fe605 Astra v2.2.41: /benchmark LLM 4-lens synthesis + Datacollect settings
- /benchmark now runs the full scan -> LLM 3-stage 4-lens synthesis ->
  markdown report pipeline, matching the Datacollect web app output
- Add settings: datacollectSynthesisTemperature (0.1), datacollectCrawlDepth,
  datacollectMaxPages, datacollectSavePath; new "Datacollect" Settings section
- Fix slash result not rendering (missing streamStart) and /benchmark URL
  parsing when natural language is appended
- Rename view container/view ids to g1nation-* to avoid conflict with the
  Antigravity built-in "Connect AI" extension
- Version bump 2.2.34 -> 2.2.41

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 13:22:35 +09:00
koriweb fce6938e1c Bump version to 2.2.34 2026-05-19 19:38:40 +09:00
koriweb 3fb05e7b13 Auto sync connectai update 2026-05-19 19:20:24 +09:00
koriweb 59e0139bbe Auto sync connectai 2026-05-19 19:06:06 +09:00
koriweb 2e2ad36ea9 Update from Assistant 2026-05-19 17:40:21 +09:00
koriweb 0834608f7e Bump version to 2.2.27 and update package 2026-05-18 16:36:41 +09:00
koriweb 26fdce6525 Update 2026-05-18 12:14:27 +09:00
g1nation 86cacaeb03 Update ConnectAI codebase 2026-05-18 08:15:01 +09:00
g1nation 88664c7c6e v2.2.19: Cloud Model Providers Support (OpenRouter, Anthropic, Gemini) 2026-05-16 23:34:35 +09:00
g1nation c7b596f17a v2.2.18: Dynamic Office Auto-Layout & Legacy Cleanup 2026-05-16 23:13:40 +09:00
g1nation 84b2b0670d v2.2.17: Google Service Control & Astra Office Flow Layer 2026-05-16 22:51:15 +09:00
g1nation 961e2cb4ea v2.2.16: Astra Office UI Overhaul & Operations Floor 2026-05-16 22:21:09 +09:00
g1nation 9ca95ab997 v2.2.15: Astra Office Refactor & Multi-Service Integration 2026-05-16 22:07:06 +09:00
g1nation 9dcc98ad33 v2.2.14: Advanced Pixel Office Customization & Face Directions 2026-05-16 20:11:57 +09:00
g1nation c4f01fd6af v2.2.13: Pixel Office Interactive Editor & Core Refinement 2026-05-16 13:18:49 +09:00
g1nation dea106ce68 v2.2.12: Sync & Visual Polish Expansion 2026-05-16 12:38:39 +09:00
koriweb 6f098e0ecc chore(release): v2.2.11 - Cross-Project Build Optimization & Stability Enforcement 2026-05-15 20:50:21 +09:00
koriweb 72412450c3 feat: v2.2.3 - Stability, Self-Reflector & Intent Alignment
- 버전 2.2.3 상향 및 PATCHNOTES.md 업데이트

- [신규] src/features/selfReflector/ - 성찰 실행/검증/프롬프트 모듈 추가

- [신규] intentAlignment.ts, intentClassifier.ts - 의도 정렬 시스템 추가

- [신규] pixelOfficeState.ts - 픽셀 오피스 상태 관리 추가

- sidebarProvider, dispatcher, chatHandlers 핵심 로직 최적화

- astra-2.2.3.vsix 패키지 생성 완료 (298 tests PASS)
2026-05-15 14:16:14 +09:00
g1nation ed7e497194 chore: sync project context and chronicle metadata 2026-05-14 23:31:25 +09:00
g1nation cd22da8735 Release v2.2.1: Autonomous Task Resumption & Engine Resilience 2026-05-14 23:27:51 +09:00
g1nation e86e3177c7 Release v2.2.0: Milestone - Human-Centric UI & Workflow Evolution 2026-05-14 22:58:45 +09:00
g1nation d9d89e6db7 Release v2.1.9: Immersive onboarding and UX transformation 2026-05-14 22:39:13 +09:00
g1nation 6b10d002fa Release v2.1.8: Company Agent roster overhaul and UI polish 2026-05-14 22:25:48 +09:00
g1nation ac0085ab53 Release v2.1.7: Version up and packaging 2026-05-14 22:04:08 +09:00
g1nation 05d05a392c Resolve conflicts by preferring remote changes 2026-05-14 21:58:59 +09:00