PAGE_SIZE 20 → 10. 한 화면에 부담 없이 보이도록. 페이저는 기존대로
동적 계산(ceil(total/PAGE_SIZE)). 테스트도 10/페이지 기준으로 갱신.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
디자인 핸드오프(design_handoff_console_redesign)를 실제 앱에 반영.
CSS 드롭인 교체 + 최소 마크업 추가, HTMX 훅·id·data 속성은 모두 보존.
- app.css: 재디자인 토큰/컴포넌트로 교체(요약카드 호버 리프트, 표
제브라, 중앙 경고형 배포 모달, secondary/ghost/danger 버튼 체계,
진행률·상태칩·스켈레톤 등).
- base.html: 브랜드 로고 큐브(.brand-mark) 추가 + 데모 배너.
- repo_list: 요약 카드 .card-top/.card-ico + 검색 돋보기 아이콘.
- table_wrap: 회전형 정렬 인디케이터, 동기화 버튼 아이콘.
- progress: .sync-head/.sync-pct/.is-active/.indeterminate 구조.
- deploy_modal: 중앙 경고형 + 현재→대상 프리뷰 카드 + 타입-투-컨펌
체크/X 시각 상태.
- deploy_success: 그려지는 체크 원 배너.
- version_list: 표 → .version-item 카드 리스트.
Pico v2 호환(미리보기는 pico-shim 기준이라 안 드러났던 것):
- Pico 의 `:is(...).secondary`(0,2,0)·hover(0,4,0) 특정성을 이기도록
오버라이드를 :is() 형태로 상향 → 동기화 버튼 흰배경+파란글씨 유지,
hover 시 어두워지던 문제 해결.
- `input[type=search]` 의 Pico 기본 돋보기 배경 제거(아이콘 중복).
- `td` 배경을 투명 처리해 tr 제브라/hover 가 보이도록(Pico 의
`td{background:var(--pico-background-color)}` 가 덮던 문제), 줄무늬
색을 --bg-alt 로 또렷하게.
- .row-action 을 40px 고정 → 버튼↔진행률↔배지 교체 시 높이 흔들림·
위아래 테두리 잘림 해소.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- deps.py: PULP_DEMO 설정을 Jinja 전역(demo_mode)으로 노출 → 모든
템플릿에서 참조 가능. 실연동 오인 방지(데모는 화면 확인 전용).
- health.html: 데모 모드일 때 연결 배지를 "데모 모드 · 가짜 데이터"
칩으로 표시.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- _DEPLOYED 가변 맵 + create_publication/update_distribution/wait_for_task 가
배포한 버전을 기록 → 데모에서도 '운영 배포 중' 배지가 방금 버전으로 이동
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- [data-theme=dark] 팔레트 토큰 오버라이드 → 컴포넌트 자동 적용
- 네비에 테마 토글(달/해 아이콘), localStorage 저장 + OS 선호 감지
- FOUC 방지용 head 인라인 스크립트로 페인트 전 테마 설정
- 기본은 라이트(design-ref: 다크는 기본 캔버스로 쓰지 않음), 토글 옵션 제공
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 버튼 위계 정리: 파란 틴트=동작(동기화/배포), ghost=네비/유틸(새로고침·이전·다음)
- 새로고침: ghost + 원형화살표 아이콘 + 컴팩트, 페이저: ghost + ◀/▶ 삼각형
- 검색창 가로 꽉(width 100%) + 얇게
- 헤더(th) 한글 라벨에 모노 폰트 안 먹게 td 로 한정 + 모노 스택에 한글 폴백
- 상태: '상태'+연결배지 한 줄 배치, '상태'='저장소' 글자 크기 통일, 배지 14px
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- list_repos: Pulp next 페이지 끝까지 순회 (첫-페이지-only 누락 수정)
- BFF 메모리 검색(이름)·정렬(이름/검증/버전/패키지/동기화)·페이지네이션(20/페이지)
- GET /repos/table 조각: 검색창은 표 밖(포커스 유지), 정렬헤더/페이저는 표 안,
hx-include 로 검색어·정렬상태 상호 전송
- 폰트 재조정: 데이터 셀 14px, 헤더 13px, 배지/액션버튼 14px (동기화 버튼 대비 균형)
- 버전 페이지 제목↔검증상세 마진, 데모 저장소 26개로 확장
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- JetBrains Mono(로컬 동봉) → 저장소명/버전/패키지수/시각 등 영문·숫자 데이터에 적용
- 동기화/배포 버튼 컴팩트(btn-sm) + 액션 셀 높이 고정(row-action)으로 행 점프 제거
- 표 행 높이/hover, 요약 카드 강조(동기화중=blue, GPG통과=mint) + hover, 버튼 누름 피드백
- 연결 상태 폴링 10s → 30s
- SVG favicon (Toss blue 라운드 사각 + 스냅샷 레이어)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- pulp_client: get_repo / sync_repo / get_task (비동기 task href 반환)
- POST /repos/{uuid}/sync: remote 확인 후 동기화 시작, 진행률 조각 반환
- GET /repos/{uuid}/progress: progress_reports 합산 → 바/퍼센트,
완료/실패 시 hx-trigger 제거로 폴링 중단
- task_store: uuid→task_href 메모리 추적 (단일 인스턴스), 대시보드 '동기화 중' 집계
- views.task_progress: state/done/total/percent + created_resources에서 새 vN
- 동기화는 안전 동작이라 확인 모달 없이 실행 (스펙 §5-1)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>