Crowny Today — 사장님 피드백 3건 구현 (헤더 정렬 / 새 프로젝트 / 설문 위저드)
개요
today.crowny.org 라이브 서비스에 실사용 피드백 3건을 구현·배포·검증 완료.
1) 헤더 버튼 겹침 수리
- 원인: bridge.js가
position:fixed로 서비스 버튼·상태dot을 앱 헤더 위에 얹어 ⌘K 팔레트/아바타를 가림.
- 수리:
findHeaderRow()로 앱 헤더(46px flex row, ⌘K 텍스트 포함) DOM을 탐색해 아바타(마지막 자식) 왼쪽에 insertBefore로 inline 삽입. 탐색 실패 시에만 헤더 아래(top:52px)로 내린 fixed 폴백 사용, z-index도 낮춤.
- 결과:
자연어 커맨드 ⌘K · ●온라인 · ≡서비스 · 아바타가 한 줄에 겹침 없이 정렬. 스크린샷 /tmp/today_ui3_header.png, /tmp/today_ui3_menu.png로 확증.
2) 새 프로젝트 시작 + 하나씩 입력
- UI: 서비스 메뉴 상단에
+ 새 프로젝트 항목 → 우측 슬라이드 패널(프로젝트명 입력→생성→항목 Enter로 연속 추가, 포커스 유지→닫기).
- 서버(서버.한선):
data/프로젝트.psv(id|user|name|ts), data/프로젝트항목.psv(id|projectId|text|done|ts).
- API:
GET/POST /api/projects, GET/POST /api/projects/items(POST {projectId,text} 생성 / {id,done} 토글) — 전부 Bearer 게이트.
- 오프라인 큐:
enqueueOp('project', ...), enqueueOp('projectItem', ...) — /api/sync의 _op적용에 두 op 케이스 추가.
- 검증: VPS curl로 로그인→프로젝트 생성→항목 2건 추가→목록 조회 전량 PASS. CDP 스크린샷
/tmp/today_ui3_project.png(패널에서 "마감준비" 프로젝트 생성 + "초안 검토"/"최종 승인" 항목 연속 입력 확인).
3) 설문 튜토리얼 초기세팅(프로필 위저드)
- 로그인 후
GET /api/profile로 프로필 유무 확인 → 없으면 5단계 위저드 오버레이 표시(①이름·팀 확인 ②하루 리듬(시작/종료, 기본 09:00~18:00) ③업무 유형 복수선택(집중/회의/이동/현장) ④공유 범위(나/팀/전사) ⑤완료).
- "나중에" 버튼 →
{skipped:1}로 저장, 이후 재노출 안 함(exists=true가 되므로).
- 서버:
data/프로필.psv(user|start|end|types|share|skipped|ts, append-log 최신행=최종본). GET/POST /api/profile.
- 검증: E03(프로필 없음) 로그인 시 위저드 자동 표시(스크린샷
/tmp/today_ui3_header.png), admin(프로필 저장 완료) 로그인 시 미표시 확인.
한선씨 동반
- 서버 API 정본:
/Users/ef/crowny-today/서버.한선 (직접 수정, 컴파일 검증 완료).
- 판정 로직 정본(신설):
/Users/ef/CrownyBrowser/bundle/today/bridge/투데이확장판정.한선 — 위저드표시판정(4상)·항목입력유효성판정(4상)·동기화판정 자체시험 12/12 PASS.
- JS(todayBridge.js)는 위 두 판정 함수를 순수 로직으로 미러링(fetch/DOM 조작만 JS 담당), fetch/timer는 여전히 JS의 역할.
관련 파일
/Users/ef/crowny-today/서버.한선 (API 3종 신설)
/Users/ef/crowny-today/서버.toau, /Users/ef/crowny-today/bridge.js (배포 사본)
/Users/ef/CrownyBrowser/bundle/today/bridge/todayBridge.js (단일원본, 헤더 인라인 삽입 + 프로젝트 패널 + 위저드)
/Users/ef/CrownyBrowser/bundle/today/bridge/투데이확장판정.한선 (신설, 자체시험 12/12)
/Users/ef/crowny-today/배포.sh (VPS 배포, 재컴파일 자동)
검증 증거
- curl 전수: 로그인/401게이트/프로젝트 생성·목록/항목 생성·목록/프로필 조회(없음→저장→있음). 전부 PASS(스크립트 실행 로그 참조).
- Chrome headless(CDP 직접 구동, puppeteer 미사용) 스크린샷:
/tmp/today_ui3_header.png(위저드+헤더 정렬), /tmp/today_ui3_menu.png(서비스 메뉴+새 프로젝트 항목), /tmp/today_ui3_project.png(프로젝트 패널 실사용).
node --check bridge.js 통과, hanseonc_high 컴파일 경고 0.
잔여 이슈
- 위저드 skip 로직: 재노출 방지는
exists가 true가 됨을 활용(skipped=1 저장 후 exists=true) — skipped 값 자체를 UI에서 재확인하는 별도 API 노출은 안 함(불필요 판단).
- 프로젝트 목록은 팀 전체 공개(개인별 필터 없음) — 필요 시 후속.
- 기존 잔여 이슈(ERP work 라우트 포트 재확인 완료: 9918로 2026-07-17 기존에 수정됨, 응원/할일 토글 전체 재작성 방식)는 이번 작업 범위 밖.