Commit Graph
36 Commits
Author SHA1 Message Date
AIPassand@devpulse 4a402d287b feat(system): chore(lint)+chore(deps): ruff format sweep — 535 files reformatted (whitespace/line-breaks, zero behavior change) + add pytest-timeout to dev extras (was missing, tests use --timeout flag). Unblocks CI lint job which has been failing on the format-check step. (#345)
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-16 14:08:23 -07:00
AIPassand@devpulse e2c868084a feat(system): chore(lint): ruff auto-fix sweep — 303 errors across 178 files (F401 unused imports + F541 f-string placeholders + F811 redefined); restored report_error re-export + added logger call in errors.py (#333)
* feat(system): fix(windows-ci): combine pip bootstrap fix + venv activation in Verify step

Combines both fixes needed to get windows-test.yml actually passing:

1. setup.sh: stop swallowing ensurepip errors (quiet + 2>/dev/null + || true was
   hiding real failures — pip was silently not installed). Add get-pip.py fallback
   and hard pip verification.

2. windows-test.yml: add 'source .venv/Scripts/activate' to Verify step. Each CI
   step gets a fresh shell — setup.sh's venv activation doesn't carry over, so
   drone wasn't on PATH in the subsequent step.

Together, these should take Windows CI from the 'silent failure every run since
creation' state to actually green. Supersedes PRs #330 and #331 which had the
fixes on separate branches (neither green alone).

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

* feat(system): chore(lint): ruff auto-fix sweep — 303 errors across 178 files (F401 unused imports + F541 f-string placeholders + F811 redefined); restored report_error re-export + added logger call in errors.py

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

---------

Co-authored-by: @devpulse <devpulse@aipass>
2026-04-16 12:58:53 -07:00
AIPassand@devpulse 504df48e82 feat(system): fix(windows): handler guard backslash path fix — all 11 __init__.py files (#304). caller_file.replace('\\', '/') normalizes Windows paths before the same-branch check. This is the actual fix for #293 which was incorrectly closed. drone is completely broken on Windows without this. (#306)
* feat(system): ci: add Windows setup test workflow — runs setup.sh + drone CLI verification on windows-latest GitHub Actions runner. Triggers on changes to setup.sh, handler __init__.py files, cli.py, or pyproject.toml. Closes the 'we never tested on Windows' gap.

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

* feat(system): fix(windows): SIGPIPE guard in flow.py (#301) + fcntl platform guards in trigger/config.py and watchdog/registry.py (#302) — lazy import fcntl on Unix only, no-op on Windows. inbox_lock.py already cross-platform (msvcrt). ai_mail.py already guarded (hasattr check).

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

* feat(system): fix(windows): handler guard backslash path fix — all 11 __init__.py files (#304). caller_file.replace('\\', '/') normalizes Windows paths before the same-branch check. This is the actual fix for #293 which was incorrectly closed. drone is completely broken on Windows without this.

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

---------

Co-authored-by: @devpulse <devpulse@aipass>
2026-04-16 00:06:02 -07:00
AIOSAIand@devpulse b29dc08537 feat(system): DPLAN-0133 Phase 1 (part 1/2): add gitignore rule for apps/integrations/** with README negation, plus scaffold README.md in all 10 core branches' apps/integrations/ — private integration space is now leak-proof by construction. Drivers and wrappers dropped here stay local; only README.md is tracked. See DPLAN-0133 for architecture rationale (three-layer design: @api drivers, per-branch wrappers, public generic contracts).
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-15 15:28:16 -07:00
AIOSAI 22d6d98707 Merge remote-tracking branch 'origin/main' 2026-04-14 20:37:53 -07:00
AIOSAIand@devpulse e263d56178 feat(system): feat(skills): split /memo and /prep handling — memo user-scope only, prep ships via aipass init template with STATUS.local.md promotion
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-14 13:51:09 -07:00
AIOSAIandClaude Sonnet 4.6 2ec5ec1a86 fix(init,setup): Windows compatibility — issue #261 (three blockers)
BLOCKER 1 (bootstrap.py): Replace bash dirname/while loop in _claude_settings()
with a cross-platform python3 -c one-liner using pathlib.Path.parents. The bash
loop broke on Windows because root is 'C:\' not '/'. Python pathlib handles all
OS path separators correctly.

BLOCKER 2 (setup.sh): Add OS detection (IS_WINDOWS via OSTYPE/uname). On Windows
(Git Bash/MSYS2/Cygwin), skip the sudo ln -sf symlink step and print manual
PATH-extension instructions for PowerShell, CMD, and Git Bash. Also make venv
activation OS-aware (Scripts/activate on Windows, bin/activate elsewhere).

BLOCKER 3 (setup.py): New cross-platform Python installer at repo root. Does
everything setup.sh does — create venv, install editable, verify entry points,
seed secrets dir, .env, registry, bootstrap branch identity files — and works
natively on Windows without Git Bash. Uses sys.executable (no python3 vs python
ambiguity), pathlib throughout, and prints PATH instructions on Windows instead
of attempting symlink creation.

Closes #261.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 02:43:31 -07:00
AIOSAIand@devpulse 5931952c2b feat(system): S90: local prompt hook injection + prax trigger dead code removal (Vera BUG-4 fix)
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-11 18:34:45 -07:00
AIOSAIand@devpulse e7950e76f9 feat(system): S90: drone JSON fix + cli AIPASS_HOME auto-detect + mailbox + prax monitor refactor + test isolation
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-11 18:00:43 -07:00
AIOSAIand@devpulse 55cf149a95 feat(system): S89: ai_mail view latest + ANSI TTY detection + auto-watchdog hook (DPLAN-0119)
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-11 15:41:24 -07:00
AIOSAIand@devpulse e8a9af4bc0 feat(system): S89: full external access (AIPASS_HOME dual registry) + feedback channel (cross-project bridge) + init update idempotency
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-11 14:49:16 -07:00
AIOSAIand@devpulse 079cb3e94e feat(system): S87: model choice for dispatch + DPLAN-0114 (aipass init update) + Compass decisions + Patrick-Personal deny rules
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-11 01:36:03 -07:00
AIOSAIand@devpulse 0350fa20ca feat(system): S86: seedgo quality — silent_catch + deep_nesting fixes (5 branches) + trigger error_logged refactor + prompt fixes
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-10 14:35:51 -07:00
AIOSAIand@devpulse 16b33a6d36 feat(system): S86: APLAN fix sweep — 11 CRITICALs resolved, 35+ BUGs fixed, catch-all loggers, README update
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-10 14:06:52 -07:00
AIOSAIand@devpulse d4aa8330dc feat(system): S84: CRITICAL fixes — memory (path+security), ai_mail (locking), prax (thread safety), global prompt patrick-file rule
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-10 01:47:59 -07:00
AIPassand@devpulse 7974cf6174 feat(system): feat(system): S81: aipass init v2 — real templates, spawn routing, README Quick Start (#206)
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-09 18:15:36 -07:00
AIOSAIand@devpulse f92e4a06ca feat(system): S81: aipass init v2 — real templates, spawn routing, README Quick Start
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-08 23:17:21 -07:00
AIOSAIand@devpulse 1252bf5b9d feat(system): S80: CLI init double-prefix fix + watchdog auto-start prompt
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-08 21:38:19 -07:00
4c76040371 feat(system): S69: stale reference cleanup, scanner ignores, direct fixes (memory shebang, purge.py paths, commons function, backup bypasses) (#171)
* 📝 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>

* feat(system): audit cleanup: drone — fix ANSI escape corruption, add --rebase to git sync

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

* feat(api): audit cleanup — critical path tests + cleanup constants

- Add 19 critical path tests (test_critical_paths.py): get_api_key, validate_key, get_response, extract_response
- Tests: 207/207 passing, seedgo 100%

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

* feat(system): S69: stale reference cleanup, scanner ignores, direct fixes (memory shebang, purge.py paths, commons function, backup bypasses)

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

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-01 01:00:21 -07:00
AIPassandClaude Opus 4.6 ede75add73 feat(system): S63 full system audit — 13 branches dispatched, ~500 new tests, adapter pattern eliminated (#144)
Largest single-session dispatch: 13 branches worked autonomously with zero failures.

Key changes:
- Drone: generic_adapter.py + routing_config.json replace 3 drone_adapter.py files (module registry v2.0.0)
- Seedgo: 225→314 tests, 31/32 checkers now tested, bug fixes, README updated
- AI Mail: paths.py consolidates 8x duplicated _find_repo_root(), 3 new test files
- Flow + Prax: JSON atomic writes (tempfile→fsync→os.replace), corruption root cause fixed
- CLI: __main__.py standalone entry, stubs deleted, README updated
- Trigger: medic wired with systemd service (log_watcher_service.py), E2E tested
- Daemon: 3 demo schedules, pipeline bug fixed, plugins verified
- Skills: list bug fixed (sys.path shadow), 2 demo skills created (inbox_check, branch_health)
- Commons: 12 social features E2E tested, coverage 67%→92%
- Backup: backup_core + test updates

System: 3,330 tests pass, 42 skip, 0 fail. 100% seedgo compliance (32 standards).

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 22:09:53 -07:00
AIPassandClaude Opus 4.6 ae459853f0 fix(system): S59-S60 cross-branch fixes — stale refs, queue spam, close bug, template (#141)
- Daemon: 14 stale @dev_central→@devpulse and @seed→@seedgo refs fixed across 12 files
- Prax: event_queue spam eliminated (144k logs/4hrs), cortex→spawn refs, bypass added
- Flow: close_ops hardened with shutil.move + auto-healing for orphaned plans
- Spawn: builder template handler guard populated, conftest registry protection added
- Seedgo: handler guard pytest exception, test_json_handler fix
- Commons: extract_mentions dedup bug (SELECT DISTINCT LOWER)
- 7 branches: @seed→@seedgo in handlers/__init__.py
- Memory: @seed→@seedgo handler ref

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 21:58:29 -07:00
AIPassandClaude Opus 4.6 e5f0d4f1c4 S56: spawn template overhaul + system-wide README push + .gitkeep cleanup (#129)
- Spawn template system rebuilt: regenerate-registry command (3-pass ID matching),
  registry 26→41 files, generate_branch_meta fixed, Phase 0 snapshot added
- System-wide push: 12/12 branches updated (227 additions, 0 errors)
- READMEs added to all standard directories across 15 branches
- .claude/settings.local.json tracked system-wide (deny rules)
- 35 .gitkeep files removed (replaced by READMEs)
- Bypass files updated across 13 branches
- Bugs fixed: manager citizen_class crash, backup rglob performance

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 01:10:22 -07:00
b72e720f00 feat: seedgo cert sprint — 10 branches, drone introspection rebuilt (#118)
* feat(seedgo): deep nesting bypasses, dead code cleanup, json structure compliance

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

* feat(memory): seedgo certification: introspection fixes, subprocess bypasses, silent catch cleanup

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

* feat(api): seedgo certification: 94%→97%, 31/33 standards at 100%

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

* feat(seedgo): deep nesting 100%, limit 3→4, checker refactors, @ validation, bypass cleanup

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

* feat: seedgo cert sprint — 10 branches dispatched, drone introspection rebuilt, system-wide compliance push

Session 49-50 cert sprint results:
- drone: introspection rebuilt (proper auto-discovery), silent_catch 92%→100%, overall 97%
- api: 94%→97%, json_handler fixed, PR #116
- backup: 93%→94%, json_handler load_template→inline
- memory: 88%→91%, introspection 79%→100%, 10 bypasses for subprocess files
- skills: 97%, json_structure→100%, introspection→100%
- spawn: 97%→99%, 32/34 standards at 100%
- ai_mail: 95%→97%, 12 unused functions removed, 32/34 at 100%
- seedgo: checker improvements (deep_nesting threshold 3→4, various fixes)
- drone: removed from _MODULE_REGISTRY (DPLAN-0053 consensus)
- commons: introspection bypasses (22 entries), python3→drone refs fixed
- trigger/cli/prax/daemon/flow/backup: various cert fixes

New DPLANs: 0053 (drone audit), 0054 (bypass tracker), 0055 (persistent git branches)
New FPLAN: 0134 (persistent citizen git branches — drone build)

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

---------

Co-authored-by: @seedgo <seedgo@aipass>
Co-authored-by: @memory <memory@aipass>
Co-authored-by: @api <api@aipass>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 01:31:56 -07:00
AIOSAIandClaude Opus 4.6 557ab92c31 feat: system-wide silent catch sprint — 13 branches, 93% avg compliance
Dispatched all 14 branches (excl seedgo) for silent catch fixes.
~600 violations fixed across 150+ files. Bypass entries added for
spawn (7 deep nesting) and commons (9 deep nesting). DPLAN-0052
tracks the sprint. README updated with current system state.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 16:17:57 -07:00
AIOSAIandClaude Opus 4.6 a800e7919a fix(seedgo): handler guard allows python3 -c, blocks cross-branch .py imports
Guard was too aggressive — blocked all <string>/<stdin> callers including
branches' own agents running python3 -c. Now only blocks when a real .py
file from a different branch imports handlers. 13 files updated.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 22:34:50 -07:00
d7f2587465 feat(cli): 100% seedgo compliance — all 24 standards (#66)
* fix(ai_mail): resolve relative mailbox_path bug + archive dead handlers

Fix get_user_by_email() and get_all_users() returning relative mailbox_path
values from registry instead of absolute paths (causing doubled paths in reply).
Added path resolution matching get_current_user() pattern.

Archive 7 unused handler files to apps/.archive/ (gitignored):
- pending_work.py — planned feature, never wired
- lock_utils.py — superseded by inbox_lock.py
- data_ops.py — consumer (error_monitor) was archived
- config_generator.py, users/load.py, registry/validate.py — scaffolded, never used
- trigger/error_handler.py — superseded by trigger branch's event system

Added test_user_paths.py (13 tests) covering absolute path resolution.

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

* feat(cli): achieve 100% seedgo compliance across all 24 standards

Clean up json_handler (remove prax dependency, use portable Path resolution),
wire json_handler into display.py, templates.py, and init_project.py using
module import pattern. Restructure handle_command() with seedgo-compliant
no-args introspection gate. Update README with init commands and architecture.

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

---------

Co-authored-by: @ai_mail <ai_mail@aipass>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: @cli <cli@aipass>
2026-03-17 16:44:37 -07:00
AIOSAIand@devpulse 091c1b710c feat(cli,drone): CLI front door — seedgo-compliant discovery + drone internal module
CLI entry point rewritten to follow seedgo auto-discovery pattern:
- discover_modules() scans for handle_command() instead of hardcoded list
- Introspection shows routable modules vs import-only services
- init_project.py now owns the 'aipass' command with subcommand routing
- Rich colors fixed (force_terminal=True) for drone subprocess pipes

CLI registered as drone internal module (drone_adapter.py):
- drone @cli accessible from any directory, not just inside AIPass repo
- drone @cli aipass init works from external projects
- Drone introspection now shows 3 internal modules: cli, drone, seedgo

Drone: CLI added to interactive allow list for terminal passthrough.

Co-Authored-By: @devpulse <devpulse@aipass>
2026-03-15 14:05:35 -07:00
AIOSAIand@cli bfeb6c0ec7 feat(cli): Rich UX polish for aipass init — help, output, introspection
- `drone @cli aipass` shows subcommand introspection table (was error)
- `drone @cli aipass init --help` upgraded with Rich panels, tables, args
- Init output uses Panel for summary, Table for file list
- Fixed double "Try:" in error suggestions

Co-Authored-By: @cli <cli@aipass>
2026-03-15 08:48:17 -07:00
AIPassand@cli 05af9e5cd5 feat(cli): migrate aipass init from devpulse prototype (#48)
Restructure init_project.py into CLI's 3-layer architecture:
- Handler: apps/handlers/init/bootstrap.py (pure Python business logic)
- Module: apps/modules/init_project.py (thin orchestration)
- Wiring: cli.py routes `aipass init` via _handle_aipass()

Command: drone @cli aipass init [target_dir] [project_name]

FPLAN-0041

Co-authored-by: @cli <cli@aipass>
2026-03-14 23:29:50 -07:00
AIOSAIandClaude Opus 4.6 154e92d13e feat(system): CLI stderr standardization + drone error propagation (FPLAN-0032)
CLI display.py now routes error() and warning() to stderr via err_console.
Added fatal() for unrecoverable errors. Drone imports err_console from CLI
instead of creating its own. RegistryMismatchError added to drone exception
hierarchy for credential verification failures.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 23:27:51 -07:00
AIOSAIandClaude Opus 4.6 babedd9c64 feat(system): seedgo v2 operational, full system audit, 14/15 branches at 99%
Three days of intensive work bringing seedgo to full operational status
and driving all branches through comprehensive standards compliance.

Seedgo v2.0.0:
- 22 checkers active (up from 20), standards pack fully operational
- New introspection standard researched from Dev-Pass, FPLAN-0017 open
- Bypass system for false positives (.seedgo config)
- Standards query and audit commands fully functional

System-wide audit (FPLAN-0016):
- All 14 auditable branches at 99%+ compliance
- CLI imports standardized across all branches (console from cli.apps.modules)
- handle_command(command, args) → bool contract added to all modules
- print_help() function naming fixed for checker pattern matching
- Handler extraction: large modules split, file I/O moved to handler layer
- New handlers created across ai_mail, backup, daemon, flow, skills, spawn, seedgo

Branch-specific highlights:
- ai_mail: email.py split 840→420 lines, 4 new handlers
- flow: dplan_flow.py 688→591 lines, 4 new handlers
- seedgo: massive restructure — standards moved to handlers/aipass_standards/,
  old standards/ tree removed, bypass system added, diagnostics module
- commons: database module added, CLI imports fixed
- skills: 5 handle_commands added, help function renamed
- trigger: error reporter handler, handle_command routing
- All branches: consistent architecture, clean drone routing

Culture doc (CLAUDE.md) added — documents AIPass philosophy, identity,
memory system, and collaboration principles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 01:26:42 -07:00
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
AIOSAI a59f9c006b updates 2026-03-06 20:40:16 +00:00
AIOSAI 430b5ecbac branch rewiring after math 2026-03-05 22:10:29 -08:00
AIOSAI dc83a85362 📦 build(pack_aipass): add new aipass standards pack with entry point
- add aipass pack manifest describing standards and metadata
- implement pack entry point for command routing and module discovery
- enable modular standard checks via auto-discovered modules
2026-03-05 17:48:13 -08:00
AIOSAI 019a69141e update 1 file, create 421 files and delete 4 files 2026-03-05 15:22:59 -08:00