cowork.crowny.org 글로벌 협업 서비스 대개선 (2026-06-27)
개요
cowork.crowny.org(:9720) 를 "중학생도 이해하는 글로벌 협업 서비스"로 끌어올리는 대개선. 윈도우PC 접속 무한제한 해소 → 게시판 통합 → 디자인표준 → 런처/티어 → 한선씨/셀코어 순으로 하나씩 배포.울트라 워크플로(8에이전트, 현황감사 3 + 설계산출 5, 모델분업 opus/sonnet/fable)로 감사·설계를 병렬 산출한 뒤, 메인 세션이 우선순위대로 구현·배포.
무엇을 했는지 (배포 완료)
rev16 — 윈도우PC 무한제한 P0 (라이브 검증)
모든 감사 에이전트가 선결과제로 지목한 4+1건:- portal.html
renderBoothttp://하드코딩 →location.protocol자동 (HTTPS 페이지의 http fetch 차단·HSTS·방화벽 무한제한 해소) - 복사버튼
copyEl→execCommand폴백 + "복사됨" 피드백 (clipboard API는 HTTPS 전용 → 윈도우 HTTP에서 조용히 실패하던 것) - blob 다운로드 3곳(설정번들/패키지/커밋) →
revokeObjectURL누수방지 + 한글파일명 RFC5987cdName헬퍼 - index.html
:9720→https://cowork.crowny.org(외부망 포트직접 방화벽 회피) - server.js 컴파일러 안내 URL → https
rev17 — 게시판(board) 통합
파일 업로드/다운로드/로그·보고·공유를 "게시판에 글 올리기" 한 개념으로 통합 (설계: 2026-06-27-cowork-게시판-재기획.md).- 기본 5게시판 시드: pkg(자료)·share(자료)·activity(로그)·notice(이야기)·qna(이야기)
- board.js(582줄) + 게시판.한선(COMPILE_OK, 셀코어 4상 권한판정 미러)
- 13 라우트: /api/boards, /api/board/<key>[/posts|/post|/post/<id>[/comment|/messages|/attach|/attach/chunk|/attach/<name>]], /api/board/activity/report
- 첨부 = recordCommit provenance, 2MB 청크업로드 + sha256 대조(multipart 우회)
- 다운로드 등급게이팅: 글 perm.tier로 canAccessTier + 게스트는 share글만 + Bearer/?token= + 한글 CD
- boardAutoLog 자동기록 login/upload/commit/download 4지점
- 라이브 E2E: 글작성·댓글·첨부·authed다운로드 OK / unauth 401 / 게스트 목록필터(share+notice만) / 활동로그 자동기록 확인
- 권한 단위테스트 6/6 PASS
rev18 — 크라우니디자인표준 v1.0 + 게시판 UI + 쉬운 라벨
- portal.html·index.html에 choco/gold/cream 팔레트 + Pretendard/NotoSerifKR/JetBrainsMono + 그림자·반경·모션 토큰 적용(기존 변수명 유지, 값만 교체 → 무회귀)
- 다크/라이트 토글(헤더 ☀/🌙 + localStorage), index 히어로 섹션
- 포털 게시판 UI(목록→글→댓글→글쓰기 4뷰, 2MB청크 첨부, api/dlBlob/cdName 재사용)
- 전문용어→쉬운 한국어 라벨 9건. 기존 함수 30개·element id 37개 보존, JS 문법 OK
- 정적파일 per-request 서빙 → 즉시 라이브
rev19 — 3단계 런처 + 환경매칭 + sha256 + 다운로드 등급게이팅
- /launcher(맥/리눅스 sh)·/launcher.ps1·/launcher.cmd(윈도우) 자기완결 부트스트랩(포트없으면 https 규칙 내장, 호스트 자동감지)
- /api/launcher/manifest(무인증 안내, 환경별 목록+sha256+minTier)·/api/launcher/resolve(인증, 환경+등급 단일패키지 4상 지목)
- /api/packages·resolve에 sha256(fileSha256 mtime캐시)
- 다운로드 등급게이팅: data/package-tiers.json {파일:minTier} 메타 있을 때만 canAccessTier(없으면 기존 로그인-전용=무회귀)
- 동반 런처.한선/티어게이트.한선 COMPILE_OK(셀코어 4상). SSOT data/tier-capability.psv(내장함수 50/90/130/175/225·동시작업 1~12)
- 라이브 E2E: manifest 5개+sha256 / resolve 정상 / 미지원OS 404(타) / 슈퍼 게이팅 다운로드 200 / 무인증 401(무회귀)
셀코어 룰 연동 (감사 '셀코어 미적용' 직접 해소 — 작게·검증가능)
- 게시판/런처 권한판정을 실제 셀코어 룰엔진으로 표현·누적·매칭.
게시판권한.한선(182줄, COMPILE_OK). - 사용 API(셀코어.한선 실측 시그니처): 룰생성(이름,우선순위)·룰조건추가(룰,슬롯,연산자,값)·룰변경추가·룰엔진실행(db,감사,룰들,최대id)→최고우선순위 매칭이 셀 잠금(먼저 매칭이 이김)·셀넷저장/셀넷로드(PSV 영속)·새셀/셀씀/셀읽/슬롯읽기.
- 슬롯 매핑: 16등급·17동작(0읽기/1쓰기)·18티어충족·19공유·20오너요청·2판정(기본 "타"=default-deny).
- 6룰: 오너동의_필요(30,음)·게스트_쓰기_거부(25,타)·게스트_공유자원(20,옴)·쓰기_티어부족(15,타)·쓰기_허용(12,티)·게시판_읽기_허용(10,티). 영속
data/권한규칙.dat(971B). - 검증: 자가검사 K1~K9 9/9 = 설계 매트릭스 = board.js judgePermission 완전 parity(쓰기 케이스 포함). 1차 플래그된 "쓰기+티어충족" default-deny 갭을 쓰기_허용 룰로 닫음 → 셀코어가 JS의 완전한 거울.
설계·분석 산출물 (CrownyDoc projects/)
- 2026-06-27-크라우니디자인표준-v1.0.md (kps.crowny.org choco/gold/cream 정본, Pretendard/NotoSerifKR/JetBrainsMono, 8컴포넌트, 다크모드)
- 2026-06-27-cowork-체크포인트.md (중학생 표현 글로벌협업 체크포인트 <50, P0정렬)
- 2026-06-27-cowork-게시판-재기획.md
- 2026-06-27-cowork-런처+티어분류.md (3단계 런처, 티어별 내장함수 50/90/130/175/225, 동시작업 1~12)
- 2026-06-27-모델비교-패키징도구.md (Sonnet+크라우니코드 비용효율 416=본체주력, Opus 아키텍처, 분업규칙 정합)
- 2026-06-27-cowork-감사-{UX,백엔드,한선씨셀코어}.md
관련 파일
- /Users/ef/crowny-cowork/{server.js, board.js, 게시판.한선, public/portal.html, public/index.html, data/updates.json}
- 재기동: launchctl kickstart -k gui/$(id -u)/org.crowny.cowork