docs: log 2026-07-14 session 2 (crash-loop chain, session rehydration, UI fixes, feature batch)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
c664743087
commit
ffeb251194
@ -216,3 +216,21 @@
|
|||||||
**⚠ 시연 블로커(소유자 조치 필요):** Gemini API 키가 무료 티어 → 이미지 모델(`gemini-3.1-flash-image`·2.5 모두) 쿼터 0(429) — **S7 조감·ReRoom 실렌더 불가**. Google AI 유료 결제 활성화 또는 유료 키 교체 필요. 텍스트 AI(Claude)는 정상.
|
**⚠ 시연 블로커(소유자 조치 필요):** Gemini API 키가 무료 티어 → 이미지 모델(`gemini-3.1-flash-image`·2.5 모두) 쿼터 0(429) — **S7 조감·ReRoom 실렌더 불가**. Google AI 유료 결제 활성화 또는 유료 키 교체 필요. 텍스트 AI(Claude)는 정상.
|
||||||
|
|
||||||
**★CI/CD 교훈(확정):** 00:26·00:52 배포가 연속으로 스테일 jar(신규 클래스·V50/V51 누락)를 내보낸 진짜 원인 = **포트 9999를 점유한 deploy_server.py 프로세스가 7/11 19:44에 뜬 구버전**(메모리에 옛 kintex 블록). 디스크 파일은 최신이었으나 재시작이 누락돼 옛 로직이 계속 실행, 새 인스턴스는 "Address already in use"로 기동 실패. → `systemctl restart zioinfo-deploy`(01:15, PID 1123130)로 해소. **재발방지 수칙: deploy_server.py 갱신 시 서버 반영+재시작은 원자 1세트**(기존 교훈의 재발) + 배포 게이트에 **jar 내용물 검증**(`unzip -l app.jar | grep 최신마이그레이션`) 추가. `/opt/kintex/deploy_kintex.sh`는 미사용 구사본(파이프라인은 repo `deploy/deploy_kintex.sh` 실행).
|
**★CI/CD 교훈(확정):** 00:26·00:52 배포가 연속으로 스테일 jar(신규 클래스·V50/V51 누락)를 내보낸 진짜 원인 = **포트 9999를 점유한 deploy_server.py 프로세스가 7/11 19:44에 뜬 구버전**(메모리에 옛 kintex 블록). 디스크 파일은 최신이었으나 재시작이 누락돼 옛 로직이 계속 실행, 새 인스턴스는 "Address already in use"로 기동 실패. → `systemctl restart zioinfo-deploy`(01:15, PID 1123130)로 해소. **재발방지 수칙: deploy_server.py 갱신 시 서버 반영+재시작은 원자 1세트**(기존 교훈의 재발) + 배포 게이트에 **jar 내용물 검증**(`unzip -l app.jar | grep 최신마이그레이션`) 추가. `/opt/kintex/deploy_kintex.sh`는 미사용 구사본(파이프라인은 repo `deploy/deploy_kintex.sh` 실행).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 처리 로그 (2026-07-14 세션 2 — 라이브 장애 연쇄 해소 + UI 지시 + 기능 배치 완성)
|
||||||
|
|
||||||
|
**소유자 제보·지시:** ① "도면 안나옴"(플로어플랜 → /home) ② 서류·마일스톤/물류 허브 응답대기 ③ 옥션 업체 포털 "대시보드를 불러오지 못했습니다" ④ "위 오류 모두 수정해" ⑤ "그리드도 짤린다" ⑥ 부스 판매 등 9개 화면 "행사를 선택해 주세요"(선택기 비어 선택 불가) ⑦ "좌측메뉴 아코디언 + 메뉴검색 추가, 선택 시 이미 펼쳐진 메뉴는 접기" ⑧ "플로어플랜 스튜디오는 언제?" ⑨ "이어서 작업"(끊긴 배치 마무리)
|
||||||
|
|
||||||
|
**근본원인 1 — 연쇄 장애(①~③ 공통):** 01:17 배포된 새 jar가 `TicketMapper.xml`의 **미이스케이프 `<=`** 로 SqlSessionFactory 파싱 실패 → 8회 crash-loop → 파이프라인이 구 jar(7/13 빌드)로 롤백 → **새 프론트 + 구 백엔드 불일치** + V50/V51 미적용(admin 멤버십 소실 재발). 수정 `1d46da8`(이스케이프, 전 매퍼 10개 XML 정형성 검사 통과) → 새 jar 라이브(01:52), V50/V51 적용·admin ORGANIZER 멤버십(e-2026-live·smf) 확인. ★교훈: 매퍼 XML raw `<=`는 빌드/테스트 통과 후 **부팅 시점**에만 터짐 — 배포 게이트에 매퍼 XML well-formed 검사 추가.
|
||||||
|
|
||||||
|
**근본원인 2 — "행사를 선택해 주세요" 전 화면(⑥):** 토큰은 sessionStorage 지속인데 user/workspaces는 메모리 zustand뿐 → **새로고침 시 workspaces=[] 박제**(세션 재수화 부재). `3860e7e`로 RequireAuth에 /api/auth/me + /api/auth/workspaces 자동 복원(401 시 로그아웃) 추가.
|
||||||
|
|
||||||
|
**개별 버그:** `/api/admin/messages` 500 = SysMessageMapper `(#{p} IS NULL OR …)` PG 파라미터 타입 추론 실패 → `::text` 캐스트(`ecc00f8`). 그리드 짤림(⑤) = flex/grid 자식 `min-width:auto` 블로우아웃 + `.kx-dash__table-wrap overflow:hidden` 직접 클립 → 공용 래퍼(`.kx-table-scroll`·`.kx-dt`) `min-width:0` 수렴 + 4화면 보정(`3c80585`).
|
||||||
|
|
||||||
|
**UI(⑦):** 메뉴 검색 신규 이식(UIWS NavSearch 패턴 — 전 대분류 횡단·매칭 하이라이트·Escape 클리어·역할 게이트 유지, i18n 4개국어) `a3fdb62`. 아코디언 단일확장은 기존 구조가 이미 충족(라우트 기준 활성 그룹 자동 펼침) — 회귀 없이 유지.
|
||||||
|
|
||||||
|
**기능 배치 완성(⑨ — 끊긴 세션 미커밋분, 커밋 ef74006~c664743 8건):** 회의 녹음→STT(whisper env 설정형, 미설정=degraded)→AI 회의록+액션아이템(V52 transcript) · EDM 실발송(수신동의 필터·**테스트모드 기본 ON**·캠페인 상한·분당 레이트·불투명 수신거부 토큰·발송이력 V53) · 마이페이지 프로필/비번변경/알림설정(V55) · CMS AI 번역 · 보고서 PDF(openhtmltopdf+NanumGothic 임베드) · AI 검색(grounded) · 렌더 이력 갤러리(V54 인덱스). 검증: gradle test 통과·tsc 0·V52~V55 라이브 dry-run(BEGIN/ROLLBACK) 후 배포 — jar 내용물 게이트(V52~55 4건)·flyway 52~55 성공·신규 엔드포인트(알림설정/캠페인/스폰서십/회의/검색) 전부 200·error_log 신규 유입 0(프로브 오타 2건 제외).
|
||||||
|
|
||||||
|
**답변(⑧):** 플로어플랜 스튜디오는 재로그인(또는 새 번들에서 새로고침) 후 좌측 메뉴 행사 스코프로 진입 — H1 배치안 v1 API 200 확인.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user