- Resolve Herdr shim 5 routing & paste defects (ISSUE-1 ~ ISSUE-5):
* paste-buffer: use pane send-text without auto-enter, propagate rc=3 to send_keys_safe
* exact-match pane resolution: remove substring matching ('in tn') across all branches
* workspace scoping: introduce HERDR_WORKSPACE_ID and .mam/herdr_workspace_id persistence
* unified resolver: single _resolve_herdr_pane_id helper across shim commands
- Resolve dialog token false-positive on 'Yes, try it' tip and isolate fullscreen modal rejection
- Sync mock Herdr CLI contracts in tests/conftest.py
- Add contract tests H-15~H-23 and regression tests D-4~D-7 (412 tests, 100% PASS)
- Add multi-agent loop plans, review reports, and bug report
- Update framework and skill packages to v3.0.1
6.6 KiB
name, description, version, author, license, platforms, environments, metadata
| name | description | version | author | license | platforms | environments | metadata | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| multi-agent-mux-status | Read-only instant snapshot of all agent herdr sessions — name, YAML status, herdr alive, pane cmd/cwd, resume UUID on disk, and any drift. No mutation. Reuses reconcile.sh --dry-run for the diff logic. Use when you want to know 'what's running RIGHT NOW' without spinning up the monitor loop. | 3.0.1 | godopu | MIT |
|
|
|
Multi-Agent Status — Read-Only Instant Snapshot
Companion skills:
multi-agent-mux-create(start),multi-agent-mux-resume(re-attach),multi-agent-mux-stop(terminate),multi-agent-mux-monitor(live polling). Herdr Isolation:status명령은 YAML의herdr_session필드를 자동으로 파싱하여 상태를 확인하므로,HERDR_SESSION_NAME환경변수를 수동으로 지정하지 않아도 모든 격리 서버의 세션 상태를 통합 조회합니다. Single source of truth:./.mam/agent-sessions.yaml.
What this skill does
Print a single table of every agent herdr session, comparing YAML state to actual herdr state. No mutation. No polling loop.
This is the "what's running right now?" answer — faster than dispatching multi-agent-mux-monitor (which polls every 30s) and safer than reconcile.sh --once --emit-diff (which mutates as a side effect).
Pre-flight
has_real_herdr || { echo "ERROR: herdr not installed"; exit 1; } # lib.sh helper (B-3)
command -v python3
test -f .mam/agent-sessions.yaml
command -v herdrandtype -P herdrboth report success even when herdr is not installed — they match lib.sh'sherdr()function and the.mam/shimwrapper respectively. Always usehas_real_herdr.
If agent-sessions.yaml doesn't exist or is malformed → print clear error, exit 1. Do not create it. (Use multi-agent-mux-create first.)
Workflow
bash .agents/skills/multi-agent-mux-status/scripts/status.sh [--json]
The script:
- Calls
reconcile.sh --once --emit-diff --dry-run(read-only; no YAML mutation) for the drift snapshot - Loads
agent-sessions.yaml(read-only) to enrich the table - For each row in
herdr_sessions[]:- herdr alive? (via
herdr agent get <name>, real native command — the script sourceslib.shinternally, which is what lets it also spell this asherdr has-session -t <name>) - pane cmd, cwd (via
herdr agent get <name>, likewise shimmed asherdr list-panesinternally) - resume UUID on disk? (claude:
$CLAUDE_PROJECT_DIR/<key>/<uuid>.jsonlwith default~/.claude/projects/; agy:$HOME_DIR/.gemini/antigravity-cli/conversations/<uuid>.dbwith default~/.gemini/...)
- herdr alive? (via
- For each herdr session matching
*-creator-*not in YAML → flag as "unregistered" - Prints a table (default) or JSON (with
--json)
Output format (default = aligned table)
agent-sessions status — 2026-06-19T14:20:00Z (herdr_confirmed=True)
========================================================================================================================================
NAME SERVER YAML HERDR CMD RESUME JOB_ID JOB_STATUS DRIFT
----------------------------------------------------------------------------------------------------------------------------------------
lab-landing-page-creator-claude default running alive claude yes - - -
lab-landing-page-creator-agy default terminated dead agy yes 5fe09ba8 completed -
lab-paper-pdf2md-creator-claude default running alive claude scan - - -
========================================================================================================================================
Output format (--json)
{
"yaml_path": "...",
"herdr_sessions_alive": ["..."],
"yaml_entries": [...],
"rows": [
{
"name": "lab-landing-page-creator-claude",
"yaml_status": "running",
"herdr_alive": true,
"pane_cmd": "claude",
"pane_cwd": "/home/.../refer_landing_page",
"resume_uuid_on_disk": true,
"drift": null
},
{
"name": "lab-landing-page-creator-agy",
"yaml_status": "terminated",
"herdr_alive": false,
"drift": "yaml-says-terminated-but-disk-uuid-still-present"
}
],
"unregistered": [],
"drifts": []
}
Drift classes (read-only — never mutates)
| Class | Detection | Meaning |
|---|---|---|
A |
YAML running, herdr dead |
session died without going through multi-agent-mux-stop. Could auto-terminate but won't — that's multi-agent-mux-monitor's job. |
B |
herdr alive, not in YAML | ad-hoc session someone started without multi-agent-mux-create. Suggest: "use multi-agent-mux-create to register, or multi-agent-mux-stop to clean up." |
C |
YAML has claude_session_id_own: null AND a new *.jsonl exists |
new session id materialized; suggest: "run multi-agent-mux-resume or reconcile to register it." |
Pitfalls
- Do NOT use this skill to drive mutations — the output is a snapshot, not a call to action. If you need to fix drifts, run
multi-agent-mux-monitorormulti-agent-mux-resume/multi-agent-mux-stopmanually. - Read-only is enforced by script —
status.shopens the YAML withopen(path)(no'w'), never callsherdr kill-session, never writes anywhere. Thereconcile.sh --dry-runmode is the same path. - If
agent-sessions.yamlis malformed — print the YAML error verbatim and exit 1. Do NOT attempt recovery (that'smulti-agent-mux-stop --purge-conversationor manual edit's job). - Sessions outside the
<workspace>-creator-*naming convention are still shown but taggedad-hoc— they didn't go throughmulti-agent-mux-createand aren't tracked in YAML.
When to use
- "Is the claude session still running?" → this skill, not the monitor
- "What UUID does this workspace have?" → this skill
- "Is there drift between YAML and reality?" → this skill, then dispatch monitor or fix manually
- Quick sanity check before dispatching a long-running job
When NOT to use
- Continuous live tracking →
multi-agent-mux-monitor - Recovering from corruption → manual edit +
.bakrestore - Polling more than once a minute →
multi-agent-mux-monitor(it dedupes)