← 목록
AI 2026-07-29 2KB 읽기 3분

brainq:9977 KB인덱스 ↔ crownycode-learn.sh 학습DB 불일치 재동기화 (T33)

개요

집사회 티켓 T33. brainq(crownycode-brain-server.js, 9977) 상주 조회 서버의 HIT율이 crownycode-learn.sh 대비 2.2%로 실측됨. "TCP 서버" 질의가 양쪽에서 동일 HIT 나야 하는데 브레인 서버는 MISS.

근본 원인

두 조회기가 같은 학습.dat(DB_PATH)을 읽지만 매칭 단계 수가 다름:
  • crownycode-learn.sh: 5단 폴백(①정확 ②normalize ③alias(keywords_alias.dat)
④의미어색인 ⑤...)
  • crownycode-brain-server.js(/q): 원래 2단만(①원 주소셀 exact/norm ②±1트릿
이웃셀 exact/norm) — alias·의미어색인 폴백이 아예 없었음

alias DB(keywords_alias.dat, 3124건)에 "TCP서버|TCP서버_빈요청가드_행클라방어|auto|5" 같은 entry가 있어 learn.sh는 HIT:alias(...)로 통과하지만, 브레인서버는 몰라서 MISS. 실제 학습DB(70795줄) 정본 자체는 양쪽 동일 파일 — 인덱스가 아니라 매칭 로직의 불일치였음(파일 불일치 아님).

조치

~/.claude/scripts/crownycode-brain-server.js 수정:
  1. keywords_alias.dat을 기동/재로드 시 전역 Map(aliasMap)으로 로드
  2. globalExact 전역 인덱스(주소 파티션 무관) 추가 — canonical이 질의와 다른
3진 주소 셀에 있어도 놓치지 않게
  1. lookup()에 4번째 폴백 단계로 alias→canonical 재조회 배선
  2. /q 응답 태그에 HIT:상주alias(canonical) 추가

검증

  • "TCP서버" 질의: learn.sh HIT:alias(TCP서버_빈요청가드_행클라방어) /
brainq HIT:상주alias(TCP서버_빈요청가드_행클라방어)|AAT동일 HIT 확인
  • alias DB 표본 20건 무작위 추출 → 양쪽 HIT/MISS 일치 18/20(90%)

관련 파일

  • /Users/ef/.claude/scripts/crownycode-brain-server.js (수정)
  • /Users/ef/.claude/scripts/crownycode-learn.sh (참조, 미수정)
  • /Users/ef/Downloads/CrownyTVM/crownycode-agent/intent/keywords_alias.dat (참조)
  • /Users/ef/CrownyOS/crownyc/data/crownycode/패턴/학습.dat (DB_PATH, 정본 1개 — 파일 자체는 원래 동일)

잔여 이슈

  • 표본 2/20 불일치 — learn.sh 5단계(의미어색인 UIMI_INDEX) 폴백이 브레인서버엔
아직 미이식. 다음 티켓 후보.
  • alias 파일 자체의 mtime 감시 재로드는 학습DB와 동일 3s 디바운스에 얹혀 있어
alias만 갱신될 때 최대 3s 지연 있음(허용 범위로 판단, 별도 조치 안 함).