personal memory agent
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'hopper-eyd7wnua-callosum-client-count'

+12
+2
tests/test_health_cli.py
··· 31 31 "tasks": [{"name": "dream", "duration_seconds": 12}], 32 32 "queues": {"indexer": 3, "planner": 0}, 33 33 "stale_heartbeats": [], 34 + "callosum_clients": 5, 34 35 } 35 36 36 37 print_status(status) ··· 46 47 assert "dream" in output 47 48 assert "queued indexer" in output 48 49 assert "Heartbeat: ok" in output 50 + assert "Callosum: 5 clients" in output 49 51 50 52 51 53 def test_health_check_timeout(tmp_path, monkeypatch, capsys):
+5
think/callosum.py
··· 44 44 self.broadcast_queue: queue.Queue = queue.Queue(maxsize=10000) 45 45 self.writer_thread: threading.Thread | None = None 46 46 47 + def client_count(self) -> int: 48 + """Return the number of currently connected clients.""" 49 + with self.lock: 50 + return len(self.clients) 51 + 47 52 def start(self) -> None: 48 53 """Start the broadcast server.""" 49 54 # Ensure health directory exists
+2
think/health_cli.py
··· 88 88 print(f"Heartbeat: STALE ({', '.join(stale)})") 89 89 else: 90 90 print("Heartbeat: ok") 91 + callosum_clients = status.get("callosum_clients", 0) 92 + print(f"Callosum: {callosum_clients} clients") 91 93 92 94 93 95 def health_check() -> int:
+3
think/supervisor.py
··· 779 779 780 780 # Scheduled tasks 781 781 schedules = scheduler.collect_status() 782 + # Connected callosum clients 783 + callosum_clients = _callosum_server.client_count() if _callosum_server else 0 782 784 783 785 return { 784 786 "services": services, ··· 787 789 "queues": queues, 788 790 "stale_heartbeats": stale, 789 791 "schedules": schedules, 792 + "callosum_clients": callosum_clients, 790 793 } 791 794 792 795