Commit Graph
16 Commits
Author SHA1 Message Date
AIPassand@devpulse b92014a20e feat(system): fix(setup): Gemini hook install NameError — hook_python was undefined in the Gemini block (only defined in Claude block above). Pass HOOK_PYTHON through explicitly like the Claude flow does. (#344)
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-16 13:57:17 -07:00
AIPassand@devpulse 8be6ac0418 feat(system): fix(setup): warn on Windows when shadowing drone installs are detected (#317 system Python pip aipass, #321 legacy npm aipass-drone scripts) — prints precise uninstall commands, doesn't auto-modify the user's system (#343)
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-16 13:56:22 -07:00
AIPassand@devpulse e4a42f2186 feat(system): feat(windows): cherry-pick Windows parity fixes from #328 — watchdog ctypes (#323), dispatch monitor projects dir encoding (#324), prax atomic_write retry on PermissionError (#325), prax _WindowsSafeRotatingHandler (#318), branch_detector forward-slash normalize, memory_bank config seed (#322), PS profile wrapper (#319/#340). All Windows-only branches or no-op on Linux. 3146 tests pass, ruff zero. Closes #328 scope. Input-X credit preserved. (#342)
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-16 13:41:31 -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 bf1f37bf41 feat(system): feat(setup): auto-configure AIPASS_HOME + PATH for cross-project access — all AIPass services (seedgo, flow, ai_mail, etc.) now available from any project after setup. Linux: AIPASS_HOME added to .bashrc. Windows: AIPASS_HOME + PATH + PYTHONUTF8 added to .bash_profile. Claude Code settings.json gets AIPASS_HOME in env block so dispatched agents inherit it. (#314)
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-16 01:07:37 -07:00
AIOSAIand@devpulse fb087b0e01 feat(system): fix(windows): hooks use venv python not python3 (#307), identity_injector reads identity.name fallback (#309), Path.rename→os.replace for Windows (#310), RotatingFileHandler catches PermissionError on rotation (#311)
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-16 00:53:18 -07:00
AIOSAIand@devpulse 946a0f46f9 feat(system): fix(setup): Windows 10 hardening — python3 MS Store alias fallback (#292), venv file-locking workaround (#294-C), pip bootstrap via explicit venv python (#294-B/E), strip stale .venv from PATH (#294-D), PYTHONUTF8 for Rich Unicode (#296). All fixes from Input-X's Windows 10 test session. Linux path unchanged — same python3 detection, same venv flow.
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-15 23:44:49 -07:00
AIOSAIand@devpulse 91fb49db84 feat(system): fix(setup): remove stale bootstrap_branch calls for backup, daemon, commons, skills — these branches were removed in S82/S87 and moved to external repos. setup.sh was creating ghost directories with .trinity/ scaffolding that confused new users and made drone route to non-existent agents. Also removed commons/skills from registry generator. Fixes #294 Part 2, relates to #291.
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-15 23:23:16 -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 6df129c672 feat(system): Codex CLI integration: AGENTS.md, hooks, skills, setup.sh detection
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-05 21:41:37 -07:00
AIPassandClaude Opus 4.6 6f2333ec67 S58: README rewrite + HERALD.md + fresh install fixes (#140)
* docs: rewrite README with verified claims + add HERALD.md progress tracker

README rewritten and verified against live system:
- All commands tested and confirmed working
- drone systems shows 23 (15 core + 8 test), documented correctly
- seedgo at 33 standards (was incorrectly stated as 34)
- Docker setup-workspace.sh fork URL noted
- setup.sh sudo requirement documented
- prax monitor marked as interactive
- Added Standards, Communication, and Structure sections
- Removed session tracking (moved to HERALD.md)
- Branch table expanded with roles and descriptions

HERALD.md: Living progress doc for Patrick to read between sessions.
Contains session history, active DPLANs, milestones, known issues.

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

* fix(install): registry format mismatch + seedgo CLI entry point

Bugs found via fresh Docker install test:

1. setup.sh generated AIPASS_REGISTRY.json with branches as dict (keyed
   by name), but seedgo's discovery.py expected a list of dicts. Result:
   `drone @seedgo audit aipass` was completely broken on any fresh install.
   Fix: setup.sh now generates list format (matching existing registry).

2. setup.sh verified `seedgo --help` but seedgo has no CLI entry point —
   it's only accessible via `drone @seedgo`. Fix: check `drone @seedgo --help`
   instead, remove broken symlink attempt.

3. seedgo discovery.py now handles both list and dict registry formats
   defensively (in case old registries exist).

4. README updated to remove seedgo standalone CLI claims.

Verified: full fresh install in Docker container — setup.sh completes
successfully, drone systems shows 15 branches, seedgo audit runs clean.

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

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 12:10:19 -07:00
18acb30f83 chore(system): session 34 — maintenance + multi-branch work (#70)
* 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(spawn): seedgo compliance cleanup — 93% to 98%

Archive legacy files (dev.local.md, ai_mail.local/, .seed/). Update META
Modified dates on 22 files. Update README architecture tree and freshness.
Fix 15 Pyright unused warnings. Add introspection no-args gates to 6
modules. Wire json_handler + log_operation to 15 operational files. Add
seedgo bypass for 5 pure data files and log_structure. Remove deprecated
dev.local.md from builder template.

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

* chore(system): session 34 — maintenance day, multi-branch work

System changes:
- setup.sh: symlink install replaces .bashrc PATH export for drone/seedgo
- .claude/settings.json: deny list moved to per-branch settings.local.json
- .gitignore: updated
- CLAUDE.md culture doc: stale refs fixed (Cortex→spawn, id.json→passport.json)

Branch work (accumulated from 15-branch rounds):
- daemon: stale term cleanup, plugin removals, json handler modernization
- drone: module refactor (discovery, registry, router, resolver, config)
- commons: 50+ file cleanup (imports, handlers, modules)
- flow: template loader, plan type system, command parser

Per-branch settings.local.json: reworked deny lists — allow PR workflow,
deny destructive git ops (reset, rebase, merge, clean, force push, rm -rf).
Fixed pattern syntax from :* to * glob.

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

---------

Co-authored-by: @ai_mail <ai_mail@aipass>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: @spawn <spawn@aipass>
Co-authored-by: @devpulse <devpulse@aipass>
2026-03-17 16:45:05 -07:00
AIPassandClaude Opus 4.6 09e759a8a4 fix(setup): seed .env template into ~/.secrets/aipass/ on bootstrap (#29)
setup.sh now copies .env.example to ~/.secrets/aipass/.env so new users
get the key template in the right place automatically. Updated .env.example
header to point to the secrets location.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 13:26:23 -07:00
AIPassandClaude Opus 4.6 defd1d3c94 feat(setup): full bootstrap — setup.sh delivers all 15 branches ready to go (#21)
- setup.sh now creates .trinity/, .seedgo/, .ai_mail.local/ for all 15 branches
- Registry includes commons + skills (was 13, now 15)
- spawn: fix registry format mismatch (dict vs list) that crashed every command on fresh install
- spawn: skip existing files during create (never overwrite)
- README: quick start guide rewritten for new users
- commons/skills README: rebuilt from birthright scaffold to real docs
- .env.example added for OpenAI/OpenRouter API keys

Tested end-to-end in Docker: clone → setup.sh → 15 branches → all identity files valid.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 10:47:13 -07:00
AIPassandClaude Opus 4.6 cfd66b3b96 fix(seedgo): audit and fix all 20 standards — checker bugs, doc paths, naming rewrite (#20) (#20)
Full standards audit traced every doc through its checker into the codebase.
All 20 standards rated NEEDS UPDATE. This PR fixes the systemic issues:

Checker bugs fixed:
- encapsulation_check: continue/break bug falsely flagging allowed handlers
- error_handling_check: now accepts canonical prax import (not just shorthand)
- cli_check: import detection now matches aipass.cli prefix (was bare cli.)
- meta_check: AIPass header accepted (was only META), legacy compat preserved

Doc fixes:
- Checker paths corrected in 10 docs (added standards/aipass/ segment)
- naming.md rewritten: marketplace removed, json_handler.py promoted to
  standard, verbs descriptive not prescriptive, module naming section added
- imports.md: both prax import forms now valid (canonical + shorthand)
- architecture/testing/trigger/encapsulation/json_structure/cli_flags/
  log_handler: stale paths, Dev-Pass refs, outdated data fixed

Code fixes:
- parents[4]→parents[3] in 16 handler files (backup/daemon/memory)
- AIPass header marker in all 42 checker .py files
- pyproject.toml: added pyright to dev deps
- Removed agent_mock_branch template (replaced by builder/birthright)
- Removed stale branch_system_prompt.md files (renamed to aipass_local_prompt.md)
- New devpulse local prompt + FPLAN-0010

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 01:39:36 -08:00
AIOSAIandClaude Opus 4.6 2099adda72 feat(spawn): citizen classes, setup script, gitignore, README rewrite
- Spawn: builder/birthright templates replace agent.template, passport command,
  class-aware create/update (FPLAN-0009)
- setup.sh: one-command install (venv, pip, hooks, registry generation)
- .gitignore: comprehensive coverage for all runtime state (.trinity/,
  .ai_mail.local/, DASHBOARD.local.json, *_json/, logs/, etc.)
- README.md: rewritten for accuracy — removed fictional plugin docs,
  fixed architecture pattern, corrected module statuses
- Hooks moved to global ~/.claude/settings.json (absolute paths)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 22:06:28 -08:00