크라우니캔버스 — 사이드바 CRD 배지 죽은배선 수리 (P2)
개요
crowny-canvas 앱(index.html) 사이드바 하단 "N CRD" 배지가
사용자.잔액 필드를
읽지만,
/api/부팅(라이브·demo 공통) 응답 어디에도
잔액 필드가 없어
항상 "0 CRD"로 고정 표시되던 죽은 배선(dead-wiring)을 수리.
근본원인
계약(07-앱-계약.md §3)상
잔액은
/api/부팅이 아니라 별도
GET /api/원장?사용자= 엔드포인트({잔액, 기입[]})에만 존재. 부팅 흐름이
원장을 조회·병합하지 않아
u.잔액이 항상 undefined→0.
수정
/Users/ef/crowny-canvas/앱/index.html: 부팅() 함수를 프라미스 체인으로
확장 —
/api/부팅 완료 후
CC.스토어.사용자.id(없으면 "guest")로
/api/원장?사용자=<id>를 조회해
res.잔액을
CC.스토어.사용자.잔액에 병합한
뒤
초기화후렌더() 호출. 데모/라이브 양쪽 공통 경로(계약 §데모 투명성 준수).
/Users/ef/crowny-canvas/한선씨/index.한선(동반): 결정로직 파리티 함수 3종
추가 —
원장조회_사용자아이디(id 폴백),
원장잔액_병합값(오류/필드부재 시
미병합=-1 신호),
CRD배지문자열(표시 포맷). 셀프테스트 7건 추가(총 16/16 PASS).
검증
- STRICT 컴파일:
CROWNY_STRICT=1 ./hanseonc_high 한선씨/index.한선 → 0 경고, 5936 큐브.
- 셀프테스트:
index_셀프테스트=1 ./crownyc run <컴파일산출> → 16/16 PASS
(신규 7건 포함: 사용자아이디 폴백 2·병합값 3·배지문자열 2).
- 라이브 static 서빙:
curl :9620/ 200, 신규 코드(원장?사용자=, CC.스토어.사용자.잔액 병합)
바이트 확인 — 서버가 파일을 요청마다 읽으므로(캐시 없음) 재기동 불필요.
- 기능 종단 시뮬: 실제
앱/demo.js(수정 없음)를 Node에 그대로 로드하고
index.html에서 옮긴 부팅() 체인을 그대로 실행 →
CC.스토어.사용자.잔액 = 450, 배지 렌더 결과 "450 CRD" (PASS, 더 이상 0 CRD 고정 아님).
- 라이브 API(
/api/부팅,/api/원장) 직접 curl은 canvas 서버(:9620)의
기존·무관한 OOM 크래시루프(
[ARRAY] OOM! ... MAX=144000000,
저장소_페이지트리목록 등
배열힙 소모 API 경로 요청마다 재현)로 매번 빈 응답 — 이 결함과 무관, 수리범위 밖(파일
소유권=index.html+동반 .한선). 별도 이슈로 플래그.
관련 파일
/Users/ef/crowny-canvas/앱/index.html
/Users/ef/crowny-canvas/한선씨/index.한선
- (참조, 미수정)
/Users/ef/crowny-canvas/앱/demo.js, /Users/ef/crowny-canvas/한선씨/원장.한선, /Users/ef/crowny-canvas/한선씨/서버.한선
잔여 이슈
- canvas 서버(:9620) OOM 크래시루프(무관 별도 결함) — API 엔드포인트 라이브 curl
검증이 이 문제로 막힘. 서버.한선 배열힙 사용 API 경로(예:
저장소_페이지트리목록) 조사 필요.
크라우니코드
lookup/search HIT 0건(MISS) / learn 추가 1건(
원장잔액병합).