fix: attach_command from one builder; no kill/start_command; stop closes a row-less session (Issue #71)
- attach_command is `herdr --session <server> agent attach <herdr name>`
(`default` written too), built by lib_py.agents.sanitize.attach_command;
create, resume and reconcile all use it. kill_command and start_command
are no longer written, and status --json drops start_command.
- The two raw kill-session hints (create exit 43, id_order's orphan) print a
stop-skill command with --herdr-session instead.
- stop_session.sh closes a session that has no registry row, herdr only and
without --agent, when herdr runs it inside this workspace; another
workspace's session is refused (exit 5), a missing one is exit 1, one that
survives kill-session is exit 6. The registry is not changed.
- Docs: only the SKILL.md lines these changes made wrong; the skill block
pins follow. Tests that asserted the removed fields keep their intent
(issue50: create's own row; issue21: no control-root path in
attach_command; tier2: the new form and the absent fields). S11 pins the
shim to 4243da5, which changed it on purpose.
Refs #71
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
9c21fa4e4f
commit
e4c7c8fe9b
19 files changed
+605
-109
No files matched your search
@@ -217,7 +217,11 @@ def test_stop_is_already_stopped_not_found(mam_sandbox):
|
||||
assert res.returncode == 1
|
||||
|
||||
def test_stop_session_invalid_agent_suffix(mam_sandbox):
|
||||
"""Test stop_session.sh fails when agent cannot be inferred from session name."""
|
||||
"""Test stop_session.sh fails when agent cannot be inferred from session name.
|
||||
Issue #71: a session with no row needs no agent kind (stop closes it herdr
|
||||
only), so the registered row here carries no agent, suffix or pane.cmd."""
|
||||
(mam_sandbox / ".mam" / "agent-sessions.yaml").write_text(
|
||||
"herdr_sessions:\n- name: bad-session-name\n status: running\n pane: {}\n")
|
||||
script_path = mam_sandbox / "skills" / "multi-agent-mux-stop" / "scripts" / "stop_session.sh"
|
||||
res = subprocess.run(["bash", str(script_path), "--session", "bad-session-name"], capture_output=True, text=True)
|
||||
assert res.returncode == 2
|
||||
|
||||
Reference in new issue
Block a user