operator
34b0ef9fe2
chore(fleet): sync operator memory, hatch menu dialogs, and watchdog alerts
2026-10-07 00:25:51 +00:00
operator
740648e973
approvals: stale-wait cleanup, key-decision notify, TTLs, key/browser isolation
...
- bin/approvals.py: responded-wait filtering + auto-mark, key-decision sidechat-first notify (notified flag, --message, --allow-main-chat), TTL defaults (input 30m / browser 30m / key 2h), cross-type guard (browser actions cannot resolve key requests), sweep_expired_key_requests; restores check_node_key_request fallback in inspect_node_approvals
- bin/box-ctl.py + bin/super-cli.py (approvals hunks only): --message/--allow-main-chat passthrough on allow/deny, clear/clear-all actions, def sidechat routing; restores sys.exit(1) on dismiss failure
- bin/fleet-alert-check.sh: TTL-aware state_machine (EXPIRED action), auto-deny expired browser approvals (fail closed), auto-dismiss expired input waits, targeted per-agent DM for input waits
- bin/job-dispatch.py + bin/gravity.py: KEY_APPROVAL excluded from auto-approval
Reviewed by 5 independent reviewers (all APPROVE/APPROVE WITH NOTES); integration gate GO (17/17 tests). TUI hunks in super-cli.py intentionally excluded.
2026-10-06 00:49:46 +00:00
operator
adfcd2e602
feat(box): passkey fetch, agent key-approval flow, unified lookups, tmux agent UX
...
- box passkey [show|fetch] (+ muse passkey): documents VM-only passkey
(/srv/box/passkey.txt, fallback /etc/netvm/passkey.txt on 34.139.37.135),
probes VM over SSH with graceful fallback; --json supported. No secrets on bl.
- approvals: request_key_approval / check_node_key_request; KEY_APPROVAL status
surfaced in `box approvals check`; allow/deny resolve + audit to box-ctl.jsonl;
never auto-approved. New `box approvals request-key <node> --reason`.
- box lookup (summary|fleet|threads|unread|approvals|key|docs) and docs-lookup
engine with lookup_internal/ database (docs_internal symlink).
- muse-tmux: non-TTY attach falls back to scrollback capture; prune NameError fix.
- box/muse passthrough for tmux/muse/docs; thread list/view alias + prefix resolve.
- Docs: AGENTS.md, AGENT-TOOLING.md, BOX-WEB-SURFACE-GUIDE.md, README.
- Tests: key-approval + passkey tests; sync stale sidechat UUIDs and manifest name.
- .gitignore runtime trackers (subagent-sessions, conversation-nudge-tracker).
2026-10-05 20:18:47 +00:00
operator
d72b63bfd1
docs(netvm): document watchdog, swarm-worker, and alert relay in README; track approvals CLI
2026-10-05 17:42:01 +00:00
operator
4f4b8768b6
feat(alert): wire idempotent fleet-alert relay into check loop and stop stale chrome scopes
2026-10-05 17:41:04 +00:00
operator
1a271b1bbd
feat(hybrid-gateway): integrate muse-cli with Cloudflare netns isolation, symmetric sidechat routing, and 646-pip sync unblock
2026-10-04 22:54:01 +00:00
operator-main
5ab157b3b0
fleet alerting: fix netns naming in agent-health.sh + add fleet-alert-check.sh
...
agent-health.sh used bare node names for 'ip netns exec' but netns are
named warp-<node> since the NetVM layout; the 6189793 CDP-liveness check
always failed ('No such file or directory'), logging false CRITICALs and
kill -9'ing healthy browsers every 5 min. Use warp-$node.
fleet-alert-check.sh: new 5-min critical-condition detector (per-node CDP
liveness via warp-<node> netns). Consecutive-failure state machine:
page after 2 consecutive failures, re-page every 30 min while critical,
quiet-hours-aware (first alert always pages). Emits ALERT/RECOVERY
records to ~/.local/share/fleet-alert/outbox.jsonl for the container
fleet-alert-relay hook; best-effort box-ctl notify to healthy agents.
Session: sidechat/critical-alerting-pipeline
2026-10-04 20:09:36 +00:00