personal memory agent
0
fork

Configure Feed

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

fix: deduplicate tasks table by excluding supervised service PIDs

Filter out tasks that match service PIDs to prevent showing the same process
in both Services and Running Tasks tables. Supervised services should only
appear in the Services table, while the Tasks table shows ephemeral runner
processes. Hide Tasks table entirely if all tasks are actually services.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

+14 -4
+14 -4
think/manage.py
··· 308 308 t = self.term 309 309 output = [] 310 310 311 + # Get PIDs of supervised services to exclude from tasks 312 + service_pids = {svc["pid"] for svc in self.services} 313 + 314 + # Filter out tasks that are actually supervised services 315 + tasks_only = [ 316 + task for task in self.running_tasks.values() 317 + if task["pid"] not in service_pids 318 + ] 319 + 320 + if not tasks_only: 321 + return [] 322 + 311 323 # Section header 312 - count = len(self.running_tasks) 324 + count = len(tasks_only) 313 325 output.append("") 314 326 output.append(t.bold + f"Running Tasks ({count})" + t.normal) 315 327 output.append("─" * min(80, t.width)) ··· 319 331 output.append(t.bold + header + t.normal) 320 332 321 333 # Task rows (sorted by start time, oldest first) 322 - tasks_sorted = sorted( 323 - self.running_tasks.values(), key=lambda x: x["start_time"] 324 - ) 334 + tasks_sorted = sorted(tasks_only, key=lambda x: x["start_time"]) 325 335 326 336 for task in tasks_sorted: 327 337 name = task["name"][:14]