01
전체 이력 재점검과 보완
189개 커밋으로 1.115.6~1.121.0을 발행했습니다. 세션 보안 감사(Audit PR-3: 토큰 무효화, 실시간 WS 세션 취소, refresh 재사용 감지)와 WebSocket 앱 레벨 핑/퐁 및 죽은 소켓 감지 후 재연결 abort 복구, DGX 모델 ID와 vLLM 서빙 이름 일치 배포 및 Qwen 3.8 Flash Next 실측 프로필, 20분 긴 문맥 LLM_TIMEOUT 상한, Fontsource 기반 자체 호스팅 웹 폰트 전환 외에도 Knowledge Runtime 2.0(공간별 색인 분리 Migration 006, actor-byok 임베딩 키 정책, 공간 재색인과 실패 문서 자동 재수집, /api/health 관리자 버전/빌드)을 확립했습니다.
2026-10-24에 main cbf93635의 전체 도달 가능한 이력을 다시 확인했습니다. 집계는 KST 월요일 00:00부터 일요일 23:59:59까지 커밋일 기준이며 병합·릴리스 커밋과 병렬 브랜치의 별도 커밋을 포함합니다. 커밋 수는 기능 수가 아닙니다. 아래 기록된 테스트·운영 실측은 당시 소스 기록이며 이번 수정에서 다시 실행한 결과가 아닙니다.
02
개발 현황
- 인증 및 세션 보안 감사(Audit PR-3)를 완결했습니다. 계정 로그아웃이나 권한 변경 시 토큰을 즉시 무효화하고, 연결 중인 WebSocket 세션을 실시간 폐기(WS revocation)하며, refresh 토큰 재사용 감지 시 관련된 모든 세션을 만료 처리하도록 강화했습니다(2b9e92d2).
- WebSocket 연결 생존성과 작업 중단 복원력을 개선했습니다. 앱 레벨의 ping/pong 하트비트를 도입해 네트워크 단절로 멈춘 데드 소켓을 능동 감지하고, 소켓 재연결 뒤 보류 중이던 abort 요청을 자동 재전송합니다. 챗 비교 레인(compare-lane)에서도 재연결 시 Stop 상태를 유지하고 스트림 식별자(streamID)에 안전하게 바인딩했습니다(1239302a, d8f93a86, 16d9b2b8, 0b8c2ab1, bb84d236, e4b10098).
- 에이전트 태스크 안정성 관리와 운영 편의를 보완했습니다. 부팅 복구 시 고아 작업을 주차하거나 닫기 전 만료되었거나 본인이 소유한 lease인지 검증을 강제(PR #1473)하여 다른 워커의 활성 작업을 침범하지 않도록 격리했습니다. 관리자 화면의 사용자 목록을 가입일순으로 정렬하고, 외부 docker compose 자체 env 파일을 보존하며, eslint 루트 설정에서 .worktrees 폴더를 무시하도록 정리했습니다(38566665, 241f4a1a, 103cf94b, 713e2478, 9b635c1b).
- DGX 모델 ID 체계 일치와 20분 긴 문맥 추론을 지원합니다. vLLM이 서빙하는 정식 이름에 맞춰 DGX 모델 ID를 앱과 게이트웨이 전반에 일치시키고 레거시 로컬 ID를 정식 ID로 해석하도록 지원했습니다. qwen3.8-flash-next 실측 프로필을 추가하고, 배포 스크립트(openmake_llm.sh deploy)가 모델 이름을 게이트웨이와 동기화합니다. 기존 300초 fetch 제한을 해제하고 LLM_TIMEOUT을 최대 20분(1200초)으로 상향하여 긴 문맥 추론을 안정적으로 처리하며, 문맥 한도 초과 시 413 상태코드를 명확히 반환합니다(9126e70c, a20b025b, 02344a8e, 968dcd2b, 2a0a6212, e00fc8a9, 01bbc038, 3df42264).
- 웹 글꼴 자체 호스팅과 개발 환경 설치 표식 기준을 개선했습니다. Google Fonts 외부 CDN 의존성을 제거하고 fontsource 패키지를 통해 웹 폰트를 자체 호스팅하여 오프라인 및 빌드 안정성을 확보했습니다. 'omk dev up' 실행 시 의존성과 공용 패키지 변경 여부를 마지막 설치 표식 기반으로 정밀 비교하도록 개선했습니다(9065bd59, 84b24036, 3cecdb7b, fc305260, f8736fce).
- Capabilities 키 정책과 Actor-BYOK 임베딩을 선언했습니다. capability 키 정책에서 text.embed를 actor-byok로 지정하고, 공급자 키 거절을 플래그(HttpCallError.keyRejected)로 처리하여 불필요한 재시도 대신 명확한 거절 사유를 반환하며, 사용자 키 기반 실행 슬롯 안내를 보강했습니다(4323cf6d, 67bebdba, fd25a0ff, 28283302).
- Knowledge Runtime 2.0을 구축하고 공간별 색인 격리를 완료했습니다. 마이그레이션 006을 적용해 공간별 임베딩 색인 고정, request_params 보존, ready 색인 고유성을 확립했습니다. 워커 수집 파이프라인에서 행위자 키를 전달하고 키 누락·거절 시 영구 실패로 안전하게 분기합니다. 검색 시 공간 색인과 검색자의 키를 사용하며 키 미보유 시 출처 0건과 함께 사유를 명시합니다. 전역 admin/reindex를 폐지하고 공간 단위 재색인(POST /spaces/:id/reindex)을 신설해 트랜잭션 락으로 동시 요청을 제어하며, 공간 재색인 전환 시 기존 실패 문서를 자동으로 재수집 대기열에 투입합니다(67f380e0, efb666b7, 8d93c9a4, 19745c20, 1c8ec75b, 346cb42f, 605caabf, 08b8a6e1, d51ed041, ad7d35eb, b51d4af5, 3a8ae95d, e8d3c880, b12cebe5).
- 시스템 헬스 엔드포인트를 보강했습니다. /api/health 관리자 조회 시 현재 실행 중인 제품의 버전(version)과 Git 빌드 식별값(build)을 포함하여 모니터링 정합성을 강화했습니다(19f9ed05).
근거 자료
근거
- 이 주간의 저장소 커밋: d4733d37
- 이 주간의 저장소 커밋: 605caabf
- 이 주간의 저장소 커밋: efb666b7
- 이 주간의 저장소 커밋: 8d93c9a4
- 이 주간의 저장소 커밋: 67f380e0
- 이 주간의 저장소 커밋: 4323cf6d
- 이 주간의 저장소 커밋: 84b24036
- 이 주간의 저장소 커밋: 9065bd59
- 이 주간의 저장소 커밋: 968dcd2b
- 이 주간의 저장소 커밋: 9126e70c
- 이 주간의 저장소 커밋: 02344a8e
- 이 주간의 저장소 커밋: 2a0a6212
- 이 주간의 저장소 커밋: bb84d236
- 이 주간의 저장소 커밋: 1239302a
- 이 주간의 저장소 커밋: 38566665
- 이 주간의 저장소 커밋: 103cf94b
- 이 주간의 저장소 커밋: 713e2478
- 이 주간의 저장소 커밋: 2b9e92d2
- 이 주간의 저장소 커밋
- OpenMake 변경 기록
OPENMAKE · APACHE 2.0 OPEN SOURCE
OpenMake