Commit graph

218 commits

Author SHA1 Message Date
Yun Chan
1a925b33e0 docs: 배포 기록 갱신 (r2·r3 순차 교체 및 OAuth 버튼 반영) 2026-09-11 17:55:13 +09:00
Yun Chan
b2fbdba6e1 임시 DDL 전송 파일 제거 2026-09-11 17:34:01 +09:00
Yun Chan
cb4d45579d OAuth 로그인 버튼으로 provider 연결 + 제공자 연결 패널 그리드 이동
Some checks failed
API contract / OpenAPI type drift (push) Failing after 59s
claude(setup-token과 동일한 PKCE, code#state 수동 흐름)와
openrouter(헤드리스 코드 표시 모드)는 OAuth 로그인 버튼으로 연결한다.
관리자가 제공자 로그인 뒤 표시되는 인증 코드를 붙여넣으면 서버가
토큰/키로 교환해 저장·게이트웨이 push한다. state는 서버 발급·15분
단일 사용으로 CSRF를 막는다. codex·agy는 붙여넣기 방식을 유지한다.

제공자 연결 패널은 우측 사이드에서 메인 컬럼의 Provider·모델별 사용
원장 아래로 옮기고 반응형 그리드(너비에 따라 1~n열)로 배치한다.
2026-09-11 17:33:51 +09:00
Yun Chan
e3a9fc717c provider 자격증명 테이블 생성을 존재 검사 선행으로 전환
Some checks failed
API contract / OpenAPI type drift (push) Failing after 1m6s
앱 DB 계정에는 스키마 CREATE 권한이 없어 런타임 CREATE TABLE IF NOT
EXISTS가 테이블이 이미 있어도 권한 거부로 실패한다(운영 실측). to_regclass
존재 검사를 먼저 하고, 부트스트랩 SQL(05_runtime_auth.sql)에 DDL을 추가해
신규 볼륨에서도 소유자가 테이블을 만들도록 한다.
2026-09-11 16:56:02 +09:00
Yun Chan
e82fbb58e9 docs: 3차 정식 배포 기록 추가 (4b45d331, engine 선행 교체 적용) 2026-09-11 15:22:28 +09:00
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