Skip to content

feat(infra): 병렬 worktree 인프라 + 게이트웨이 + 대시보드#15

Merged
developer-1px merged 5 commits into
mainfrom
feat/wt-gateway-clean
Apr 20, 2026
Merged

feat(infra): 병렬 worktree 인프라 + 게이트웨이 + 대시보드#15
developer-1px merged 5 commits into
mainfrom
feat/wt-gateway-clean

Conversation

@developer-1px
Copy link
Copy Markdown
Owner

Summary

  • .claude/hooks/ 4종 + worktree 레지스트리 + wt:list (병렬 세션 가드)
  • Caddy 게이트웨이 (*.localhost:4100) + HTTP 대시보드 (:4000)
  • 브랜치 FNV-1a 해시 결정론 포트 할당
  • wt:start/wt:stop 원커맨드 + sessionStart hook 자동 기동

Why

PR #13의 깨끗한 rebase. base가 main으로, #10 결합 없음.
병렬 worktree의 포트 수동 확인·변경 추적 문제 해소.

Test plan

  • typecheck pass
  • CI baseline (lint warnings 247 = 247)
  • brew install caddy && pnpm wt:starthttp://wt.localhost:4100
  • 두 번째 worktree 생성 시 Caddyfile 자동 갱신

🤖 Generated with Claude Code

유용태 and others added 5 commits April 21, 2026 08:51
- .claude/hooks/worktreeRegistry.mjs: 단일 registry 유틸 (git-common-dir 기반 공유)
- .claude/hooks/allocWorktreePort.mjs: 포트 연번 할당 (min free ≥ 5173)
- .claude/hooks/requireWorktree.mjs: main worktree Edit/Write 차단
- .claude/hooks/sessionStartWorktree.mjs: 세션 시작 시 worktree·포트 가시성 주입
- .claude/hooks/stopRequireCommit.mjs: 종료 시 dirty/unpushed 감지 → /handoff 유도
- .claude/hooks/guardBash.mjs: main commit/push 차단 확장 + cd prefix 감지 fix
- scripts/wtList.mjs: CLI 테이블 + --json/--prune
- vite.config.ts: worktree별 dev port 자동
- .gitignore: .claude/worktrees.json (registry) 제외
- PRD: docs/2026/2026-04/2026-04-21/parallelWorktreePrd.md

de facto "always worktree, never main" (Conductor/Claude Squad/Crystal) 채택.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- scripts/wtCaddy.mjs: worktrees.json → .claude/Caddyfile 자동 생성
- scripts/wtDash.mjs: :4000 HTTP 대시보드 (브랜치/포트/HEAD/diff/dirty)
- allocWorktreePort: 브랜치 FNV-1a 해시 결정론 할당 (북마크 안정성)
- sessionStartWorktree: 세션 시작 시 wtCaddy --reload 자동 트리거
- Caddyfile gitignore
- docs/2026-04-21/worktreeGatewayDashboard.md

접근: http://wt.localhost:4100 (대시보드) · http://{name}.localhost:4100 (각 worktree)
- scripts/wtStart.mjs: idempotent 기동 (Caddyfile 생성 → dash detached → caddy start/reload)
- scripts/wtStop.mjs: caddy stop + dash pkill
- sessionStartWorktree: wtCaddy --reload → wtStart 로 전환 (첫 세션이 자동 기동)
- 스크립트 경로는 import.meta.url 기준으로 해소 (worktree 자기 copy 실행)
@developer-1px developer-1px merged commit 9e739f7 into main Apr 20, 2026
@developer-1px developer-1px deleted the feat/wt-gateway-clean branch April 21, 2026 04:44
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