Files
AIPass/src/aipass/prax
AIOSAIandClaude Opus 4.6 3b45824dc6 FPLAN-0410 repo cleanup + integration test bug fixes
VERA cleanup (FPLAN-0410):
- Remove all /home/aipass hardcoded paths (portability)
- Remove internal Telegram bot code from public repo (6k+ lines)
- Remove runtime logs, .claude/settings.local.json, stale files
- Clean READMEs across all branches
- Restructure spawn handlers into proper 3-layer architecture
- Add __init__.py files for proper package imports
- Update seedgo standards for public repo context
- Add log_structure standard to seedgo

Integration test bug fixes:
- Fix double @@ display in drone introspection output
- Fix spawn registry resolving to wrong file (walk up from package root)
- Fix email sender identity always showing as @ai_mail (pass AIPASS_CALLER_CWD)
- Fix branch_detection.py relative path resolution against CWD instead of registry dir
- Add .trinity/passport.json detection for spawned agents
- Archive duplicate json_ops.py, update imports to canonical json_handler
- Update .gitignore for runtime logs and .claude/ dirs

Tested end-to-end in Docker container (aipass-test:latest):
- Spawn → register → send email → receive → reply all verified working

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 15:29:16 -08:00
..
2026-03-06 20:40:16 +00:00

Prax

System-wide logging and real-time monitoring for AIPass. Prax auto-routes log output from any module to per-module log files and provides a live monitoring console (Mission Control) that shows file changes, log events, and command execution across all branches.

Usage

Logging

from aipass.prax import logger

logger.info("Processing started")
logger.warning("Disk usage high")
logger.error("Connection failed")

Logs auto-route to system_logs/<branch>_<module>.log based on the calling module. No configuration needed — prax detects the caller via stack introspection.

For handlers or plugins that need to bypass the event pipeline:

from aipass.prax.apps.modules.logger import get_direct_logger

log = get_direct_logger("my_handler")
log.info("Direct log entry")

Mission Control

Real-time monitoring console for watching system activity across all branches.

drone @prax monitor

Interactive commands inside the monitor:

watch all           # Watch all branches
watch prax          # Watch specific branch
watch errors        # Only show errors
status              # Show current filters
quit                # Exit

CLI Commands

Command Description
drone @prax monitor Launch Mission Control
drone @prax init Initialize logging system
drone @prax status Show system status
drone @prax run Start continuous logging mode
drone @prax shutdown Shutdown logging system
drone @prax discover Discover Python modules in ecosystem
drone @prax log-audit Audit log file sizes and health

Architecture

prax/
├── apps/
│   ├── prax.py              # Entry point
│   ├── modules/
│   │   ├── logger.py        # SystemLogger (public API)
│   │   └── monitor_module.py # Mission Control
│   └── handlers/
│       ├── logging/         # Log setup, rotation, introspection
│       ├── monitoring/      # Event queue, branch detection, stream output
│       ├── discovery/       # Module scanning and filtering
│       ├── config/          # Configuration loading
│       └── registry/        # Module registry management
└── tests/

How It Works

  1. Auto-routing — When any module calls logger.info(), prax inspects the call stack to identify the caller and routes the log entry to the appropriate file.
  2. Dual output — Each log entry goes to both a system-wide log (system_logs/) and a branch-local log ({branch}/logs/), both with rotation.
  3. Mission Control — A multi-threaded monitoring console that watches file changes (via inotify), log events, and agent activity across all branches simultaneously.