Crowny FAB — 블록체인 기가팩토리 네트워크 운영도구 구축 (fab.crowny.org)
- 날짜: 2026-07-18 착수 → 2026-07-19 라이브
- 코드:
/Users/ef/crowny-fab/ - 도메인: https://fab.crowny.org (포트 8200, 게이트웨이 기배선 + 와일드카드 cert — 인증서 작업 0)
개요
디자인 핸드오프 ~/Downloads/design_handoff_crowny_fab(dc.html 939줄 = 유일 스펙, 수용 체크리스트 A1~I9)를 기준으로 구축. 60공장(공장당 10분/대) × 전 세계 = 10초에 1대, PoA 블록체인(블록 간격 10초 = 생산 리듬)이 생산의 단일 진실. Crowny Factory(소량 200대)의 상위 스케일 제품 — EV(주문→수요)·Factory(SOP JSON→FAB 학습)·CAD(레이아웃 킷)·ERP(발주)·트리(마음 보상) 연계.
산출물
| 파일 | 내용 | 검증 |
|---|---|---|
앱.html (1,170줄, 108KB) | dc.html 픽셀 포팅 — 9뷰(⌘1~9)·모드4종·노트시스템·kpiDict35 | 적대검증: 데이터·토큰·산술·배선 23/23 바이트 일치 |
FAB엔진.한선 | 계산 SSOT: 공장상태·KPI 600÷가동수·로봇재배분 25→33→50·수급폴백·정렬·블록해시·4상판정 | assert 94/94 PASS |
서버.한선 (468줄) → 서버.toau | EV 스캐폴드 복제. /(앱)·health·manifest(9모듈)·note PSV·link/status | STRICT 경고 0, 전 라우트 curl 실측 |
org.crowny.fab.plist | LaunchAgent (KeepAlive, EV 패턴) | kickstart 재기동 확인 |
검증 (완료 판정 근거)
- 적대검증(독립 소넷): kpiDict 35/35·blocks 6/6·mats 5/5·kits 5/5·fabList 생성식·디자인 토큰(탭9색·모드4색·배지5종) 공백정규화 diff 0바이트 차이. onClick 23개 인스턴스 1:1 배선. 확증 결함 2건만 발견 → 전부 수리.
- 수리 2건: ①되돌리기(undo) 배선 — 스펙 자체 결함이었음,
_undo스냅샷+복원 구현 ②A4 VIN 스트림 10초 라이브 틱. DOM 심 35 assert PASS, diff 61줄 스코프 준수. - 육안 대조: 원본 standalone vs 포팅본 924px 헤드리스 스크린샷 — 레이아웃·색·수치·상태바 일치, 가로 오버플로 0.
- 골격 게이트: doctype/charset/viewport/title ✓, 외부 리소스 0.
- 디자인 게이트: 크라우니디자인 중앙 CSS 주입(
crowny-design.sh apply) +대조스펙: .crowny-fab-independent-spec선언(캐릭터·홀 관례) → PASS. - 라이브: 로컬 8200 + 공개 HTTPS 3경로(/, /api/health, /api/manifest) 전부 200, 노트 PSV 왕복(
\p이스케이프 포함) 실측.
컷오버 기록
- 구 fab.crowny.org = CrownyForge(uvicorn forge.server, 8200, 07-13 수동기동 orphan PID 41563) → kill 후 org.crowny.fab 인계. forge 코드는 보존:
/Users/ef/Downloads/crownycell-factory/forge(06-10 "FAB 시제품제작준비" 트랙 산물). /Users/ef/crowny-fab/내 레거시(server.py=구factory용, web/, task/, 작업지시/, data/*.db) 무접촉 보존.- 게이트웨이: fab.crowny.org→8200 기배선 그대로 (httpOnly:true여도 TLS 정상 — 변경 불필요 실측).
연계 접점
- EV(:9616):
/api/erp/order·/api/manifest(EV 측 기구현) — FAB/api/link/status에 선언 - Factory(:8300): 오늘 다른 세션이 병행 구축 중(design_handoff_crowny_factory) — 소량 공정 데이터·SOP JSON→FAB 학습 계약, 파일 무접촉 유지
- manifest connects: ["ev.crowny.org:9616","factory.crowny.org:8300"]
잔여 이슈
- 폰트: Pretendard·JetBrains Mono 자체호스팅 파일 없음 → 시스템 폴백 + Crowny Gothic 폴백 스택(외부 CDN 금지 준수). 원 디자인 서체 재현하려면 woff2를 crowny-fonts에 추가 후 @font-face.
- FAB엔진.한선 assert가 파일 최상위 — 서버가
가져오기하기 전 테스트 분리 필요(현재 서버는 엔진 미임포트라 무해). - 노트 질문의 서버 저장은 배선됐으나 앱은 스펙대로 클라이언트 데모(fetch 없음) — 실연동은 후속.
- crowny://fab 크라우니AI 앱카드 미장착 (EV도 동일 잔여).
학습 래칫
FAB기가팩토리_배선서버·FAB기가팩토리_엔진_KPI로봇재배분수급폴백brain learn 완료 (다음부터 토큰0)fn_앱_공장60생성_리포트패턴DB 등록 (포팅 에이전트)
2026-07-21 잔여 해소 (고아 동반·앱장착·노트 실연동)
- 엔진 실배선(고아 동반 해소): FAB엔진.한선 top-level assert 94개 → FAB엔진테스트.한선 분리(엔진 단독 실행 부작용 0 확인, 94 PASS 유지). 서버.한선이
가져오기 "FAB엔진.한선"+ 엔진 함수 실호출 라우트 4종 추가:
/api/kpi → 공장상태·가동수 54/60·netSecPerBlock 11.1
- /api/robot?fault=N → 부하 재배분(2대=50%·+24%, 3대=정지—우회)
- /api/supply?t1=0|1 → 자재 커버리지·T1 폴백 상태
- /api/판정 → 4상 종합(티/옴/타/음)+진단
- factory /api/kpi 패스스루(/api/kpi/full)도 배선. STRICT 경고 0, 함수명 충돌 0. 공개 HTTPS 200 실측.
- crowny://fab 앱장착: CrownyBrowser 5지점(별칭·caOpenFabInActiveTab·navigateTo·AI홈타일·북마크시드) + 앱목록.psv + FAB연결.한선(19/19). ⚠북마크 시드 v14(동시세션이 v13을 factory로 선점) — make ai 에러0. 정본=CrownyDoc 2026-07-20-crownyai-fab-앱장착.md
- 노트 실연동: 앱 submitQ→
POST /api/note/question(뷰id 키 정합), 노트탭 진입 시GET /api/note/list1회 병합(window.__fabNoteLoaded 가드·_srv 중복제거). fetch 실패=조용히 로컬 폴백(I5/I6 무회귀). 종단 왕복 실측 PASS.
- 연계 실측: EV manifest가
connectors:[factory,fab,cad,render,erp]선언, factory(8300)·fab(8200)·ev(9616) 삼각 전부 200.