Align conftest mock herdr and unit test assertions with Claude's simplified session-based isolation and native herdr command updates

This commit is contained in:
2026-07-20 07:42:05 +09:00
parent cccc30a8ac
commit 6df4b03661
13 changed files with 312 additions and 115 deletions
+45 -5
View File
@@ -103,6 +103,11 @@ def save_state():
save_state()
args = sys.argv[1:]
if args and args[0] == "--session":
if len(args) > 1:
args = args[2:]
else:
args = args[1:]
if not args:
sys.exit(0)
@@ -310,7 +315,18 @@ elif cmd1 == "agent":
"command": agent_data.get("command", ""),
"argv": agent_data.get("command", "")
}
print(json.dumps({"pane": pane_info}))
print(json.dumps({
"pane": pane_info,
"result": {
"agent": {
"agent": agent_data.get("agent", "claude"),
"status": agent_data.get("status", "running"),
"cwd": agent_data.get("cwd", ""),
"pane_id": agent_data.get("pane_id", "w1:p1"),
"workspace_id": agent_data.get("workspace_id", "w1")
}
}
}))
sys.exit(0)
else:
sys.stderr.write("Agent " + name + " not found\\\\n")
@@ -372,22 +388,46 @@ elif cmd1 == "session":
sys.exit(1)
elif cmd1 == "pane":
if len(args) < 4:
if len(args) < 3:
sys.exit(1)
cmd2 = args[1]
if cmd2 == "send-keys":
if len(args) < 4:
sys.exit(1)
name = args[2]
key = args[3]
agents = state.get("agents", {})
if name in agents:
agents[name]["sent_keys"] = agents[name].get("sent_keys", []) + [key]
actual_name = name
for a_name, data in agents.items():
if data.get("pane_id") == name:
actual_name = a_name
break
if actual_name in agents:
agents[actual_name]["sent_keys"] = agents[actual_name].get("sent_keys", []) + [key]
if key in ("Enter", "C-m"):
agents[name]["buffer"] = agents[name].get("buffer", "") + "\\nesc to interrupt"
agents[actual_name]["buffer"] = agents[actual_name].get("buffer", "") + "\\nesc to interrupt"
state["agents"] = agents
save_state()
sys.exit(0)
else:
sys.exit(1)
elif cmd2 == "process-info":
pane_id = ""
if "--pane" in args:
pane_id = args[args.index("--pane") + 1]
pid = 9999
for name, data in state.get("agents", {}).items():
if data.get("pane_id") == pane_id or pane_id == "w1:p1":
pid = data.get("pid", 9999)
break
res = {
"process_info": {
"foreground_processes": [{"pid": pid}],
"shell_pid": pid
}
}
print(json.dumps({"result": res}))
sys.exit(0)
elif cmd1 == "ls":
if "-F" in args: