fix(herdr): support Herdr 0.8.0 pane allocation, agent prompt, and length limits

This commit is contained in:
2026-08-14 10:49:29 +09:00
parent 720f8ad224
commit a7f3fc3242
9 changed files with 185 additions and 50 deletions
@@ -122,6 +122,11 @@ def get_job_status(s):
sessions_detail = []
def _sanitize(n):
if len(n) <= 32:
return n
return f"{n[:16]}-{n[-15:]}"[:32]
for s in d.get('herdr_sessions', []):
name = s.get('name', '?')
server = s.get('herdr_session') or s.get('herdr_server') or s.get('herdr_workspace') or 'default'
@@ -134,7 +139,7 @@ for s in d.get('herdr_sessions', []):
'name': name,
'server': server,
'status': s.get('status', '?'),
'herdr_alive': f"{name}|{server}" in alive,
'herdr_alive': f"{name}|{server}" in alive or f"{_sanitize(name)}|{server}" in alive,
'cmd': pane.get('cmd'),
'role': s.get('role'),
'resume_state': resume_on_disk(s),
@@ -219,6 +224,11 @@ def get_job_status(s):
return (jid, 'unknown')
def _sanitize(n):
if len(n) <= 32:
return n
return f"{n[:16]}-{n[-15:]}"[:32]
sessions = d.get('herdr_sessions', [])
print(f"agent-sessions status — {drift['timestamp']} (herdr_confirmed={drift['herdr_confirmed']})")
print("=" * 136)
@@ -230,7 +240,7 @@ for s in sessions:
name = s.get('name', '?')
server = s.get('herdr_session') or s.get('herdr_server') or s.get('herdr_workspace') or 'default'
status = s.get('status', '?')
herdr = 'alive' if f"{name}|{server}" in alive else 'dead'
herdr = 'alive' if (f"{name}|{server}" in alive or f"{_sanitize(name)}|{server}" in alive) else 'dead'
cmd = (s.get('pane') or {}).get('cmd', '?')
res = resume_on_disk(s)
jid, jstatus = get_job_status(s)