← /log
2026-04-01

개발일지

1,137 words·raw from wai-vault/02-DevLog

2026-04-01 개발일지

보안 (완료)

  • SSH 비밀번호 <REDACTED> 로 통일 (rotation 예정 — 05-Reference/ROTATE-2026-04-23.md)
  • server-init.sh ufw disable 제거
  • Gateway pairing 해결 (paired.json 수동 등록, full scopes)

시스템 (완료)

  • deploy 파이프라인: git pullgit fetch + reset --hard origin/master 교체 (conflict 자동 해결)
  • Claude Code 토큰 자동 갱신 구현 (1시간 간격, CLI + API 2중 폴백)
  • Smart Router: 에이전트 → OpenClaw(OpenRouter, 토큰 만료 없음) / 코드 → Claude Code
  • Self-check 23항목 자동 검증 시스템 (배포 10초 후 자동 실행, 자동 복구)
  • Cascade 트리거 4종 (revenue_drop, security_alert, site_down, new_inquiry)
  • Agent trust scoring (0-100, 작업 성공/실패 시 자동 조정)
  • Bridge proxy 엔드포인트 (/proxy/paljalab, /proxy/marketing)

홈페이지 — AI팀 파견 페이지 대규모 수정

  • 가격표 전면 수정 (KR/EN/JA 3개 언어)
    • KR: 600/500/450/350만원
    • EN: $4,500/$3,800/$3,400/$2,600
    • JA: ¥60万/¥50万/¥45万/¥35万
  • "최소 1년 계약" → "월 단위 계약" (1개월부터 가능, 장기 할인)
  • "상주" 문구 전체 삭제 → "100% 원격" 전환
    • meta description, hero 텍스트, schema.org, FAQ 전부 변경
  • FAQ 수정: "상주 필수?" → "운영 방식은?" / "중도 해약?" → "계약 기간은?"
  • 수익 구조 확정: 1딜 600만원 (이사님 300 + 대표님 150 + 지수님 150)

사내 게시판 승인 시스템 — EXE 빌드

  • 기술: Electron + React + Vite + TailwindCSS + SQLite + Telegram Bot
  • 기능: 5W1H 게시글 → 텔레그램 승인/반려 → 이력 관리 + CSV 내보내기
  • npm install → vite build → electron-builder
  • 에러 수정: call-bind-apply-helpers 모듈 누락 → ASAR 비활성화로 해결
  • EXE 위치: Downloads/board-approval-system/release/win-unpacked/사내게시판.exe
  • 기본 계정: admin / admin123

발견된 이슈

  • Nemotron Free 모델 죽음 → 11개 에이전트 타임아웃 (교체 대기)
  • FTP 경로 이슈: Edit 도구의 /tmp/와 bash의 /tmp/가 다름 (C:\tmp vs MSYS tmp)
  • WebFetch 15분 캐시 → 업로드 직후 검증 시 구버전 반환

옵시디언/메모리

  • master-todo-20260401.md 전체 업데이트 (완료 16개 + 남은 작업 정리)
  • project_wai_todo.md 동기화
  • 수익 구조 확정 내용 추가

사내 게시판 승인 시스템 — 전체 업그레이드

  • EXE 빌드: ASAR 비활성화로 모듈 누락 해결
  • 6하원칙 → 제목+내용 간소화
  • 카테고리 5개: 마케팅/개발/디자인/일반/수정요청 (각각 고유 템플릿)
  • 마감일 필수, 긴급 아니면 최소 2일 뒤
  • 첨부파일 권장 (강제 x)
  • 진행상태: 대기→수정요청→승인→진행중→납품→완료
  • 수정요청(코멘트): 관리자 보완요청 → 직원 재제출
  • 에이전트 자동배정: 카테고리별 매핑
  • 결과물 납품 루프: 에이전트 납품 → 직원 수락/재작업
  • API 서버 (port 18791): 에이전트 연동용
  • 대시보드 연동: watoneai.cafe24.com 게시판 탭 추가
  • Bridge 동기화: 5분마다 보드 현황 자동 POST
  • 프리미엄 UI: 글래스모피즘, 그라디언트, 애니메이션
  • GitHub: 1or4/board-approval-system (Private)
  • 텔레그램: "게시판 승인" 토픽 (ID: 278) 생성

Nexus 추가 작업 (4/1 오후)

  • 브랜드: 사내게시판 → Nexus 리브랜딩 + [company] 로고 적용
  • 중앙 DB: 로컬 SQLite → VPS MySQL 전환 (앱에 데이터 없음 = 보안)
  • SSL: Let's Encrypt (watoneai.cafe24.com HTTPS)
  • 텔레그램: VPS 서버측 봇 폴링 (3초 간격, 승인/반려/사유)
  • Board API: VPS에 CRUD 엔드포인트 + 토큰 인증
  • 대시보드: watoneai.cafe24.com에 게시판 탭 추가
  • 카테고리: 한글 ENUM → 영어 키(marketing 등) + UI에서 번역 (인코딩 근본 해결)
  • 일본어: i18n 전체 지원 (120+ 키, 로그인/사이드바 언어 토글)
  • UI: Noto Sans KR + AI 티 완전 제거 + 네이비 다크모드
  • 다크/라이트: 47개 텍스트 색상 전면 분리
  • 먹통 버그: Promise.all 에러 핸들링 + 모든 async try-catch
  • 관리자: 모든 게시글 삭제 가능

남은 작업

  • Nemotron Free 모델 교체 (11개 에이전트)
  • AI팀 페이지 UX/UI 개선 (톤 변경 + 디자인)

오후 세션 — 에이전트 시스템 전면 수정 + 코드 리뷰 (Claude Code)

에이전트 시스템

  • 텔레그램 409 영구 해결: polling → Webhook 전환 (HTTPS SSL 발급)
  • A2A 중계 대화 API (/a2a): Bridge가 에이전트 간 순차 호출 + 결과 전달
  • auth-profiles.json: Bridge 시작 시 23개 에이전트 자동 배포
  • OpenClaw 3.28 → 3.31 업데이트
  • Nemotron :free → 유료 ($0.10/1M) — content:null 해결
  • CEO-Vision 모델 ID 오타 수정 (4-6 → 4.6)
  • 에이전트 timeout 120초로 증가
  • AGENTS.md 22개 전부 OpenClaw 실제 API 형식으로 변환

대시보드 실시간 연동

  • 에이전트 점수 (scores API 30초 폴링)
  • 활동 로그 (events API, ISO→KST 변환)
  • 서버 상태 (CPU/RAM/Disk/Uptime)
  • 뇌 맵 SVG 시각화 (7영역 원형 노드 + 축삭 연결선)
  • 뉴런 트리 인증 수정 (Bridge 토큰 fallback)
  • Overview 숫자 동적화 (agents.length 등)
  • 하드코딩 가짜 데이터 전부 제거 (logEntries, loginHistory, Fail2Ban)
  • initDashboard 크래시 방지 (renderNeurons try-catch 격리)
  • /dashboard/ 404 → 리다이렉트
  • undefined 에러 해결 (var 호이스팅 setTimeout defer)

전체 코드 리뷰 (4개 병렬 에이전트)

  • claude-bridge.js: CRITICAL 3 / HIGH 8 / MEDIUM 14 / LOW 10
  • dashboard/index.html: HIGH 5 / MEDIUM 14 / LOW 20+
  • api.php + 설정파일: CRITICAL 1 / HIGH 8 / MEDIUM 10+
  • 에이전트 + 스킬: HIGH 1 / MEDIUM 5 / LOW 4
  • 총 113건 이슈 → 전부 수정

보안 수정

  • 비밀번호 SHA-256 → scrypt (자동 마이그레이션)
  • CORS * → watoneai.cafe24.com
  • XSS: escapeHTML single quote + 뉴런 path + innerHTML
  • Path traversal 방어 (api.php 4개 핸들러)
  • /board-sync 토큰 검증
  • POST /auth/logout 추가
  • runClaude/runAgent 이중 resolve 방지

인프라

  • SSL 인증서 발급 (Let's Encrypt, watoneai.cafe24.com HTTPS)
  • 텔레그램 Webhook 방식 전환 (409 영구 해결)
  • 토큰 자동 동기화 (Windows 30분 스케줄러 + Stop hook)
  • POST /token-sync 엔드포인트
  • auto-evolution.json 런타임 로드
  • brain 경로 환경변수화 (WAI_BRAIN_PATH)

NeuronFS

  • 자동 뉴런 생성 시스템 (에이전트 활동 → 자동 禁/推/必 뉴런)
  • 에러 3회 반복 → 자동 bomb 시그널
  • 점수 +변동 → 推 뉴런, -변동 → 禁 뉴런
  • POST /neuron Bridge API (add/signal/counter/compile/validate)
  • 오늘 교훈 12개 뉴런 수동 추가
  • 78 → 95뉴런 (자동 생성 포함)

스킬 정리

  • competitor-monitor → competitor-spy 통합
  • MCP 미등록 스킬 정리 (DART, Alpha Vantage 제거)
  • 담당 에이전트 미지정 2개 수정

Webhook 구조 최종 정리 (심야)

  • board-api.js: getUpdates polling 코드 완전 삭제 (startTelegramPolling/stopTelegramPolling 제거)
  • board-api.js: handleTelegramUpdate + hasPendingRejection export 추가
  • claude-bridge.js: /telegram-webhook에서 승인/반려 콜백(ba:/br:) → board-api로 위임
  • claude-bridge.js: 반려 사유 텍스트도 hasPendingRejection 체크 후 board-api로 위임
  • 결과: 단일 Webhook 엔드포인트로 전체 텔레그램 통신 통합 (polling 0개)

Nexus 에이전트 실제 연동 (심야 세션 2)

  • board-api: onApproved 콜백 훅 — 승인 시 Bridge에 트리거
  • board-api: 에이전트 매핑 수정 (ad-optimizer→ad-onboarder, code-architect→cto-tech, ui-designer→creative-spark)
  • bridge: Nexus 에이전트 실행 루프 — 승인→in_progress→에이전트 실행→납품→delivered→알림
  • 폴백: 지정 에이전트 실패 시 CEO-Vision 재시도
  • 진행률 실시간 업데이트 (10→30→90→100%)
  • 텔레그램 납품 완료/실패 알림
  • TODO-마스터 구조논의 최종v4 기준으로 전면 재편 (제품화 8단계 로드맵)

VPS 접속 이슈

  • 이 PC에 SSH 키 없음 + 서버 publickey only → 접속 불가
  • Bridge 502 (서비스 다운) → /deploy API도 불가
  • 해결: 내일 서버에서 비밀번호 인증 활성화 (sed PasswordAuthentication yes)
  • DEPLOY-TODO.md에 절차 정리 → GitHub push 완료

GitHub 커밋 (w-ai-agents, 22건)

62d08b3, 0b28527, e143a6d, 3e14749, aebe58e, d5f34b3, ba5a612, 48b37e3, 44890ad, 8382b04, 0f60572, 165118a, ff99602, 891ab4f, e56a12d, ee52894, aced728, 957904e, 41fd9bc, 30ab97d, 315d3f7