feat(system): audit cleanup: spawn (#168)

* 📝 docs(STATUS): update last sync timestamp

- update last sync timestamp to reflect recent status synchronization

* feat(trigger): audit cleanup — fix timestamp parsing, CLI formatting, bypass entries

- Fix log_watcher timestamp parsing: log warning once after all formats fail,
  not on each format attempt (was generating hundreds of warnings per scan)
- Standardize rich formatting in branch_log_events and log_events print_help()
  to match medic.py/errors.py Panel+rule style
- Add bypass entries for intentional silent catches (timestamp loop, error display)
- Remove unused Path imports

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(memory): audit cleanup — handler tests + rollover timeout handling

- Add 32 handler-layer tests (extractor, line_counter, normalize) in test_handlers.py
- Add rollover run timeout message + try/except for graceful error handling
- Fix commons welcome_ops.py missing _get_unwelcomed_branches function

264 tests pass, 100% seedgo compliance.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(system): audit cleanup: spawn

Co-Authored-By: @devpulse <devpulse@aipass>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: @devpulse <devpulse@aipass>
This commit is contained in:
AIPass
2026-04-01 00:59:34 -07:00
committed by GitHub
co-authored by Claude Opus 4.6 @devpulse
parent 21583669df
commit 6e705eeb8e
20 changed files with 845 additions and 240 deletions
+3 -2
View File
@@ -24,6 +24,7 @@ from aipass.prax.apps.modules.logger import system_logger as logger
from aipass.cli.apps.modules import console, header, success, error, warning
from aipass.api.apps.handlers.json import json_handler
from aipass.api.apps.handlers.usage import tracking, aggregation, cleanup
from aipass.api.apps.handlers.usage.cleanup import DEFAULT_RETENTION_DAYS
def print_introspection():
@@ -114,7 +115,7 @@ EXAMPLES:
# cleanup command
cleanup_parser = subparsers.add_parser("cleanup", help="Clean up old usage data")
cleanup_parser.add_argument("days", nargs="?", default="30", help="Days to retain (default: 30)")
cleanup_parser.add_argument("days", nargs="?", default=str(DEFAULT_RETENTION_DAYS), help=f"Days to retain (default: {DEFAULT_RETENTION_DAYS})")
console.print(parser.format_help())
@@ -249,7 +250,7 @@ def show_caller_usage(args: List[str]):
def cleanup_data(args: List[str]):
"""Orchestrate cleanup workflow"""
days = int(args[0]) if args else 30
days = int(args[0]) if args else DEFAULT_RETENTION_DAYS
header(f"Cleanup Old Data (retain {days} days)")
console.print()