From d714535ad3c52ad698cbbbcb1a1719de6705b41f Mon Sep 17 00:00:00 2001 From: AIPass Date: Wed, 18 Mar 2026 20:37:26 -0700 Subject: [PATCH] feat(prax): introspection 100%, dead module cleanup, stale logs removed (#93) * feat(flow): feat(flow): template registry system, introspection/help overhaul, no-fallback errors Co-Authored-By: @flow * feat(prax): monitor restoration phases 1-3, dead module cleanup, help cleanup Co-Authored-By: @prax * feat(prax): introspection 100%, dead module cleanup, stale logs removed Co-Authored-By: @prax --------- Co-authored-by: @flow Co-authored-by: @prax --- src/aipass/prax/CLOSED_PLANS.local.json | 21 ++++++++++++++++++++ src/aipass/prax/apps/modules/agent_status.py | 6 +++++- src/aipass/prax/apps/modules/logger.py | 3 +++ src/aipass/prax/apps/modules/status.py | 8 ++++++-- 4 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/aipass/prax/CLOSED_PLANS.local.json b/src/aipass/prax/CLOSED_PLANS.local.json index 3b8d6ce8..bf4d46eb 100644 --- a/src/aipass/prax/CLOSED_PLANS.local.json +++ b/src/aipass/prax/CLOSED_PLANS.local.json @@ -20,6 +20,27 @@ "subject": "Dashboard Pipeline — Full Lifecycle", "date_closed": "2026-03-18", "location": "prax" + }, + { + "plan_id": "FPLAN-0025", + "type": "FPLAN", + "subject": "Prax Monitor Restoration — rich output, caller attribution, inotify resilience", + "date_closed": "2026-03-19", + "location": "prax" + }, + { + "plan_id": "FPLAN-0106", + "type": "FPLAN", + "subject": "Monitor Phase 1: visible degradation + polling fallback", + "date_closed": "2026-03-19", + "location": "prax" + }, + { + "plan_id": "FPLAN-0109", + "type": "FPLAN", + "subject": "Monitor Phase 2: caller attribution via drone CALLER markers", + "date_closed": "2026-03-19", + "location": "prax" } ] } diff --git a/src/aipass/prax/apps/modules/agent_status.py b/src/aipass/prax/apps/modules/agent_status.py index 274d3de7..ee8a004b 100644 --- a/src/aipass/prax/apps/modules/agent_status.py +++ b/src/aipass/prax/apps/modules/agent_status.py @@ -73,6 +73,10 @@ def handle_command(command: str, args: List[str]) -> bool: if command != 'agent-status-push': return False + if not args: + print_introspection() + return True + from aipass.prax.apps.handlers.dashboard.agent_status_writer import ( build_agent_status_section, push_agent_status_dashboard, @@ -80,7 +84,7 @@ def handle_command(command: str, args: List[str]) -> bool: json_handler.log_operation("agent_status_push_executed", {"args": args}) - if '--help' in args: + if args[0] in ('--help', '-h', 'help'): print_help() return True diff --git a/src/aipass/prax/apps/modules/logger.py b/src/aipass/prax/apps/modules/logger.py index d2d0e5dd..305895b9 100755 --- a/src/aipass/prax/apps/modules/logger.py +++ b/src/aipass/prax/apps/modules/logger.py @@ -293,4 +293,7 @@ def handle_command(_command: str, args: list) -> bool: if not args: print_introspection() return True + if args[0] in ('--help', '-h', 'help'): + print_introspection() # Logger has no user commands — introspection IS the help + return True return False diff --git a/src/aipass/prax/apps/modules/status.py b/src/aipass/prax/apps/modules/status.py index 8eca4cbe..9bec7043 100755 --- a/src/aipass/prax/apps/modules/status.py +++ b/src/aipass/prax/apps/modules/status.py @@ -45,10 +45,14 @@ def handle_command(command: str, args: List[str]) -> bool: if command != 'status': return False - json_handler.log_operation("status_checked", {"subcommand": args[0] if args else "default"}) + if not args: + print_introspection() + return True + + json_handler.log_operation("status_checked", {"subcommand": args[0]}) # --- sub-command routing ------------------------------------------------ - if args and args[0] in ("--help", "help"): + if args[0] in ("--help", "-h", "help"): print_help() return True