fix(deploy): migrate deployment scripts and docs from tmux to herdr
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# ✅ deploy/ 배포 설정 tmux→herdr 전환 수정 완료 보고
|
||||
|
||||
**Job ID**: 94ce2fcc (동일 작업: 60af70e4)
|
||||
**Role**: Implementation (Cline)
|
||||
**Plan**: [report-baa15c96.md](.agents/reports/canary-projects-multi-agent-mux-planner-reviewer-claude/report-baa15c96.md)
|
||||
**Brief**: [.mam/deploy_patch_brief.md](.mam/deploy_patch_brief.md)
|
||||
|
||||
## 적용된 변경 (5 파일, 7 에디트)
|
||||
|
||||
### 1. deploy/install_mam.sh (기능 파손 수정 — 우선순위 1)
|
||||
- **L224**: `--tmux-server multi-agent-mux` → `--herdr-server multi-agent-mux`
|
||||
- 근거: `create_session.sh:63`의 실제 플래그(`--herdr-server`) — 기존 `--tmux-server`는 create_session.sh가 거부(unknown arg, exit 2)하여 복붙 시 즉시 실패하는 기능 파손
|
||||
- **L227**: `tmux -L multi-agent-mux attach -t <session_name>` → `HERDR_SERVER_NAME=multi-agent-mux herdr agent attach <session_name>`
|
||||
- 근거: `create_session.sh:328`이 YAML `attach_command`로 방출하는 canonical 형식과 1:1 일치 (`HERDR_SERVER_NAME={server} herdr agent attach {name}`)
|
||||
|
||||
### 2. deploy/install.sh
|
||||
- **L31**: `check_cmd tmux` → `check_cmd herdr` (올바른 의존성 진단)
|
||||
- **L249**: `TMUX_SERVER_NAME=default` → `HERDR_SERVER_NAME=default` (소비처 0인 죽은 설정 → 실제 소비 변수)
|
||||
|
||||
### 3. deploy/README.md
|
||||
- **L9**: `checks system requirements (\`tmux\`, \`python3\`)` → `\`herdr\`, \`python3\``
|
||||
|
||||
### 4. deploy/INSTALL.md
|
||||
- **L21**: 진단 목록 `tmux` → `herdr`
|
||||
- **L37**: 의존성 진단 `tmux` → `herdr`
|
||||
- **L69**: `tmux가 소멸한 경우` → `herdr 서버가 소멸한 경우`
|
||||
|
||||
### 5. deploy/plugin.json
|
||||
- **L3**: `Backplane on Tmux & MQTT.` → `Backplane on Herdr & MQTT.`
|
||||
|
||||
## 검증 결과 (DoD)
|
||||
|
||||
1. ✅ **잔존 스윕**: `grep -rin tmux deploy/` → **0건** (대소문자 무시)
|
||||
2. ✅ **정적**: `bash -n` install_mam.sh/install.sh 모두 exit 0; `shellcheck -S warning` exit 0 (신규 경고 0건); `python3 -m json.tool plugin.json` VALID
|
||||
3. ✅ **기능**: `--herdr-server`가 `create_session.sh:35/63`의 실제 플래그 확인; attach 형식이 `create_session.sh:328` canonical 형식과 1:1 일치
|
||||
4. ✅ **회귀**: `env -u HERDR_SERVER_NAME pytest tests/test_tier1_unit.py tests/test_tier2_component.py` → **55 passed**
|
||||
|
||||
## 계획서 교정사항 반영
|
||||
- ~~`HERDR_SESSION_NAME`~~ → **`HERDR_SERVER_NAME`** (스킬 전체가 소비하는 유일한 변수명) ✅
|
||||
- ~~`--herdr-session`~~ → **`--herdr-server`** (create_session.sh:63 of 유일한 플래그) ✅
|
||||
|
||||
## 제외 항목 (계획서 §1-6)
|
||||
- remove.sh / update.sh: tmux/kill 로직 없음 → 수정 불요 ✅
|
||||
- generate-env.sh / gitea-ci.yml: tmux 참조 없음 → 수정 불요 ✅
|
||||
|
||||
[VERDICT: PASS]
|
||||
@@ -1576,7 +1576,7 @@ send_keys_safe() {
|
||||
_sks_herdr send-keys -t "$sess" C-m
|
||||
return 0
|
||||
fi
|
||||
sleep 0.5
|
||||
sleep "${SKS_PASTE_SLEEP:-1.5}"
|
||||
local pane_content was_popup=0
|
||||
pane_content=$(_pane_capture "$sess")
|
||||
if printf '%s\n' "$pane_content" | grep -Eq "Pasted text|paste again to expand"; then
|
||||
|
||||
@@ -138,6 +138,19 @@ cmd_submit() {
|
||||
- **Timeout**: $TIMEOUT s (Idle: $IDLE_TIMEOUT s)
|
||||
- **Output Report Path**: .mam/jobs/$JOB_ID/$AGENT-reports/report-final.md
|
||||
|
||||
## 🔔 Execution Commands
|
||||
On start run:
|
||||
python3 .agents/skills/multi-agent-mux-delegate-job/scripts/publish_event.py --registry-dir .mam/jobs --job $JOB_ID --event started
|
||||
|
||||
On progress (optional):
|
||||
python3 .agents/skills/multi-agent-mux-delegate-job/scripts/publish_event.py --registry-dir .mam/jobs --job $JOB_ID --event progress --detail '<short status>'
|
||||
|
||||
On success run:
|
||||
python3 .agents/skills/multi-agent-mux-delegate-job/scripts/publish_event.py --registry-dir .mam/jobs --job $JOB_ID --event completed --detail '<one-line summary>'
|
||||
|
||||
On failure run:
|
||||
python3 .agents/skills/multi-agent-mux-delegate-job/scripts/publish_event.py --registry-dir .mam/jobs --job $JOB_ID --event error --detail '<one-line reason>'
|
||||
|
||||
## 🔎 Task Description
|
||||
$PROMPT
|
||||
EOF
|
||||
@@ -184,7 +197,8 @@ EOF
|
||||
# an id from an earlier session is the #1 reason a delegated job sits idle and
|
||||
# times out (see SKILL.md "Wrong job_id propagated to the agent"). We make the
|
||||
# freshness explicit in the instruction header.
|
||||
local instructions="Your job_id is \"$JOB_ID\". Detailed task requirements, instructions, and target output paths are documented in the task brief file at: .mam/jobs/$JOB_ID/brief.md. Please READ and follow .mam/jobs/$JOB_ID/brief.md to complete your work. Commands: start='$pub --event started', success='$pub --event completed --detail <summary>', error='$pub --event error --detail <reason>'."
|
||||
# Keep this short and ASCII-only to prevent paste/wrap rendering issues in CLI REPLs.
|
||||
local instructions="Job $JOB_ID: Read .mam/jobs/$JOB_ID/brief.md and complete the task."
|
||||
|
||||
run_agent "$JOB_ID" "$instructions"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user