fix(herdr): support Herdr 0.8.0 pane allocation, agent prompt, and length limits
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user