Two latent Windows portability bugs caught by the new e2e wiring harness:
- aipass init: _preflight_check ancestor walk crashed on OSError from
un-enumerable Windows drive-root entries (pagefile.sys), swallowed by
route_command as 'Unknown command: init'. Walk now skips unreadable
entries (logged).
- drone @branch: crashed with UnicodeEncodeError ('charmap') printing a
routed branch's captured output via Rich on cp1252 stdout. PYTHONUTF8
only affects child interpreters; entry point now reconfigure()s the live
stdout/stderr to UTF-8.
Pure portability — Linux/macOS behaviour unchanged. e2e suite 14/14 green
locally on Linux. Lets the 3-OS CI verify Windows.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* feat(system): fix(windows): PYTHONUTF8=1 in drone cli.py for Rich Unicode on Windows (#296) + STATUS.md reset to stub (#291) + README.md platform honesty (Linux tested, macOS untested, Windows in progress)
Co-Authored-By: @devpulse <devpulse@aipass>
* feat(system): fix: gitignore STATUS.md + STATUS.local.md — interim fix for #291/#298. Auto-generated status files contain developer session data that shouldn't ship in the public repo. Will be un-gitignored when prax sync produces clean public output.
Co-Authored-By: @devpulse <devpulse@aipass>
---------
Co-authored-by: @devpulse <devpulse@aipass>
Implements the internal AIPass navigation pattern:
- `drone @module` (no args) → introspective: shows what's connected
- `drone @module --help` → help: shows usage documentation
Seedgo introspective lists all discovered plugins with descriptions.
Modules that don't implement get_introspective() fall back to help.
442 tests pass. 5 new introspective tests.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- introduce drone module registry with metadata and command routing
- add seedgo as a registered internal drone module with adapter
- update drone CLI to route commands to modules or branches by @target
- enhance `drone systems` to list registered modules with descriptions
- provide module help integration alongside branch help
✨ feat(seedgo): create drone adapter for seedgo module commands
- implement handle_command forwarding to seedgo CLI subprocess
- provide get_help function with command-specific help text
- support commands: check, audit, list, init with options and examples
✨ feat(seedgo): add __main__.py to support `python -m seedgo` execution
✨ feat(seedgo plugin): add drone-compliance plugin to verify drone adapter compliance
- checks existence of drone_adapter.py and required interface elements
- validates presence of DRONE_MODULE dict, handle_command(), and get_help()
- reports compliance results with pass/fail and score with detailed checks
- skips non-target packages and handles syntax errors gracefully
✅ test(drone modules): add comprehensive tests for drone module registry and routing
- test listing, info retrieval, command routing, and help retrieval
- test CLI integration for `drone systems` and `drone @seedgo` commands
- verify module priority over branch routing and error handling
✅ test(seedgo drone compliance): add tests for drone-compliance plugin
- test passing cases with proper adapter and interface
- test failures for missing adapter, metadata, or functions
- test warnings for missing get_help function
- test skipping non-target packages and file-not-found cases
- test handling of syntax errors in adapter files
BREAKING: aipass.routing renamed to aipass.drone. Routing IS drone —
the command routing engine IS the CLI command center. No reason to
keep them separate.
Adds `drone` CLI entry point:
drone systems — list registered branches
drone @branch command — route command to branch
drone @branch --help — get branch help
drone --version — show version
406 tests pass (20 new CLI tests). All imports updated.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>