docs: add VERSIONS.md, resolve C-6 stop_session usage/comments drift, and prune LOG.md
This commit is contained in:
@@ -691,3 +691,45 @@ d['herdr_sessions'] = [{
|
||||
row = conn.execute("SELECT status FROM sessions WHERE name='test-autorecovery-creator-claude'").fetchone()
|
||||
assert row[0] == "terminated"
|
||||
conn.close()
|
||||
|
||||
def test_comp_stop_usage_matches_parser(mam_sandbox):
|
||||
"""C-6: help text and parser must not drift apart."""
|
||||
script = mam_sandbox / ".agents" / "skills" / "multi-agent-mux-stop" / "scripts" / "stop_session.sh"
|
||||
|
||||
# 에이전트 접미사 추론(:91-100)이 성립하는 이름 — rc=2 의 다섯 원인 중
|
||||
# 'cannot infer agent'(:98)를 배제하기 위함 (Challenge 8b6b574f)
|
||||
VALID = "test-project-creator-claude"
|
||||
|
||||
# 1) --help 는 성공하고, 폐지된 플래그를 광고하지 않는다
|
||||
res = subprocess.run(["bash", str(script), "--help"], capture_output=True, text=True)
|
||||
assert res.returncode == 0
|
||||
for dead in ("--mode", "--capture-id", "--graceful"):
|
||||
assert dead not in res.stdout, f"usage() still advertises {dead}"
|
||||
|
||||
# 1b) 검증기가 받는 에이전트는 전부 도움말에 나온다 (Rev.2 M3)
|
||||
for agent in ("claude", "agy", "hermes", "cline"):
|
||||
assert agent in res.stdout, f"usage() omits supported agent {agent}"
|
||||
|
||||
# 2) 도움말이 광고하는 플래그는 전부 파서가 받는다
|
||||
# rc=2 는 5가지 원인을 공유하므로 stderr 메시지로 직접 지목한다
|
||||
for flag, args in (("--reason", ["--reason", "x"]),
|
||||
("--purge-conversation", ["--purge-conversation"]),
|
||||
("--yes", ["--yes"]),
|
||||
("--agent", ["--agent", "hermes"])):
|
||||
r = subprocess.run(["bash", str(script), "--session", VALID] + args,
|
||||
capture_output=True, text=True)
|
||||
assert "unknown arg" not in r.stderr, f"usage() advertises {flag} but parser rejects it: {r.stderr}"
|
||||
assert "deprecated" not in r.stderr, f"usage() advertises deprecated {flag}: {r.stderr}"
|
||||
assert r.returncode != 2, f"{flag} -> rc=2: {r.stderr}"
|
||||
|
||||
# 3) 폐지된 플래그는 전용 메시지와 함께 rc=2 로 거부된다 (특별 취급 유지)
|
||||
for dead in ("--mode", "--capture-id", "--graceful"):
|
||||
r = subprocess.run(["bash", str(script), "--session", VALID, dead, "hard"],
|
||||
capture_output=True, text=True)
|
||||
assert r.returncode == 2
|
||||
assert "deprecated" in r.stderr
|
||||
|
||||
# 4) 헤더 주석도 폐지 플래그를 사용법으로 광고하지 않는다
|
||||
head = "".join(script.read_text().splitlines(keepends=True)[:35])
|
||||
assert "--mode soft|hard" not in head
|
||||
|
||||
|
||||
Reference in New Issue
Block a user