docs: 2026-09-08 실배포 및 TDD 불변식 검증 결과 문서 현행화
This commit is contained in:
parent
d9bb5b3697
commit
aa951c6c4a
4 changed files with 37 additions and 12 deletions
|
|
@ -67,7 +67,7 @@ npx playwright test e2e/uc-session-conversation.spec.ts --grep '스트림 도중
|
|||
|
||||
## 완료 기록 경계
|
||||
|
||||
2026-09-01 A 경로의 NAS 배포, migration 20/21/22 적용, OAuth 실계정 회기 E2E와 당시 backup sidecar 첫 실행은 완료 이력이다. B3 및 B3-신규의 소유자 결정과 완료된 구현도 archive snapshot에 보존한다. `CLEANUP-001`은 84 regular source와 supplementary 4 files·junction 4개의 대조 뒤 `outputs/local-history/retained-sources-2026-09-07/`으로 가역 보존 이동을 마쳤고 영구 삭제는 0건이다. `RUNTIME-001`은 Windows public-runtime/watchdog scripts를 복구 경로로 보존하기로 결정했으며 이 PC의 두 Disabled Scheduled Task는 운영 서버 다운을 뜻하지 않는다. `REFACTOR-001`은 `sessionViewModel` 분리와 `voiceCapture` 책임 유지를 수용했고, lifecycle setter bag hook은 채택하지 않았다. Space retry→pause와 empty-audio fixture를 교정했으며, `learnerFeedbackEnabled:true` 누락으로 숨던 review feedback UI는 fixture 보완 뒤 focused login→review 1 passed(exit 0)로 확인했다. 제품 feedback guard는 유지했다. `REFACTOR-002`는 repository와 persistence values로 평가 저장 경계를 분리했다. 열린 백로그에 완료 이력을 다시 적지 않는다.
|
||||
2026-09-01 A 경로의 NAS 배포, migration 20/21/22 적용, OAuth 실계정 회기 E2E와 당시 backup sidecar 첫 실행은 완료 이력이다. 2026-09-08에는 Forgejo master `a0311c59`/`d9bb5b36`의 NAS Production 컨테이너 교체와 Cloudflare Pages 배포, 사전 DB 덤프(12MB) 확보 및 0턴 세션 분리·OAS calibration bounds/lock·composer 복원 등 TDD 회귀 검증(API 1104 passed)을 완료했다. B3 및 B3-신규의 소유자 결정과 완료된 구현도 archive snapshot에 보존한다. `CLEANUP-001`은 84 regular source와 supplementary 4 files·junction 4개의 대조 뒤 `outputs/local-history/retained-sources-2026-09-07/`으로 가역 보존 이동을 마쳤고 영구 삭제는 0건이다. `RUNTIME-001`은 Windows public-runtime/watchdog scripts를 복구 경로로 보존하기로 결정했으며 이 PC의 두 Disabled Scheduled Task는 운영 서버 다운을 뜻하지 않는다. `REFACTOR-001`은 `sessionViewModel` 분리와 `voiceCapture` 책임 유지를 수용했고, lifecycle setter bag hook은 채택하지 않았다. Space retry→pause와 empty-audio fixture를 교정했으며, `learnerFeedbackEnabled:true` 누락으로 숨던 review feedback UI는 fixture 보완 뒤 focused login→review 1 passed(exit 0)로 확인했다. 제품 feedback guard는 유지했다. `REFACTOR-002`는 repository와 persistence values로 평가 저장 경계를 분리했다. 열린 백로그에 완료 이력을 다시 적지 않는다.
|
||||
|
||||
## 확인 명령
|
||||
|
||||
|
|
|
|||
|
|
@ -56,8 +56,8 @@ NAS 호스트에는 git이 없으므로 git 컨테이너로 Forgejo에서 clone
|
|||
## 4. 검증 게이트 (배포 전)
|
||||
|
||||
- `apps/web`: `npm run typecheck`, `npm run build`
|
||||
- `apps/api`: 관련 test suite
|
||||
- SSOT checker `scripts/test_dev_dashboard_ssot.py`
|
||||
- `apps/api`: 관련 test suite (전체 1104 passed / 1 skipped)
|
||||
- SSOT checker `scripts/check-dev-dashboard-ssot.py`
|
||||
- Forgejo master == 로컬 master (배포 무결성)
|
||||
- NAS: `docker compose ps` healthy, `/api/health` ok·db/engine true
|
||||
|
||||
|
|
@ -89,10 +89,29 @@ docker compose -f docker-compose.nas.yml --env-file private/env.nas up -d
|
|||
`node ../../scripts/preserve-assets.mjs`(이전 세대 자산 보존) →
|
||||
`npx wrangler pages deploy dist --project-name vignette --branch main`.
|
||||
|
||||
## 5.1 2차 정식 실배포 완료 (2026-09-08, SHA `a0311c59`)
|
||||
|
||||
- **Forgejo / GitHub master 동기화**: `a0311c59` (파이프라인 문서 포함 `d9bb5b36`).
|
||||
- **사전 백업**:
|
||||
- DB dump: `/volume1/docker/vignette-prod/backups/pre-deploy-a0311c59-.dump` (12MB, custom 포맷)
|
||||
- 환경변수: `private/env.nas.before-deploy-a0311c59`
|
||||
- **NAS Docker 빌드 및 배포**:
|
||||
- API 이미지: `vignette-nas-api:a0311c59` (`sha256:8b1ed23d1d24...`)
|
||||
- Web 이미지: `vignette-nas-web:a0311c59` (`sha256:5c34139d8b56...`)
|
||||
- `private/env.nas` 이미지 SHA 갱신 및 `docker compose up -d`
|
||||
- 컨테이너 전건 healthy: `vignette-prod-api-1`, `vignette-prod-engine-1`, `vignette-prod-db-1`, `vignette-prod-web-1`, `vignette-prod-private-proxy-1`
|
||||
- **Cloudflare Pages 배포**:
|
||||
- `apps/web`: `npm run build` 성공
|
||||
- `node ../../scripts/preserve-assets.mjs` 실행 (174개 이전 세대 자산 보존)
|
||||
- `npx wrangler pages deploy dist --project-name vignette --branch main` 성공 (`https://vignette.chanpaca.net`, preview: `https://2df910db.vignette-b1q.pages.dev`)
|
||||
- **Live 폐루프 검증**:
|
||||
- `https://api-vignette.chanpaca.net/health` -> `status: ok`, `db: true`, `engine: true`, `openai: true`
|
||||
- `https://api-vignette.chanpaca.net/auth/me` -> `401 Unauthorized` (fail-closed 보장)
|
||||
- `https://vignette.chanpaca.net` -> `HTTP 200 OK`
|
||||
|
||||
## 6. 남은 구성 작업 (TODO)
|
||||
|
||||
- [ ] Forgejo master 기준 NAS 자동배포 후크(수동 절차는 §5로 실증 완료)
|
||||
- [ ] Forgejo master 기준 NAS 자동배포 후크(수동 절차는 §5, §5.1로 실증 완료)
|
||||
- [x] Forgejo가 SSOT임을 문서에 반영, github은 private 미러 유지
|
||||
- [ ] cloudflare tunnel 제거 또는 유지 결정 — 현재 `api-vignette`는 NAS 호스트 상주 cloudflared 터널 경유다. 대체 ingress의 보안·가용성·OAuth 경계가 검증되기 전에는 제거하지 않는다.
|
||||
- [ ] 배포 시 NAS 접근 자격(SSH 키/배포 계정)을 `.env.deploy`/시크릿으로 관리
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue