Skip to content

시작 대시보드 구현 (Phase 1~6) - #11

Draft
eondcom wants to merge 20 commits into
backup-folder-openfrom
dashboard-impl
Draft

시작 대시보드 구현 (Phase 1~6)#11
eondcom wants to merge 20 commits into
backup-folder-openfrom
dashboard-impl

Conversation

@eondcom

@eondcom eondcom commented Jul 30, 2026

Copy link
Copy Markdown
Owner

PR #9 스펙의 Phase 1~5 구현 (Codex 작업, Claude 검증).

  • 시작 대시보드 + 로컬 즉시 지표 (SSH 0회)
  • 서버 헬스 스냅샷 + 영속 캐시
  • 도메인별 병렬 헬스 점검 (HTTP·DNS·인증서·웹루트) + 기본 vhost 오탐 방지
  • 통합 경고 배너 + 화면 바로가기 + 시작 화면 설정
  • Phase 5: 디스크 감시 시각 타임존 버그 수정, docs/dashboard.md

base 가 backup-folder-open(#10) 입니다. #10 머지 후 base 를 main 으로 바꾸면 됩니다.

검증 (Claude 재확인 — Codex 보고를 그대로 믿지 않고 직접 실행)

항목 결과
cargo test 36 passed (재현)
cargo build --release 경고 없음 (재현)
대시보드 자동 SSH dashboard_pagespawn 호출 0개 — 스펙 §2-1 준수
domain_issue() 함수 내부 local_code 참조 0개 → 기본 vhost 200 오탐 차단 유지
회귀 테스트 DNS=none + LH=200 → 이상 포함
결과 커밋 시점 Done{ok:true} 에서만, 실패 시 이전 캐시 유지
집계 기준 이상 건수를 domain_issue() 하나로 계산
셸 스크립트 스펙과 주석 1줄 차이. 추출해 shim 으로 실제 실행 통과

Phase 5 (타임존 수정) 검증

항목 결과
HM_DASH_DISKMON_LAST_TS 설치·미설치 양쪽 분기 모두 출력 (실행으로 확인)
설치 상태 실측 LAST_TS=1785364201 (서버 date -d 로 계산)
미설치 상태 실측 LAST_TS= (빈 값 — 이전 값이 남지 않음)
epoch 우선 → 폴백 → None diskmon_last_prefers_server_epoch 가 세 경로 모두 단정
값 없을 때 is_some_and(...)경고를 띄우지 않음 (오탐 방지)
함수명 parse_kst_datetime 잔존 0, parse_server_datetime 로 정정
docs/dashboard.md 지시서 §3 4항목(캐시 시각·자동조회 이유·타임존·소요시간) 모두 반영

금지 항목(자동 SSH, 도메인 판정 로직)은 변경되지 않았습니다.

런처 반영

Codex 가 "dashboard-impl 에는 삭제·디스크 기능이 없어 런처를 교체하면 기능이 빠진다"고 판단해 교체하지 않은 것은 정확한 판단이었습니다. Claude 가 통합 브랜치에서 병합해 처리했습니다:

main + #3 + #7 + #8 + #10 + 이 브랜치 → v0.1.0 (4637b03), cargo test 41 passed, 런처 교체 완료.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WxEiSzFMdeAzvohAQ39nyJ

eondcom added a commit that referenced this pull request Jul 30, 2026
Phase 1~4 구현물(PR #11)을 검증한 결과를 수정 지시서로 정리했다.

구현은 스펙을 충실히 따랐다. 자동 SSH 없음 · domain_issue 가 LH 를 아예 참조하지
않아 기본 vhost 오탐 차단 · 회귀 테스트 존재 · Done{ok:true} 에서만 커밋(실패 시
이전 캐시 유지) · 집계 기준 단일화 · need_update 가 기존 색상 판정과 동일 기준 ·
셸 2개가 스펙과 주석 1줄 차이. 문서 §0 에 "건드리지 말 것" 으로 명시했다.

수정 항목
  [필수] parse_kst_datetime 이 KST(+9) 를 하드코딩한다. 디스크 감시 last-run 은
    서버 로컬 시각인데 앱이 KST 로 가정해, UTC 서버면 9시간 어긋나 27시간만 지나도
    "하루 넘게 안 돌았다" 경고가 뜬다(해외 VPS 는 UTC 가 기본인 경우가 많다).
    → 서버가 date -d 로 epoch 를 계산해 HM_DASH_DISKMON_LAST_TS 로 넘기고,
      앱은 그것을 우선 사용. 문자열 파싱은 폴백으로만 두고 이름도 정정.
      값이 없을 때 경고를 띄우지 않는 경로까지 테스트로 못 박았다.
  [권장] local_stats 가 매 프레임 scan_cache 전체를 순회한다(대시보드가 기본
    화면이라 항상 켜져 있다). 키 기반 캐시 제안. 단 무효화가 복잡해지면 값이 틀리는
    쪽이 더 나쁘므로 건너뛰어도 된다고 명시.
  [권장] docs/dashboard.md 에 캐시 시각의 의미·자동조회를 안 하는 이유·타임존
    주의·소요 시간 추가
  [선택] 이상 도메인 행 클릭 → 계정 관리 이동

검증: 지시서의 셸 스니펫 bash -n 통과, date -d 변환과 빈 값 처리 실측 확인.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WxEiSzFMdeAzvohAQ39nyJ
@eondcom eondcom changed the title 시작 대시보드 구현 (Phase 1~4) 시작 대시보드 구현 (Phase 1~5) Jul 30, 2026
eondcom and others added 7 commits July 31, 2026 01:06
지시서가 plan-dashboard / plan-upkeep / plan-account-delete 세 브랜치에
흩어져 있어, dashboard-impl 에서 작업하는 Codex 가 문서를 읽을 수 없었다.
6개 문서를 .claude/plans/ 에 모으고 README.md 로 목차를 만든다.

README 에 담은 것
  · 구현 상태 표 (구현됨 3 / 미구현 2)
  · 남은 작업 순서와 각 문서의 선행 조건
    (PHASE6 의 disk-usage.tsv 는 감시 재설치 후 2일 뒤부터 추이가 나온다)
  · 모든 지시서 공통 작업 규칙
  · '이미 검증을 마쳐 바꾸면 안 되는 동작' 목록
    (domain_issue 가 LH 를 안 보는 것, Done{ok:true} 에서만 커밋,
     v-delete-* 경유, 보호계정 이중 방어 등)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WxEiSzFMdeAzvohAQ39nyJ
@eondcom eondcom changed the title 시작 대시보드 구현 (Phase 1~5) 시작 대시보드 구현 (Phase 1~6) Jul 31, 2026
eondcom added 7 commits July 31, 2026 09:31
upkeep-SPEC(백업 현황·휴면 사이트)까지 구현되어 5개 지시서가 모두 끝났다.
남은 작업 절을 '코드가 아니라 운영 확인' 으로 바꿨다 — 삭제 기능 실서버 검증과
디스크 감시 재설치(disk-usage.tsv 기록 시작, 2일 뒤부터 추이).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant