@walwal-harness/cli 5.4.0 → 5.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@walwal-harness/cli",
3
- "version": "5.4.0",
3
+ "version": "5.4.1",
4
4
  "description": "Production harness for AI agent engineering — Solo/Team mode, Planner, Generator(BE/FE), Evaluator(Func/Visual), optional Brainstormer. Supports React, Next.js, and Flutter FE stacks.",
5
5
  "bin": {
6
6
  "walwal-harness": "bin/init.js"
@@ -382,7 +382,7 @@ render_dashboard() {
382
382
  render_team_status
383
383
  render_team_features
384
384
  render_team_bottleneck
385
- render_archive_prompts
385
+ # Archive Prompt는 별도 패널(harness-prompt-history.sh)에서 렌더링 — Dashboard 모니터링 영역 보호
386
386
  ;;
387
387
  *)
388
388
  render_solo_sprint_overview
@@ -393,7 +393,7 @@ render_dashboard() {
393
393
  fi
394
394
 
395
395
  render_solo_agent_info
396
- render_archive_prompts
396
+ # Archive Prompt는 별도 패널(harness-prompt-history.sh)에서 렌더링
397
397
  ;;
398
398
  esac
399
399
  }
@@ -4,13 +4,15 @@
4
4
  # Team Mode (--team):
5
5
  # ┌──────────────┬──────────────┬──────────────┐
6
6
  # │ │ │ TEAM 1 │
7
- # │ Dashboard │ Gotcha & │ │
8
- # │ (queue + │ Memory ├──────────────┤
9
- # │ status + │ │ TEAM 2 │
10
- # │ archive) │ │ │
11
- # │ │ ├──────────────┤
12
- # │ │ │ TEAM 3 │
7
+ # │ Dashboard │ │ │
8
+ # │ (queue + │ Gotcha & ├──────────────┤
9
+ # │ status + │ Memory │ TEAM 2 │
10
+ # │ features) │ │ │
11
+ # ├──────────────┤ ├──────────────┤
12
+ # │ Archive │ │ TEAM 3 │
13
+ # │ Prompt │ │ │
13
14
  # └──────────────┴──────────────┴──────────────┘
15
+ # (Archive Prompt는 별도 패널 — Dashboard 모니터링 영역 보호)
14
16
  #
15
17
  # Rendering strategy:
16
18
  # 1. iTerm2 detected → native split panes (no tmux needed)
@@ -104,6 +106,12 @@ launch_iterm2_team() {
104
106
  set name to "harness-studio"
105
107
  write text "cd '${PROJECT_ROOT}' && bash '${SCRIPT_DIR}/harness-dashboard.sh' '${PROJECT_ROOT}'"
106
108
 
109
+ -- Split down (bottom of Dashboard column) → Archive Prompt
110
+ set archivePane to (split horizontally with default profile)
111
+ tell archivePane
112
+ write text "cd '${PROJECT_ROOT}' && bash '${SCRIPT_DIR}/harness-prompt-history.sh' '${PROJECT_ROOT}'"
113
+ end tell
114
+
107
115
  -- Split right → Gotcha & Memory
108
116
  set dashPane to (split vertically with default profile)
109
117
  tell dashPane
@@ -182,15 +190,19 @@ launch_tmux_team() {
182
190
  "bash --norc --noprofile -c 'exec bash \"${SCRIPT_DIR}/harness-monitor.sh\" \"${PROJECT_ROOT}\" --team 2'")
183
191
  PANE_T3=$(tmux split-window -v -p 50 -t "$PANE_T2" -c "$PROJECT_ROOT" -P -F '#{pane_id}' \
184
192
  "bash --norc --noprofile -c 'exec bash \"${SCRIPT_DIR}/harness-monitor.sh\" \"${PROJECT_ROOT}\" --team 3'")
193
+ # Dashboard 열을 상(Dashboard)/하(Archive Prompt)로 분할 — archive가 길어져도 모니터링 유지
194
+ PANE_ARCHIVE=$(tmux split-window -v -p 35 -t "$PANE_DASH" -c "$PROJECT_ROOT" -P -F '#{pane_id}' \
195
+ "bash --norc --noprofile -c 'exec bash \"${SCRIPT_DIR}/harness-prompt-history.sh\" \"${PROJECT_ROOT}\"'")
185
196
 
186
197
  tmux send-keys -t "$PANE_DASH" "bash \"${SCRIPT_DIR}/harness-dashboard.sh\" \"${PROJECT_ROOT}\"" Enter
187
198
  tmux send-keys -t "$PANE_GOTCHA" "bash \"${SCRIPT_DIR}/harness-gotcha-memory.sh\" \"${PROJECT_ROOT}\"" Enter
188
199
 
189
- tmux select-pane -t "$PANE_DASH" -T "Dashboard"
190
- tmux select-pane -t "$PANE_GOTCHA" -T "Gotcha & Memory"
191
- tmux select-pane -t "$PANE_T1" -T "TEAM 1"
192
- tmux select-pane -t "$PANE_T2" -T "TEAM 2"
193
- tmux select-pane -t "$PANE_T3" -T "TEAM 3"
200
+ tmux select-pane -t "$PANE_DASH" -T "Dashboard"
201
+ tmux select-pane -t "$PANE_ARCHIVE" -T "Archive Prompt"
202
+ tmux select-pane -t "$PANE_GOTCHA" -T "Gotcha & Memory"
203
+ tmux select-pane -t "$PANE_T1" -T "TEAM 1"
204
+ tmux select-pane -t "$PANE_T2" -T "TEAM 2"
205
+ tmux select-pane -t "$PANE_T3" -T "TEAM 3"
194
206
  tmux select-pane -t "$PANE_DASH"
195
207
 
196
208
  tmux set-option -t "$SESSION_NAME" pane-border-status top 2>/dev/null || true
@@ -27,9 +27,18 @@ disable-model-invocation: false
27
27
  2. `.harness/progress.log`에 요약 한 줄 추가
28
28
  3. **모드 감지**: `.harness/progress.json`의 `mode` 필드 확인
29
29
  - **`"team"`**: Team Mode 활성. 별도 안내 없이 즉시 STOP.
30
- 출력: `"✓ Dispatcher 완료. Team Mode가 자율 실행 중입니다."`
31
- - **`"solo"` / `"paused"`**: Solo Mode.
32
- 출력: `"✓ Dispatcher 완료. 다음: /harness-solo 또는 프롬프트로 계속하세요."`
30
+ 출력 (아래 3줄을 그대로 사용):
31
+ ```
32
+ ✓ Dispatcher 완료 — pipeline.json 생성됨 (next_agent=<값>).
33
+ → 별도 tmux 창의 Team Worker들이 이 파일을 감지해 자동으로 다음 에이전트를 실행합니다. 사용자 입력은 필요 없습니다.
34
+ → 진행 상황은 tmux Dashboard/Team 패널에서 확인하세요. 중단하려면 `bash scripts/harness-tmux.sh --kill`.
35
+ ```
36
+ - **`"solo"` / `"paused"`**: Solo Mode. 자동 실행되는 것이 아무것도 없음 — 사용자 입력 대기.
37
+ 출력 (아래 2줄을 그대로 사용):
38
+ ```
39
+ ✓ Dispatcher 완료 — pipeline.json 생성됨 (next_agent=<값>). 자동 실행은 시작되지 않았습니다.
40
+ → 다음 에이전트를 돌리려면 `/harness-solo` 를 입력하거나, 그냥 후속 지시를 프롬프트로 주세요.
41
+ ```
33
42
  4. **STOP. 다음 에이전트를 직접 호출하지 않는다.**
34
43
  - Team 모드에서는 `/harness-team 실행하시겠습니까?` 같은 **질문을 하지 않는다**. Teams는 이미 실행 중이거나 사용자가 별도로 시작한다.
35
44