Commit graph

213 commits

Author SHA1 Message Date
Yun Chan
4b45d33142 관리자 AI 제공자 연결 기능 추가 (claude·codex·agy·openrouter 토큰 붙여넣기 연결)
Some checks failed
API contract / OpenAPI type drift (push) Failing after 12m57s
관리자 /admin/ai 화면에서 provider 토큰(OAuth 액세스 토큰 또는 API 키)을
발급받아 붙여넣으면 DB에 암호화 저장되고, shared-secret으로 보호되는
게이트웨이 내부 엔드포인트로 push되어 실행 중인 엔진 컨테이너에 즉시
적용된다. NAS처럼 게이트웨이가 컨테이너로 도는 환경에서 CLI·로컬 PC
의존 없이 claude_api·openai·openrouter를 연결할 수 있다.

- 게이트웨이: openrouter 어댑터 신설(chat/completions), OAuth 토큰이면
  Anthropic Bearer 헤더, /internal/provider-credentials GET/POST와
  boot_id 기반 재동기화
- API: app.admin_provider_credential 테이블(idempotent DDL), stdlib
  HMAC-CTR+MAC 암호화 서비스(PROVIDER_CREDENTIAL_SECRET, 폴백
  SESSION_SECRET), /admin/providers CRUD·검증 라우트
- 웹: 제공자 연결 패널(저장·검증·해제, 토큰 힌트만 표시), 엔진 선택에
  OpenRouter 추가, api.gen.ts 재생성
- compose: api 서비스에 PROVIDER_CREDENTIAL_SECRET 전달(로컬·NAS)
2026-09-11 14:06:15 +09:00
Yun Chan
6831a79ffb 운영 배포 결과와 기동 확인 절차 보완 2026-09-09 15:00:00 +09:00
Yun Chan
1306c524c1 회기 집계와 기록 복귀 및 감독 근거 링크 수정
Some checks failed
API contract / OpenAPI type drift (push) Failing after 4m46s
2026-09-09 14:41:54 +09:00
Yun Chan
aa951c6c4a docs: 2026-09-08 실배포 및 TDD 불변식 검증 결과 문서 현행화 2026-09-09 05:42:05 +09:00
Yun Chan
d9bb5b3697 배포 파이프라인 현행화 (2026-09-08 실배포 a0311c59 완료) 2026-09-08 23:50:22 +09:00
Yun Chan
a0311c5957 회기 무발화 0턴 분리, 자기예측 락 불변식 및 TDD 회귀 검증 완료
Some checks failed
API contract / OpenAPI type drift (push) Failing after 3m27s
2026-09-08 23:28:06 +09:00
Yun Chan
a479db7a5a 실계정 headful 폐루프와 백업 자동화 증거를 확정 2026-09-01 12:44:16 +09:00
Yun Chan
b98eecbb36 일일 검증형 DB 백업 사이드카를 정식 스택에 추가 2026-09-01 12:34:14 +09:00
Yun Chan
c75fda2385 TODO에 정식 배포 완료 요약을 연결 2026-09-01 12:27:01 +09:00
Yun Chan
34ac1c282a NAS 정식 배포 완료 상태를 SSOT에 반영 2026-09-01 12:25:59 +09:00
Yun Chan
dce8562089 게이트웨이 openai provider 경로를 정식 소스로 복원
Some checks failed
API contract / OpenAPI type drift (push) Failing after 12m44s
2026-09-01 12:13:50 +09:00
Yun Chan
5a74302e19 마이그레이션 22의 name 배열 비교 캐스트를 교정 2026-09-01 12:08:04 +09:00
Yun Chan
8931e64b49 NAS compose를 운영 실물 정의로 동기화 2026-09-01 11:49:00 +09:00
Yun Chan
ed3252ede0 상태판·가이드와 검증 증거를 동기화
Some checks failed
API contract / OpenAPI type drift (push) Failing after 1m17s
2026-09-01 11:45:27 +09:00
Yun Chan
d6d9dc5f61 NAS 정식 스택과 배포 파이프라인 도구를 고정 2026-09-01 11:45:23 +09:00
Yun Chan
f1b80676c1 케이스 이어하기 UI와 공통 탭·이미지 복구를 반영 2026-09-01 11:45:23 +09:00
Yun Chan
72353ecd82 회기 연속성과 멀티 케이스 계약을 영속화 2026-09-01 11:45:16 +09:00
Yun Chan
be08c0b573 정식 승격 상태판과 증거를 동기화 2026-08-30 00:06:45 +09:00
Yun Chan
34aff65cb0 관리자 증거와 계정 흐름을 정돈 2026-08-30 00:01:17 +09:00
Yun Chan
21bbe3f98d 구글 계정 식별 회귀를 고정 2026-08-30 00:00:04 +09:00
Yun Chan
3a7b6f7760 사람 승인 게이트를 명시화 2026-08-29 23:59:29 +09:00
Yun Chan
707dba4f8f 관리자 사용량 근거를 정교화 2026-08-29 23:59:17 +09:00
Yun Chan
ccdcfcd2f5 아바타 저장소 승격 계약을 완성 2026-08-29 23:58:33 +09:00
Yun Chan
ac9b702688 교수자 카드 간격 배포 증거를 기록 2026-08-29 16:55:22 +09:00
Yun Chan
5bf89ff4ee 교수자 요약 카드 간격을 분리 2026-08-29 16:37:10 +09:00
Yun Chan
ffadc8bd49 데이터 복구 배포 증거를 동기화 2026-08-29 16:12:24 +09:00
Yun Chan
dba9b75a38 Google 계정 데이터 별칭 복구를 추가 2026-08-29 15:34:50 +09:00
Yun Chan
15f609368c 개선관리 외부 게이트 상태를 정정 2026-08-29 15:08:17 +09:00
Yun Chan
44b7835ce3 공개 런타임 빌드 종료 판정을 보강 2026-08-29 14:41:49 +09:00
Yun Chan
471eb9621a Google 로그인을 단일 버튼으로 정리 2026-08-29 06:54:11 +09:00
Yun Chan
7994175a3d C-001 승인 입력 칸을 분리 2026-08-28 21:30:37 +09:00
Yun Chan
8e58e244ad C-001 검토 증거를 갱신 2026-08-28 21:14:40 +09:00
Yun Chan
081d9d70fb 임상 관찰 증거 출력을 고정 2026-08-28 21:03:25 +09:00
Yun Chan
3b540a881f 외부 임상 검토 원장을 보강 2026-08-28 21:01:57 +09:00
Yun Chan
dd71cb9710 C-001 검토 증거를 갱신 2026-08-28 20:29:49 +09:00
Yun Chan
f63e12999b 위기 문장 문맥 판정을 보강 2026-08-28 20:20:15 +09:00
Yun Chan
aeca42475b 위기 표현 경계를 확장 2026-08-28 19:58:41 +09:00
Yun Chan
35a9d8802c 위기 신호 기술 검증을 보강 2026-08-28 19:55:04 +09:00
Yun Chan
6988280b30 C-001 임상 검토 게이트 보강 2026-08-28 19:04:17 +09:00
Yun Chan
391fb9f4d0 운영 복구 상태를 문서화 2026-08-28 18:27:02 +09:00
Yun Chan
99779a6ab2 재부팅 복구와 학습자 패널을 정리 2026-08-28 18:07:28 +09:00
Yun Chan
dcb76a2373 운영 배포 검증 근거를 반영 2026-08-28 17:17:34 +09:00
Yun Chan
2a39636163 개선관리 요구사항과 Google 로그인을 완료 2026-08-28 16:07:09 +09:00
Yun Chan
cc0a15b7c6 글래스 효과 축소 디자인 패스와 비주얼 스펙 계약 갱신
- 카드/서피스 그라디언트 2→1층, backdrop blur 제거, 인셋 보더(1px/6px) 복원으로
  시각 잡음을 줄이는 디자인 조정(shell/ui/session/settings/learner-home/login/admin 토큰)
- auth-visual·layout-visual-gate 스펙을 새 비주얼 계약에 맞게 갱신(어설션 약화 아닌 계약 반영)
- 검증: tsc -b PASS, 핀 증거 PNG는 HEAD로 원복해 제외
2026-08-23 21:48:54 +09:00
Yun Chan
16b079052e 직렬 게이트 잔여 원인을 70d7cb34 코칭 기능 통합으로 특정·기록
- 저녁 재실행 19실패의 지배 원인이 소유자 코칭 버튼·버블 커밋의 세션 UI 통합임을 규명
- 세부: strict 위반(버튼 3개)·체크포인트 포인터 차단(오버레이 의심, 결정적 3/3)
- TODO에 잔여 작업 항목 신설, 우연 커밋된 *.bak 로그 4건 제거 권고 기록
2026-08-23 13:50:43 +09:00
Yun Chan
0a00ff245a NAS current GREEN 달성과 심야 연쇄 복구 증거
- 대청소 사건·Docker 사망·WinNAT 포트 예약·DHCP IP 회수 연쇄 복구 기록
- 릴레이 bf5f7352 재핀(r3) + 192.168.0.224 계약 이전(방화벽·NAS .env 재구성)
- NAS agy_cli 전환으로 health 3/3 engine true + actual-origin turn→review smoke 통과
  — 201차 current GREEN 조건 전부 충족, TODO 항목 종결
- 직렬 게이트 잔여: 동맹 포인터 타임아웃 결정 재현(3/3)·스윕 협폭 결함과 함께 조사 이관 기록
- 대시보드 213차 노트, 수집량 1111 갱신(체커 요구), SSOT 59 PASS
2026-08-23 13:49:52 +09:00
Yun Chan
70d7cb34a3 feat(coach): AI 코칭 버튼 및 버블 팝업 대화형 조언 기능 구현 2026-08-18 22:15:19 +09:00
Yun Chan
8a34dd2afc 회기 종료 503 핫픽스 증거·핸드오프·대시보드 동기화
- 대시보드 212차 노트(공개 DB 롤백 재현: learner 거부·AI evaluator 뷰 통과),
  HANDOFF 핫픽스 항목 추가, SSOT 체커 59 PASS
2026-08-18 18:54:32 +09:00
Yun Chan
bf5f7352ce 회기 종료 pinned_fact upsert를 AI evaluator 뷰로 실행
공개 /sessions/{id}/end 503(2026-08-18 실측): app.pinned_fact RLS는 learner 역할에
INSERT(소유 케이스)만 허용하고 SELECT/UPDATE는 AI 컨텍스트 또는 admin/instructor
전용이다. end_session이 learner 연결로 SELECT FOR UPDATE + INSERT ON CONFLICT
DO UPDATE 조합을 돌려 충돌 후보 행 가시성이 막히며 InsufficientPrivilegeError로
실패했고, fallback 차단이 503으로 노출됐다. 엔진이 건강해 deep 평가가 처음으로
pinned 팩트를 반환한 순간 발화한 잠복 결함이다.
- _upsert_pinned_fact_candidates_with_ai_view: 같은 learner uid 로
  acquire(ai_view='evaluator') 를 열어 INSERT/SELECT/UPDATE 정책을 모두 충족
- 검증: 공개 DB에서 롤백 재현 — learner 컨텍스트 upsert RLS 거부,
  ai_view evaluator 컨텍스트 동일 SQL 통과. app 924 passed·관련 62 passed
2026-08-18 18:36:04 +09:00
Yun Chan
6a42063d49 NAS 엔진 릴레이 실제 시작 성공과 15:05 게이트 재검증 결과 기록
- 릴레이 실제 1회 시작 passed(4종 SHA pin, ready 실생 통과, PID 65328) 후
  LAN 한정 9100 방화벽 규칙 추가(Private 프로필 누락이 transport error 원인)로
  NAS origin health 3/3 ok·engine true, auth 401, OpenAPI 126 실측 — 8-12 이후 첫 회복
- 직렬 게이트 재실행 31/14/12did-not-run 실패를 정직 기록: 스윕 91건 협폭 레이아웃 결함
  보고(아침 연쇄 중단으로 미실행이던 테스트) + 스택·데이터 드리프트 의심 실패군,
  교사 재평가 2건 미실행 — pending 유지, 원인 조사 이관
- 대시보드 211차 노트, TODO NAS 항목 갱신, SSOT 체커 59 PASS
2026-08-18 15:45:06 +09:00