System Changelog
RELEASE LOG
써드 볼트의 개발 내역, 각종 변경 사항, 기능 업데이트 및 디자인 리뉴얼 내역을 트래킹합니다.
지속적으로 업데이트되는 블로그의 버전 히스토리입니다.
Project Milestone [v2.0 - v3.0]
v2.0
v3.0
STATUS:
v2.1.4.8 (Strava 동기화 로그 기능 추가 및 Hostinger 크론잡 시각 수정)
PROGRESS: 14%
v1.x Era Achievements
🥇
v 1.0
3rd Vault Foundation
2026.02.01 ~ 03.10
🤖
v 1.1
AI Newsroom System
2026.03.11 ~ 03.12
⚙️
v 1.2
System Architecture & Optimization
2026.03.13 ~ 03.23
🎨
v 1.3
Identity & Landing Renewal
2026.03.24
🎮
v 1.4
Game Review System Launch
2026.03.25 ~ 03.26
👾
v 1.5
Game Review RPG Header & Darkmode
2026.03.30 ~ 03.31
🧊
v 1.6
Header Architecture & UI Refinement
2026.04.01
🪪
v 1.7
Logo Wordmark Redesign & Dark Mode 2.0
2026.04.04 ~ 04.18
🏆
v 1.8
Game Archive Trophy Modal & Dark Admin
2026.04.14
🚴
v 1.9
Strava Analytics & Mobile Optimization
2026.04.19 ~ 05.07
Release History Log
Strava 동기화 로그 기능 추가 및 Hostinger 크론잡 시각 수정
- [SYS] Hostinger 서버 크론잡 시각 수정 — `0 4`/`0 7` (UTC) → `5 5`/`15 5` (UTC)로 교체 (v2.1.4.7 WP cron UTC 05:00 변경 후 `0 4` 트리거가 예정 시각보다 이전이어서 자동 동기화 미실행되던 문제 해결)
- [SYS] strava_log_sync() 함수 추가 — 자동/수동 동기화 실행 시 wp_options에 최근 10개 로그 저장 (06-cron.php)
- [UI/UX] BOX05에 최근 동기화 로그 2개 표시 — 자동(초록)/수동(파랑) 뱃지 + 실행 시각 (02-admin-page.php)
- [UI/UX] 동기화 로그 표시용 CSS 추가 (assets/admin-style.css)
Strava 자동 동기화 시각 수정 및 타임존 정확도 개선
- [SYS] strava-personal 자동 동기화 시각 03:00 → 14:00 (한국시 오후 2시)로 변경
- [SYS] 백필 스트림 스케줄 13:10 → 14:10으로 변경
- [CORE] fix: 크론 등록 시 strtotime() 대신 wp_timezone() 기준 DateTime 사용 — 서버 타임존 불일치 문제 해결
- [CORE] fix: 관리자 페이지 시각 표시 date() → wp_date() 교체 — 다음 실행 시각이 WP 사이트 타임존 기준으로 정확히 표시됨
- [UI/UX] BOX04 자동 동기화 레이블 하드코딩 제거 — wp_next_scheduled() 실제 시각을 동적으로 표시
seen_links 자동 커밋 제거 — GitHub Actions Cache로 일원화
- [SYS] daily_report.yml, rerun_newsroom.yml의 'Commit seen_links.json' git 커밋 스텝 삭제
- [SYS] .gitignore에 Newsroom/seen_links.json 추가, git 추적 해제
- [SYS] seen_links.json은 이미 actions/cache로 영속 보관 중이었으나 git 커밋 스텝이 중복으로 남아 main 브랜치에 매일 자동 커밋을 생성하던 문제 해결 — 로컬 push 시 diverge 반복 발생의 원인이었음
Now 타임라인 관리자 에디터 전면 개선 (now_v3)
- [UI/UX] 에디터 폼 레이아웃 전면 개편 — 날짜·내용·미디어·캡션·YouTube 필드 구조화, 실시간 미리보기 패널(550px) 추가 (inc/now-timeline.php)
- [UI/UX] 미리보기 패널 정렬 토글(좌/우) 추가 — 홀수/짝수 항목 레이아웃 사전 확인 가능
- [UI/UX] 에디터 리스트 월별 탭 필터 추가 — 진입 시 최신 월 자동 활성, 탭 클릭으로 즉시 JS 필터링(리로드 없음), 각 탭에 항목 수 배지 표시
- [UI/UX] 리스트 상단 검색창 추가 — 탭 무시하고 전체 날짜+내용 실시간 검색, N건 카운트 표시
- [CORE] fix: 월별 네비게이션 첫 진입 시 최신 월 active 표시 누락 버그 수정
newsroom 리다이렉트 Cloudflare 캐싱 버그 수정
- [SYS] /newsroom/ 302 리다이렉트 전 Cache-Control no-store 헤더 추가 — Cloudflare가 리다이렉트 응답을 캐싱해 발행 후 ~1시간 동안 전날 포스트가 표시되던 문제 수정 (functions.php)
release-tracker 게이지 마커 디자인 개선
- [UI/UX] v2.0·v3.0 endpoint 마커 — 라벨+세로 라인+도트 구조로 바 위쪽에 표시
- [UI/UX] current/filled 마커 — 바 아래 버전 라벨 제거, 도트만 표시 (STATUS 영역과 중복 제거)
- [UI/UX] .vrt-gauge-wrapper 상단 마진 2.5rem → 3.5rem (라벨 공간 확보)
changelog-v1.html v1.0·v1.1 섹션 — git 히스토리 기반 엔트리 복원
- [SYS] changelog-v1.html v1.0 섹션 "0 entries" 플레이스홀더 → 9개 엔트리로 교체 (2026-03-01 ~ 2026-03-10)
- [SYS] changelog-v1.html v1.1 섹션 "0 entries" 플레이스홀더 → 2개 엔트리로 교체 (2026-03-11 ~ 2026-03-12)
- [SYS] 3rdvault_v1.0 아카이브 저장소 git 히스토리 분석으로 복원 — 자식 테마 초기 구축부터 라이트박스·뉴스룸 첫 구현까지
changelog v1.x 페이지 다크모드 적용 — 전역 변수 체계 준수
- [UI/UX] changelog-v1.css 자체 변수 시스템 제거, 전역 변수(--bg-main, --bg-panel, --text-main 등) 직접 참조로 전환
- [UI/UX] gold 계열 색상 --link-entry / --link-hover 차용 (케이스 A, body.dark-theme 블록 없음)
- [SYS] page-changelog-v1.php HTML style 블록 주입 롤백 — 전역 CSS 오염 제거
- [UI/UX] changelog-v1.html dark mode 트리거 `@media prefers-color-scheme` → `body.dark-theme` 교체
뉴스룸 공지 방식 리뉴얼 — PHP 자동 감지로 전환 + 검색 태그 fix
- [SYS] notice-ticker.php에 vault_get_newsroom_notice_entry() 추가 — 오늘 YYYYmmdd_newsroom 포스트가 6시간 이내 발행됐으면 WP 포스트 생성 없이 티커 항목 자동 삽입
- [SYS] vault_get_notice_posts()에 뉴스룸 항목 맨 앞 삽입 로직 추가 (array_unshift)
- [SYS] curator2.py의 post_newsroom_notice() 호출 제거 및 함수 본체 deprecated 처리
- [SYS] 로컬 DB의 기존 누적 _newsroom_notice 포스트 21개 일괄 삭제 (WP-CLI)
- [UI/UX] 홈화면 사이드 태그 검색창 마우스 호버 액션 추가.
mini-panel TOC 1열 수평 스크롤 + 포스트 제목 마키 스크롤
- [UI/UX] floating-toc 항목 1열 고정 (white-space: nowrap + overflow: hidden + text-overflow: ellipsis)
- [UI/UX] TOC 항목 호버 시 transition으로 수평 슬라이드, active 항목 4초 왕복 루프 애니메이션
- [UI/UX] TOC 항목 초과 시 floating-toc 내부 수직 스크롤 (flex: 1 + min-height: 0 + overflow-y: auto)
- [UI/UX] floating-title-inner max-height: calc(100vh - 220px) + flex column 전환 — to Top 버튼 겹침 방지
- [UI/UX] f-title 포스트 제목 1열 고정 + 무한 마키 스크롤 (24s linear, 클론 복사본으로 끊김 없는 루프)
- [SYS] measureOverflows() 패널 visible 시점 실행 — DPR 서브픽셀 오측정 방지, CSS animation 재시작으로 keyframe var 캐시 초기화
changelog-v1 WordPress 페이지 통합 + mini-panel TOC 지원
- [SYS] page-changelog-v1.php 커스텀 템플릿 신규 생성 — changelog-v1.html body를 WP 헤더/푸터로 래핑, 링크 PHP 동적 생성
- [SYS] css/changelog-v1.css 분리 — '.changelog-v1-wrap' 스코프 제한으로 글로벌 충돌 차단, 다크모드 'body.dark-theme' 연동
- [SYS] WP 페이지 /changelog/v1/ 생성 (로컬 WP-CLI + 라이브 REST API) — sitemap 자동 포함, SEO 클린 URL 확보
- [SYS] .htaccess에 기존 테마 경로 URL → /changelog/v1/ 301 리다이렉트 추가
- [CORE] inc/release-tracker.php "상세 →" 링크를 home_url('/changelog/v1/')로 교체
- [UI/UX] js/mini-panel.js에 changelog-v1 분기 추가 — 'page-template-page-changelog-v1' body 클래스 감지, TOC 소스를 section.major[id] 10개로 교체
- [SYS] mini-panel.js 버전을 filemtime 기반으로 교체 — Cloudflare 캐시 자동 무효화
changelog-v1.html 양식 통일 & 레이아웃 1열 평탄화
- [UI/UX] v1.x 아카이브 23개 엔트리 자동 타이틀 부여 — 04-13 이전 엔트리 양식을 04-14+와 통일
- [UI/UX] 단일 item + sub-bullets 구조 3개 평탄화 — item을 entry-title로 승급, sub-bullets는 평면 items로 전환 (부모 태그 상속)
- [UI/UX] .entry-items > li 레이아웃 flex → grid 전환 — sub-bullets가 다음 행 전체폭으로 자연스럽게 wrap되도록 처리
- [UI/UX] .entry-sub grid-column: 1 / -1 적용 — 들여쓰기 + 좌측 border 유지하면서 1열 흐름 확보
- [UI/UX] filetime 기반 트랜지언트 자동 무효화 코드 추가
릴리즈 로그 입력 방식 변경 — changelog.md 단일 소스
- [SYS] changelog.md YAML frontmatter 단일 소스 워크플로 전환 — 신규 버전 추가 시 PHP 수정 불필요
- [CORE] vrt_parse_changelog() 재작성 — date/version/title/progress 필드 자동 파싱
- [CORE] $vrt_versions 배열 제거, v1.x 메이저 10개는 $vrt_v1_archive 상수로 박제
- [SYS] vrt_auto_progress() 도입 — progress 필드 미지정 시 minor*10 + patch 공식 자동 계산
- [UI/UX] 트로피 그리드에 "상세 →" 링크 추가 — doc/changelog-v1.html 아카이브 연결 (같은 탭)
- [UI/UX] changelog-v1.html 돌아가기 버튼 — history.back() 처리 (직접 접속 시 사이트 루트로 폴백)
- [CORE] delete_transient 무조건 호출 버그 수정 (트랜지언트 1시간 캐시 실제 작동)
- [UI/UX] 게이지 마커 단순화 — v2.0 시작 / 현재 / v3.0 종료 3개만 표시
- [SYS] VRT_CURRENT_VERSION 상수 → vrt_current_version() 함수 전환 (custom-footer.php 호출 교체)
다크모드 코어 정리 & 게임 리뷰 트로피 보정
- [UI/UX] 다크모드 코어 CSS 정리 — 불필요한 빈줄 제거 (css/dark-mode-core.css 2,129줄 → 1,538줄)
- [CORE] dark-mode/page-colors dark_sample.webp 경로 하드코딩 → 첨부파일 동적 조회로 변경
- [UI/UX] 게임 리뷰 트로피 4개 교체 — 중복/빈껍데기 제거 후 신규 항목으로 대체
- [CORE] 본문 양쪽 공백 관련 버그 수정
다크모드 프리셋 재정비 & 릴리즈 트래커 마무리
- [UI/UX] 다크모드 프리셋 3종 신규 추가 — Urban Nocturne, Lapis Velvet, Fireside
- [SYS] 다크모드 프리셋 7종 폐기 — doc/deprecated-presets.md로 아카이브 이전
- [CORE] 릴리즈 트래커 버전 키 x.x.x 표기 수정 + 게이지 마커 로직 개선
- [SYS] v2.0-beta 브랜치 main 머지 완료 — 15개 커밋 통합 (대규모 정비 + v2.1/v2.2 준비)
- [SYS] docs — v2.0-beta 머지 완료 체크 + changelog 버전 키 수정
Strava Phase 2 — PHP 템플릿 분리
- [SYS] strava-personal/includes/13-helpers.php 신설 — 헬퍼 함수 4개 (zone status, render zone row, calendar cell, spark bar class)
- [SYS] strava-personal/templates/topbar.php 신설 — Topbar 4박스 (통합 스파크+스탯·캘린더·훈련부하·TSB) 240줄
- [SYS] strava-personal/templates/analysis-row.php 신설 — BOX5 심박효율·BOX6 VO2Max·BOX7 PMC 분석 행 221줄
- [SYS] strava-personal/templates/card.php 신설 — 활동 카드 1개 빌드 (필드 추출 + 타입 라벨 + HTML) 119줄
- [CORE] 05-page-builder.php god function 분리 — 920줄 → 331줄 (-589, 64% 감소)
- [CORE] HTML 동일성 검증 — 2026-04 페이지 diff 시각 동일 (Step 3·4 완전 동일)
Release Tracker Milestone Transition
- [UI/UX] 진행률 게이지 범위 전환 v1.0~v2.0 → v2.0~v3.0 (마일스톤 라벨 갱신)
- [UI/UX] v1.x 메이저 10개 RPG 트로피 그리드 신설 (메달 이모지 + 카드 그리드, 게이지 직후 노출)
- [UI/UX] 상세 리스트에 v2.0 Era 가로선 구분자 추가 (역순 출력에서 era 전환점 감지)
- [SYS] 버전 era 추론 헬퍼 vrt_get_era() + 메이저 버전 글로벌 배열 $vrt_major_versions 신설
- [CORE] vrt_calc_marker_positions() 재작성 — era v2/v3 만 게이지 마커로 사용
- [UI/UX] 트로피·era 다크모드 변수 셋 신규 추가 (라이트/다크 자동 대응)
Massive Restructure & Optimization
- [CORE] Phase 1 PHP 보안 정비 — Strava SQL Injection 8건 wpdb prepare, 02-admin-page nonce 통합 (8개 폼), 03-oauth 응답 3중 가드
- [CORE] CRITICAL — inc/release-tracker.php 배열 키 중복 v1.9.1.1 해소 (v1.9.1.0 분리, 데이터 손실 방지)
- [SYS] dark-mode/ajax-handler darkmode_verify_request 헬퍼 통일, 06-cron 백필 13:10 변경
- [UI/UX] inc/custom-header get_category_by_slug 5건 nullsafe 연산자 적용 (PHP 8.4 안전성)
- [UI/UX] Phase 2 다크모드 자기참조 변수 수정 (css/dark-mode-core.css --theme-text-color → --text-main)
- [SYS] Phase 3.5 doc/ 폴더 신설 — 흩어진 .md 10개 git mv 통합, CLAUDE.md 참조 경로 갱신
- [SYS] Phase 4 old_things/ 폴더 신설 — 레거시 24개 (구버전 PHP/CSS, .bak, 데드 JS 3개, 일회용 스크립트) git mv 통합
- [SYS] Phase 5 Claude 메타 헤더 일괄 삽입 (60 파일, 이중 레이어 주석) — PHP 35 + CSS 17 + JS 8