## 2026-05-28 — Harness 탭을 프로젝트 설정으로 이동 + Git 히스토리 절대 시각 표시

### 배경

프로젝트 상세 페이지의 탭 바가 점점 길어지면서 일상 작업 영역(Vault / Planner / Sessions / Tasks 등)이 setup 성격의 탭들과 시각적으로 경쟁하고 있었다. 동시에 Git 탭의 커밋 히스토리는 "3h 전 / 2d 전" 같은 상대 시각으로 표기되어 정확한 시점을 가늠하기 어려웠고, row separator가 본문보다 눈에 띄어 위계가 거꾸로였다.

이번 변경은 두 가지 작은 정돈 작업을 묶었다:

1. **Harness 패널은 일회성 setup 영역**(Claude/Gemini/Codex CLI settings, memory 파일, MCP 서버 편집)이라 매일 만지지 않는데 톱-레벨 탭 자리를 차지하고 있었다. 프로젝트 설정 패널(ProjectHeader settings) 안으로 옮겨 탭 바의 노이즈를 줄임.
2. **GitStatusPanel의 커밋 히스토리**는 상대 시각이 디버그/리뷰 시 정확한 시점을 추적할 때 불편했음. 절대 시각(`YY-MM-DD HH:mm`)으로 바꾸고, 시각 컬럼은 monospace + 너비 확보, 분리선과 메타데이터 contrast를 재조정.

### 주요 변경

#### 1. Harness 탭 → ProjectHeader 설정의 harness 섹션 (`1aac5ca`)

- **`src/client/src/plugins/harness/index.ts`**: 플러그인 manifest의 `hasTab`을 `true` → `false`로 변경. 더 이상 `openTabHint` i18n 키를 사용하지 않으므로 en/ko에서 제거.
- **`src/client/src/components/ProjectHeader.tsx`**: 설정 패널 탭 리스트(general / security / plugins)에 4번째로 `harness` 항목 추가. security 바로 뒤, plugins 바로 앞에 배치. 해당 브랜치에서는 기존 `HarnessPanel` 컴포넌트를 그대로 마운트 — 컴포넌트 자체는 변경 없음.
- **plugins 설정 섹션**: `harness`는 plugins 리스트에서 필터 아웃되어 중복 노출되지 않음.
- **`src/client/src/plugins/harness/HarnessSettings.tsx`**: 이 스텁은 더 이상 어디서도 마운트되지 않으므로 `null` 반환만 남기고 본문 제거.

#### 2. Git 커밋 히스토리: 상대 시각 → 절대 시각 + row 시각성 정돈 (`09c18f6`)

- **`src/client/src/components/GitStatusPanel.tsx`**:
  - `relativeTime()` 헬퍼 제거, `formatCommitDate()`로 교체 — 출력 형태는 `YY-MM-DD HH:mm` 24시간.
  - 시각 컬럼 너비 `w-14` → `w-28`로 확장, font를 monospace로 전환해 자릿수가 행 간 정렬되게 함.
  - 시각 / author / hash 같은 보조 메타데이터의 색을 `warm-400/500` → `warm-600`으로 한 단계 진하게 (다크 모드는 `#3C3C3C/#5A5A5A` → `#858585`). 너무 흐려 가독성이 떨어지던 문제 해결.
  - 행 하단 separator는 반대로 `warm-50/50` → `warm-50/20`으로 흐리게 — 시선이 row 내용에 머무르도록 분리선이 본문과 경쟁하지 않게 함.

### 수정된 주요 파일

| 파일 | 변경 내용 |
|------|----------|
| `src/client/src/plugins/harness/index.ts` | `hasTab: false`, `openTabHint` 키 제거 |
| `src/client/src/components/ProjectHeader.tsx` | settings 탭에 `harness` 섹션 추가, HarnessPanel 직접 마운트 |
| `src/client/src/plugins/harness/HarnessSettings.tsx` | 스텁 본문 제거 (null 반환) |
| `src/client/src/components/GitStatusPanel.tsx` | `formatCommitDate()` 절대 시각 포맷 + 컬럼 너비/폰트/contrast 재조정 |

### 아키텍처 결정

1. **Harness는 "탭" 대신 "설정"**: Harness 패널은 매일 만지는 작업 영역이 아니라 CLI 설치 후 한 번 채워두는 setup 성격이라 항상 보이는 탭 슬롯을 차지할 가치가 낮다. 다른 setup 항목(보안, 플러그인 토글)과 같은 레벨인 ProjectHeader 설정 안이 시맨틱하게 맞음. 컴포넌트 자체(HarnessPanel)는 재사용해서 변경 범위 최소화.
2. **Git 히스토리는 디버그 도구**: 상대 시각은 "최근에 뭐 했었지" 류의 빠른 스캔에는 좋지만, 커밋 히스토리는 보통 디버그/리뷰 맥락에서 보므로 정확한 시점이 더 가치 있다. 자릿수 정렬을 위해 monospace를 채택.
3. **위계 정렬은 separator를 누르는 방향으로**: row 내부 텍스트 contrast를 올리고 separator를 흐리게 — 둘 다 contrast를 올리는 것보다 본문 우위가 더 분명해짐.
