2026-04-22
Sprint F (서버 오류 일괄 수정) — 마무리 + F9 신규
이전 세션에서 F1~F8 까지 완료 후 F3 배포 검증 중 /audit/verify 가 신규 hash_mismatch 를 노출 → F9 로 후속 처리.
F9 — audit hash chain stringify 순서 정렬
- 버그:
webhook/modules/audit-verify-api.js의verifyChain()이JSON.stringify(entry) + lastHash로 raw 를 만들었는데,audit.js log()는JSON.stringify(entry)만 (lastHash 는 entry.prevHash 필드로 이미 포함). → 첫 엔트리부터 hash_mismatch. - 2차 버그: 1차 픽스 후
chain_broken신규 발생. 구형 엔트리 (audit.js 가 prevHash 도입 전 기록) 는 prevHash 필드 없음 →storedPrev !== lastHash강제 비교 실패. - 최종 픽스:
+ lastHashconcat 제거 (audit.js 와 동일 순서)storedPrev !== undefined && lastHash !== null가드 → 신형 엔트리 간에만 체인 연결성 검증
- 결과:
/audit/verify→{"ok":true,"count":41}전 엔트리 통과 - 커밋: ea54049 + aa0d936
Sprint D (Agent / Dashboard 미완 4종)
형 PC 업그레이드 복귀 후 "agent 랑 dashboard 안 한 것들 한 번 밀어보자" → 테이블로 정리 후 일괄.
D1 — BrainHub 뉴런 trace 이력 drawer (board:172)
- 백엔드 (
webhook/modules/neuron-trace.js):/neuron/trace[?path=&limit=]path prefix 필터, max 500/neuron/corrections[?path=&limit=]동일 시그니처- 공용
readJsonlTail()+parseQuery()헬퍼
- 프론트:
lib/api.js시그니처 확장 —getNeuronTrace(path, limit),getNeuronCorrections(path, limit)- 신규
components/neurons/NeuronTraceDrawer.jsx(145줄) — trace + correction 통합 timestamp 정렬, 탭 분기 (전체/발자국/교정), 새로고침 NeuronBrowser.jsx— 뉴런 행의 이름 영역 button 화 →useDrawerStore.open()(DrawerHost 패턴)
D2 — AgentDetail 차등 컴파일 뇌 상태 시각화 (board:173)
- 백엔드 신규
webhook/modules/agent-brain-api.js(87줄):GET /agents/:id/brain—agent_brains/<id>.md메타 (size/mtime/lineCount/sections) + 첫 80줄 미리보기parseSections()—^#{1,3}헤더 추출 (max 50)- claude-bridge.js wiring (init + handle dispatch)
- 프론트:
lib/api.js에getAgentBrain(agentId)추가- 신규
components/agents/BrainStatePanel.jsx(167줄) — 메타 그리드 + 그룹 섹션 헤더 + 미리보기 토글 AgentDetail.jsx에<BrainStatePanel agentId={agentId} />임베드
- 현 상태:
/home/wai/w-ai-brain/agent_brains/디렉토리 미생성 (sync_brain.py --all-agents 미실행). UI 가 "exists:false → sync_brain.py 실행 필요" 안내 표시. 형이 한번 돌리면 22 에이전트 자동 채워짐.
D3 — RxDB syncFromServer 최적화 (board:143)
- 코드 보니 이미 80babf5 (4/13) 에서 처리 —
find().exec()+Map캐시로 N+1 제거. TODO.md 마크만 갱신. 작업 없음.
D4 — 디자인 리파인 일부 적용 (Stage P1 축소판)
- 컬러 토큰 swap (
src/index.css):- light:
--nexus-accent#7C6AFF(purple) →#15803D(forest green-700) - light:
--nexus-accent-hover→#10A37F - dark:
--nexus-accent#22C55E(green-500), hover#16A34A --nexus-accent-muted/--nexus-border-accent비례 변경
- light:
- 폰트 (
tailwind.config.js+index.html):font-sans: Geist → Pretendard (system font 우선, OS 미설치 시 Apple SD Gothic Neo / Noto Sans KR 자동 fallback — Pretendard CDN 추가는 CSP 우회 필요해서 다음 라운드)font-display: Fraunces 신규 (Google Fonts CDN, CSP 안전)
- 워드마크 (
Sidebar.jsx):- 사이드바 'Nexus' 워드마크에
font-display(Fraunces) 적용 - 자간
tracking-[-0.02em]→-0.01em, weightbold→semibold(Fraunces 의 우아한 곡선 살리기)
- 사이드바 'Nexus' 워드마크에
배포
Bridge (서버 재시작 2회)
- F9 1차: ea54049 → 검증 → chain_broken 신규 발견
- F9 2차: aa0d936 →
{"ok":true,"count":41} - D1+D2: f91f950 →
/neuron/trace?limit=3200,/agents/ceo-vision/brainexists:false (정상)
Nexus 대시보드
- board-approval-system: e96ad96 push
npx vite build→ 1.64MB main chunk (gzip 492KB) 변동 미미- 서버 atomic swap:
tar -xzf→nexus-stage→mvswap https://1-234-23-23.nip.io/HTTP 200 응답,index.html에 Fraunces 링크 확인
결과 요약
| Sprint | 항목 | 커밋 | 상태 |
|---|---|---|---|
| F9 | audit verify stringify 정렬 + 체인 검증 | ea54049, aa0d936 | ✅ ok=true 41/41 |
| D1 | 뉴런 trace drawer | e96ad96 + f91f950 | ✅ |
| D2 | 에이전트 brain 패널 | e96ad96 + f91f950 | ✅ (sync_brain 실행 후 자동 표시) |
| D3 | RxDB findOne 최적화 | (이미 80babf5 처리) | ✅ TODO 마크만 |
| D4 | accent green + Fraunces + 워드마크 | e96ad96 | ✅ HTTP 200 |
| O1 | 본 DevLog | (이 파일) | ✅ |
| P1.b | Pretendard npm self-host | 7334d70 | ✅ woff2 200 + CSS 선언 확인 |
| D2.fix | sync_brain.py 허위 완료 마킹 정정 | 214d2f9 | ✅ TODO + 메모리 갱신 |
추가 세션 2 — 정확성 정정 + P1 정식판
형 "태스크 정리하고 디테일하게" 지시 → pending 실태 조사 중 sync_brain.py 서버 부재 발견.
P1.b — Pretendard Variable self-host
- D4 에서 OS fallback 만 걸어둔 폰트를 정식 번들링.
npm i pretendard@1.3.9→src/main.jsx에pretendardvariable.cssimport (index.css 위).- Vite 가
PretendardVariable-*.woff2를dist/assets/에 self-host → CSP 수정 불필요. - 배포 후
https://1-234-23-23.nip.io/assets/PretendardVariable-*.woff2HTTP 200 확인. - 커밋 7334d70.
- Stage P1 (#215) umbrella 도 completed 처리.
D2.fix — sync_brain.py 실태 조사
- D2 배포 후
/agents/ceo-vision/brain호출 결과exists:false. - 서버
/home/wai/w-ai-brain/조사 →sync_brain.py파일 자체 없음,agent_brains/디렉토리 없음. - TODO.md Phase 5-B / 5-C 는 "✅ 4/13 완료" 로 표기됐지만 실태는 미구현 (router.js 주입 코드는 있지만 읽을 파일이 없어 항상 빈 값 반환).
- 정정 반영:
w-ai-agents/TODO.md5-B/5-C ⚠️ 재마킹 (커밋 214d2f9)memory/project_agents_not_operational.md에 "2026-04-22 추가 확인" 섹션
- 원인 추정: 4/13 커밋이 로컬에만 있거나, 서버 파일 시스템에 도달 못함. 또는 경로 이동/삭제. git log 로 확인 안 해서 후속.
새 pending 등록
- Stage S1 — sync_brain.py 서버 복원 (설계+작성, 2~3h) — 22 에이전트 brain 차등 컴파일 로직
- Stage W1.a/b/c — 웹사이트 로고·GA4·Naver (b/c 는 형 계정 발급 필요)
다음 세션 시작점 후보
- Stage S1 — sync_brain.py 복원 (D2 실데이터 연결). 설계 재가 받은 뒤.
- Stage P2 — 디자인 컨셉 deep-dive (한국 정통 / 극미니멀 / 브루탈리즘 / Spatial) — 미결정 장기 과제
- #77 / #207 — 모바일 실기기 점검 (Loren 직접)
- W1.b / W1.c — GA4 측정 ID + Naver 인증 코드 (형 콘솔에서 발급 후 붙여넣기)
- Phase 6 로컬 추론 (Windows PC 기반 Ollama / LM Studio)
추가 세션 3 — 빠른 기술 부채 청소
형 "도메인 안 샀음, 기술적으로 할 수 있는 건 빠르게" → 외부 의존 없는 것만.
T1 — claude-bridge.js 500줄 룰 위배 해결
- 529줄 → 486줄 (43줄 감소). 56줄의 require 블록을
webhook/setup-modules.js(67줄) 로 외부화 + destructure 12줄로 치환. - 사이드이펙트 동일 (순수 require 이동, init 순서/동작 변동 X).
- 서버 배포 후
/health//audit/verify//neuron/trace//agents/ceo-vision/brain//dashboard/crisis모두 200. - 커밋 28ae883.
T2 — npm audit 양 레포
- board-approval-system: 0 vulnerabilities
- w-ai-agents/webhook: 0 vulnerabilities
- F4 (Vite 패치) 이후 clean 유지. 새 작업 없음.
T4 — TODO 허위 pending 정정
- 양 레포 TODO 의 pending 항목 중 "외부 발급 대기" 인데 [ ] 로만 돼있어서 "할 수 있는 일" 로 오인되는 것 정정.
- w TODO L122-124:
biz-lookup.js 관련 3항목→ ⏸️ 국세청 API 키 발급 대기 (서버 모듈 구현됨 확인) - w TODO L240-243:
로고/GA4/Naver/nginx 독립→ ⏸️ 도메인 구매 대기 - board TODO L92-94:
SignupForm 사업자번호 3항목→ ⏸️ 국세청 API 키 대기 - 커밋 e9cf7be (w) + cd23710 (board).
- 남은 '진짜 pending (당장 할 수 있는 코드 작업)': Stage S1 sync_brain.py 복원, Stage P2 디자인 deep-dive, Stage W1.a 로고 디자인.
세션 3 결과
| Stage | 커밋 | 결과 |
|---|---|---|
| T1 Bridge 분리 | 28ae883 | 486/500줄, 전체 endpoint 회귀 ok |
| T2 npm audit | — | 양 레포 0 vuln |
| T4 TODO 감사 | e9cf7be + cd23710 | 6항목 ⏸️ 표기 |
추가 세션 4 — S1 sync_brain.py 복원
조사 결과
brain_w_ai/는 7 영역 × 179 뉴런. 뉴런 = 디렉토리 이름 (必Loren_최종승인,禁서버직접수정등). 내부 파일은N.neuron카운터 (0바이트).neuronfs_linuxbinary 의--emit옵션이 기본 CLAUDE.md 컴파일을 수행하지만, 22 에이전트별 차등 기능은 없음.agent-registry.json의 각 에이전트에keywords배열이 이미 정의돼 있어서, 이걸 기준으로 매칭.
설계 (MVP v1)
- 공통 주입 (모든 에이전트):
brainstem(P0) +limbic(P1) +ego(P5) +prefrontal(P6) - 차등 주입 (keyword 매칭):
hippocampus(P2) +sensors(P3) +cortex(P4). 빈 keywords = 전체. - 출력:
/home/wai/w-ai-brain/agent_brains/<id>.md— frontmatter + 공통/특화 섹션 + Subsumption 참고 - 경로:
w-ai-agents/scripts/sync_brain.py(178줄) — git 관리 + python3 3.10 실행
실행 결과
python3 scripts/sync_brain.py --all-agents→ 22개 전부 생성 (0 skip)- 크기: 1449~1823 bytes (ceo-vision 1785, cto-tech 1458 등)
- 검증:
/agents/ceo-vision/brain→exists:true size:2573 sections:11(D2 UI 가 실데이터 표시 가능)
실행 의미
project_agents_not_operational.md갱신: 차등 컴파일 파일 생성은 이제 정상. 단 "22 에이전트가 이 brain 기반으로 실제 판단한다" 는 여전히 부분 (router.js 가 주입은 하지만 실 실행 엔드포인트 사용 거의 없음).- TODO.md 5-B / 5-C ✅ 재갱신 (D2.fix 세션 2 에서 ⚠️ 로 뒤집었던 것 다시 ✅).
후속
- cron 등록 (optional): 주 1회 또는
neuron_changewatchdog 시 자동 재컴파일. 지금은 수동. - 22 에이전트 실가동 자체는 여전히 별도 과제 (OpenClaw + PC 24시간 가동 + 실제 엔드포인트 트래픽).
추가 세션 5 — 딥리서치 6 Agent 완주
형 "점검 window + 자율진화 루프" 딥리서치 요청 → 6 agent 병렬, 전부 완료. 합성은 내일.
세션 요약
- 총 229 소스 수집 (A급 46 / B급 51 / C급 27 / D급 12 / E급 3+)
- 6 주제: Maintenance+LLMOps / Self-heal+A/B+HITL / 내부 감사 / GTM+ICP / 트라이얼 퍼널 / 규제·인증 / Agentic stack
- 원본:
C:\Users\chyj1\RESEARCH\nexus-maintenance-window_20260422\artifacts\agent_results\
결정적 발견 (요약)
- 업계 전체가 "정기 정비 window" 공식화 X — Nexus 가 "주간 학습→검증→배포" 정례화하면 차별화 포지셔닝. Anthropic 2022 RLHF 논문이 "주간 반복" 공식 정당화.
- NeuronFS 원시 primitives obsolete — Anthropic Memory tool (
memory_20250818) 과 기능 중복. Subsumption 의미론만 방어 가능 → 2주 내 Memory tool 백엔드로 리팩토링 필요 (지연 시 liability). - 22 에이전트 over-engineered — 실제 3~5 에이전트 + 20 Skills 로 충분. C-suite 코스프레는 UI 표시만 유지.
- PIPA CEO 책임제 = 세일즈 킬러 소구점 — 해외 SaaS 사용 시 한국 CEO 매출 10% 벌금. Nexus 국내 호스팅은 법적 방패.
- 중기부 AI 바우처 2억×130건 (Q2) — NIPA 공급기업 풀 등록이 첫 매출 최단 경로.
- ⚠️ PIPA §34 유출 신고 — deadline 4/24 23:59 — 2026-04-21 Wacatac 사건 관련. Loren 감은 "유출 X" 쪽이지만 VPS 로그 감사로 공식 "추정 미해당" 판정서 필수 (위반 시 매출 3% 과징금).
- OpenAI Cookbook 2025-11-04 metaprompt 청사진 — Nexus 의 agent-improver + brain-writer + neuron-proposals 구조의 80% 일치 → "논문으로 나온 구조 운영 중" 내러티브.
내부 감사 — 7 비작동 영역 (Agent 3)
- brain-writer.append — watchdog/improver 미연결
- agent-improver — shared 미초기화 → NPE 예정
- neuron-proposals — JSON vs 디렉토리 경로 이원화
- pattern-tracker — users.status 컬럼 없음 / pending_pattern_executions 테이블 없음
- watchdog payment_failure_streak — disabled
- corrections.jsonl — 쓰기만 있고 로컬 읽기 없음
- 모듈 init 순서 미정의
+ Loren 명시: "22 에이전트 계속 안 돌렸음 + OpenClaw 연결 끊어둠" → Bridge 단독 LLM 호출만 돌고 에이전트 오케스트레이션은 off.
세션 4 결과 + 5
| Sprint/Agent | 결과 |
|---|---|
| P1.b Pretendard | ✅ 배포 woff2 200 |
| D2.fix + S1 | ✅ sync_brain.py 재작성, 22 brain 생성 |
| T1 | ✅ Bridge 486/500 |
| T2 | ✅ 0 vuln |
| T4 | ✅ 6항목 ⏸️ |
| Deep research | ✅ 6 agent, 229 소스 |
내일 (2026-04-23) 착수 순서
- PIPA §34 로그 감사 (최우선, deadline 4/24 23:59) — #246
- 6 agent 결과 → outputs/ Phase 5 합성 (Executive Summary + Roadmap 먼저)
- 우선순위 Sprint 재등록 — R1~R5 내부 수리 + Q2 사업 작업 (중기부 바우처, Pro Most Popular, Aha Moment 계측)
- #247 AI법 UI/약관 (계도 기간 2027-01 까지)
관련 링크
- https://github.com/1or4/w-ai-agents/commit/aa0d936 (F9)
- https://github.com/1or4/w-ai-agents/commit/f91f950 (D1+D2 backend)
- https://github.com/1or4/w-ai-agents/commit/214d2f9 (D2.fix TODO 정정)
- https://github.com/1or4/board-approval-system/commit/e96ad96 (D1+D2+D4 frontend)
- https://github.com/1or4/board-approval-system/commit/7334d70 (P1.b Pretendard)
- https://github.com/1or4/w-ai-agents/commit/28ae883 (T1 Bridge 분리)
- https://github.com/1or4/w-ai-agents/commit/e9cf7be (T4 TODO 감사 — w)
- https://github.com/1or4/board-approval-system/commit/cd23710 (T4 TODO 감사 — board)
- https://github.com/1or4/w-ai-agents/commit/d168ce8 (S1 sync_brain.py 복원)