Commit Graph
133 Commits
Author SHA1 Message Date
AIOSAIand@prax e19f4b7ff1 chore(prax): seedgo audit cleanup — introspection, diagnostics, dead code
- Add introspection no-args gate to all 11 modules (50% → 100%)
- Fix 16 pyright type errors across 6 handler files (5% → 100%)
- Archive dead code: cli_commands.py, INTEGRATION_EXAMPLE.py,
  MONITOR_MODULE_INTEGRATION.py, duplicate json_templates/
- Fix stderr routing in dashboard.py, debug→info in sync.py
- Clean unused imports across 13 files
- Update README.md for two-tier model, add dropbox/ for architecture
- Seedgo audit: 91% → 93% (remaining: log_structure + json_structure
  pending seedgo standard updates)

Co-Authored-By: @prax <prax@aipass>
2026-03-17 00:35:38 -07:00
AIOSAIand@prax 3a55e0b8b4 refactor(prax): simplify logging from hierarchical to two-tier
Remove get_hierarchical_logs_dir() and all nested log placement logic.
Local logs now route to branch-root logs/ only, matching system_logs/
at repo root for a clean two-tier model.

Co-Authored-By: @prax <prax@aipass>
2026-03-16 23:56:57 -07:00
AIPassand@devpulse 79b09e8c1d chore(system): portable hooks — git rev-parse, global_hooks supply, setup guide (#58)
Migrate all AIPass hooks from hardcoded paths to git rev-parse --show-toplevel.
Zero AIPass paths remain in global settings. Hooks auto-discover repo root.

- .claude/README.md: complete setup guide (3 steps, exact JSON to paste)
- .claude/global_hooks/: user-level scripts to copy to ~/.claude/hooks/
- .claude/hooks/prompt_inject.sh: combined inject (reference)
- .aipass/aipass_global_prompt.md: STATUS.local.md elevated to equal priority

Related: DPLAN-0053 (Hook Migration — Project-Level Settings)

Co-authored-by: @devpulse <devpulse@aipass>
2026-03-16 12:16:16 -07:00
d63b6def07 docs(system): README — bypassPermissions, drone AI-first CLI, STATUS parity (#57)
* feat(system): enable subagent hook enforcement (DPLAN-0050)

Add CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 env var so PostToolUse hooks
fire inside all subagents. Wire SubagentStop gate as secondary enforcement.
Remove unused custom builder agent. Update .claude/README.md with subagent
hook architecture docs.

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

* docs(system): README — bypassPermissions, drone AI-first CLI, STATUS.local.md parity

- Fix claude command to claude --permission-mode bypassPermissions (how system actually runs)
- Add drone section: AI-friendly single-line commands, guessable patterns, no interactive mode
- Elevate STATUS.local.md from "notepad" to equal persistence layer priority
- Remove stale dev.local.md reference from global prompt

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

---------

Co-authored-by: @seedgo <seedgo@aipass>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: @devpulse <devpulse@aipass>
2026-03-15 23:37:06 -07:00
AIPassand@devpulse 107d685a29 chore(system): git workflow — return to main after PR (#56)
Add "Return to main after PR" instruction to global prompt. Git branches are
repo-wide — citizens must switch back to main after creating PRs so they don't
strand other citizens on stale feature branches. Tested: memory complied on
first attempt.

Co-authored-by: @devpulse <devpulse@aipass>
2026-03-15 22:51:59 -07:00
AIPassand@memory 6a6e2064f5 feat(memory): restore lost subsystems + modernize templates module (#55)
Port missing subsystems from old memory bank:
- symbolic module + 7 handlers (fragmented memory extraction, AUDN dedup)
- templates module + 3 handlers (pusher, differ, spawn_pusher)
- pool_processor intake handler

Modernize templates system (FPLAN-0052):
- Fix all imports (MEMORY_BANK → aipass.memory, cli → aipass.cli)
- Remove hardcoded paths, use Path(__file__) traversal
- Add seedgo-compliant introspection gate to templates.py
- Update canonical templates to v2 schema (entry-count limits)
- Create spawn_pusher.py handler for auto-discovering spawn template sets
- Wire spawn_pusher into push-templates command

Co-authored-by: @memory <memory@aipass>
2026-03-15 22:47:53 -07:00
75009603f5 docs(system): README update — init-anywhere, recent work (#54)
* chore: project-level PostToolUse hook + builder agent definition + prompt update

- .claude/settings.json: Added PostToolUse hook (Edit|Write|MultiEdit) for
  auto-fix diagnostics at project level (investigating subagent hook delivery)
- .claude/agents/builder.md: Custom builder agent with auto-fix PostToolUse hook
  (not yet accessible via Agent tool subagent_type — investigating)
- .aipass/aipass_global_prompt.md: Added "stage from git, not from memory" rule
- .gitignore: Added memory fragmented config/state files

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

* docs(system): README update — init-anywhere story, recent work sync

Add init-anywhere as a core capability. Update recently completed with CLI front door,
memory introspection overhaul, seedgo standards enforcement. Refresh STATUS.md sync.

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

---------

Co-authored-by: @seedgo <seedgo@aipass>
Co-authored-by: @devpulse <devpulse@aipass>
2026-03-15 22:36:25 -07:00
AIPass d46b7b512e Merge pull request #52 from AIOSAI/feat/seedgo-reach-standards-enforcement
feat(seedgo): Standards enforcement system — checklist, checker fixes, handler guards
2026-03-15 22:32:21 -07:00
AIPass 5c7747ca20 Merge pull request #53 from AIOSAI/feat/memory-cli-introspection
feat(memory): CLI introspection overhaul — seedgo-compliant discovery
2026-03-15 22:31:37 -07:00
AIOSAIand@memory 410b2e44e2 feat(memory): CLI introspection overhaul — seedgo-compliant discovery
Wire print_introspection() into both modules with no-args gate per seedgo
introspection standard. Rollover bare command now shows handlers + subcommands
instead of executing. Search bare command shows introspection instead of error.
Fix bug where `search --help` ran a search for "--help". Remove 5 ghost
commands from help text. Restructure rollover as subcommands (run/status/check/
sync-lines).

DPLAN-0045, FPLAN-0047, FPLAN-0049

Co-Authored-By: @memory <memory@aipass>
2026-03-15 20:22:11 -07:00
AIOSAIand@seedgo 4e183f2bf8 feat(seedgo): standards enforcement system — checklist command, checker fixes, handler guards
FPLAN-0048: Seedgo Reach — 4-phase standards enforcement overhaul.

Phase 1: Checker improvements
- introspection_check.py: module-level handle_command() gate validation
  (catches modules that execute instead of showing introspection on no-args)
- encapsulation_check.py: handler guard presence detection
  (flags branches with empty handlers/__init__.py)

Phase 2: Checklist command
- New checklist.py module: `drone @seedgo checklist <file>`
- Runs applicable standards per-file, concise pass/fail output
- 23 standards on entry points, 3 (all_files scope) on modules
- Designed for auto-fix hook consumption

Phase 3: Auto-fix hook integration (separate from this commit)

Phase 4: Handler guard deployment
- Deployed runtime import guards to 6 previously unprotected branches
  (backup, daemon, drone, memory, spawn, seedgo)
- All 12 handler-bearing branches now have active guards
- Uses inspect.stack() to block cross-branch handler imports

Co-Authored-By: @seedgo <seedgo@aipass>
2026-03-15 20:20:52 -07:00
AIPass 07f2a6cf8f Merge pull request #51 from AIOSAI/feat/cli-front-door-and-drone-adapter
feat(cli,drone): CLI front door + drone internal module
2026-03-15 17:31:53 -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
aa2aaaad22 docs(system): update README with recent work + STATUS sync (#50)
Refresh README "Current State" section with completed work (credential
model, stderr routing, dashboard pipeline, CLI init, drone tests,
governance). Add README/--help discovery tip for new users. Sync
STATUS.md from all 15 branches.

Co-authored-by: @devpulse <devpulse@aipass>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 00:03:56 -07:00
AIPass 824bd2f4bf Merge pull request #49 from AIOSAI/feat/session-29-cleanup
fix(system): session 29 cleanup — governance, ruff config, branch work
2026-03-14 23:43:10 -07:00
AIOSAIand@devpulse f91c8d2f32 fix(system): session 29 cleanup — governance, ruff config, branch work
- Global prompt: dispatch reply breadcrumb (branches must reply to dispatchers)
- /prep command: broadened to end-of-session, not just pre-compact
- .gitignore: added .ruff_cache/ and .pytest_cache/
- pyproject.toml: ruff ignore E402 (metadata headers) + __init__.py F401 (re-exports)
- ai_mail: dashboard_sync.py import fix (devpulse → prax)
- backup: config_handler, ignore_patterns, file_scanner, backup_core updates + test
- devpulse: archived init_project.py (migrated to CLI in PR #48)

Co-Authored-By: @devpulse <devpulse@aipass>
2026-03-14 23:40:10 -07:00
4f061c4d75 feat(prax): fix dashboard refresh data pipeline — 4 bugs (#47)
- Fix prax.py argparse eating --all/--branch flags before they reach
  dashboard handler (parse_args → parse_known_args + forward remaining)
- Fix case-sensitive branch matching in flow extraction (centrals use
  lowercase, refresh uses uppercase — added .upper() to comparison)
- Add missing last_updated timestamp to ai_mail section extraction
- Fix flow last_updated to read generated_at from PLANS.central.json
  instead of non-existent top-level last_updated

Tested: refresh --all now updates all 15 branches with live data.
FLOW correctly shows 12 active plans (was 0 due to case mismatch).

Co-authored-by: @prax <prax@aipass>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 23:29:53 -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
f9cff284b3 feat(prax): dashboard cleanup — remove devpulse, fix broken paths (#45)
* feat(backup): stderr routing, error masking fix, mtime pre-check, ignore patterns split

- Route all error/warning prints to stderr via error()/warning() (backup_core, google_drive_sync)
- Fix route_command error masking — show real errors instead of "Unknown command"
- Add versioned backup mtime pre-check to skip unchanged files
- Extract ignore patterns from config_handler to editable JSON (FPLAN-0037)
  - New: ignore_patterns.py loads from json_templates/ignore_patterns.json
  - config_handler.py v3.0.0 re-exports for backwards compatibility
  - 132 patterns, 14/14 tests pass

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

* feat(prax): dashboard cleanup — remove devpulse section, fix broken paths

Phase 1 dashboard cleanup (FPLAN-0040):
- Remove devpulse section from template, all hardcoded defaults, and refresh pipeline
- Fix broken paths: old aipass_os/dev_central/devpulse → prax via Path(__file__)
- Fix registry: BRANCH_REGISTRY.json → AIPASS_REGISTRY.json with repo root walk-up
- Fix relative path resolution: registry stores relative paths, now resolved against repo root
- Fix agent_status_writer subprocess import: aipass.devpulse → aipass.prax
- Update help text and docstrings: drone @devpulse → drone @prax
- Add devpulse to DEPRECATED_SECTIONS in template_pusher and differ
- Push-template verified: all 15 branches updated, devpulse section removed

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

---------

Co-authored-by: @backup <backup@aipass>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: @prax <prax@aipass>
2026-03-14 23:07:39 -07:00
c6d2bcd353 feat(drone): 188-test suite, interactive backup commands, type fix (#46)
* feat(backup): stderr routing, error masking fix, mtime pre-check, ignore patterns split

- Route all error/warning prints to stderr via error()/warning() (backup_core, google_drive_sync)
- Fix route_command error masking — show real errors instead of "Unknown command"
- Add versioned backup mtime pre-check to skip unchanged files
- Extract ignore patterns from config_handler to editable JSON (FPLAN-0037)
  - New: ignore_patterns.py loads from json_templates/ignore_patterns.json
  - config_handler.py v3.0.0 re-exports for backwards compatibility
  - 132 patterns, 14/14 tests pass

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

* feat(prax): dashboard cleanup — remove devpulse section, fix broken paths

Phase 1 dashboard cleanup (FPLAN-0040):
- Remove devpulse section from template, all hardcoded defaults, and refresh pipeline
- Fix broken paths: old aipass_os/dev_central/devpulse → prax via Path(__file__)
- Fix registry: BRANCH_REGISTRY.json → AIPASS_REGISTRY.json with repo root walk-up
- Fix relative path resolution: registry stores relative paths, now resolved against repo root
- Fix agent_status_writer subprocess import: aipass.devpulse → aipass.prax
- Update help text and docstrings: drone @devpulse → drone @prax
- Add devpulse to DEPRECATED_SECTIONS in template_pusher and differ
- Push-template verified: all 15 branches updated, devpulse section removed

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

* feat(drone): add 188-test suite, interactive commands for backup, type fix

- Add 5 test files (188 tests) covering executor, resolver, router,
  registry_handler, and discovery — built via 3-round audit process
- Add snapshot/versioned to interactive command tuple for backup Rich output
- Fix type error in router_handler.py:119 (command: Optional[str] → str)
- Fix pytest.ini inline comments breaking pytest 9.x
- Document interactive commands in README

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

---------

Co-authored-by: @backup <backup@aipass>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: @prax <prax@aipass>
Co-authored-by: @drone <drone@aipass>
2026-03-14 23:07:06 -07:00
0e658baf85 feat(backup): stderr routing, error masking fix, mtime pre-check, ignore patterns split (#44)
- Route all error/warning prints to stderr via error()/warning() (backup_core, google_drive_sync)
- Fix route_command error masking — show real errors instead of "Unknown command"
- Add versioned backup mtime pre-check to skip unchanged files
- Extract ignore patterns from config_handler to editable JSON (FPLAN-0037)
  - New: ignore_patterns.py loads from json_templates/ignore_patterns.json
  - config_handler.py v3.0.0 re-exports for backwards compatibility
  - 132 patterns, 14/14 tests pass

Co-authored-by: @backup <backup@aipass>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 23:07:03 -07:00
AIPassand@api 9ab96013e7 feat(api): Google provider module — centralized external API gateway (#43)
Add Google API authentication and service factory as the first
non-LLM provider in API's evolution to centralized external service
gateway (DPLAN-0036).

New handlers: google/auth.py (OAuth2 lifecycle), google/service_factory.py
(single + thread-safe service objects), google/retry.py (SSL retry).
New module: google_client.py with get_drive_service(), get_google_service(),
validate_google(), reauth_google() public API.

New commands: drone @api validate google, drone @api reauth google.
Credentials at ~/.secrets/aipass/ (cross-platform standard).

Co-authored-by: @api <api@aipass>
2026-03-14 23:07:00 -07:00
dependabot[bot] 4c43610816 ci(deps): bump actions/upload-artifact from 4 to 7 (#40)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-14 23:06:57 -07:00
dependabot[bot] dc60524f21 ci(deps): bump actions/stale from 9 to 10 (#39)
Bumps [actions/stale](https://github.com/actions/stale) from 9 to 10.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v9...v10)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: '10'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-14 23:06:55 -07:00
AIPassand@devpulse 3fd3c24bf7 docs(system): git workflow, DPLAN/FPLAN docs, and how-to-work guidelines (#42)
Global prompt additions:
- Git Workflow section: commit scope, PR flow, signature format, never merge
- How to Work section: always plan, use agents, check seedgo
- DPLAN/FPLAN breadcrumb: what each is, when to use which, master command
- DPLAN template: self-explanatory intro so agents know what they're holding

Co-authored-by: @devpulse <devpulse@aipass>
2026-03-14 20:18:30 -07:00
AIPassandClaude Opus 4.6 8fedc053ec feat(system): credential model, stderr migration, DPLAN/FPLAN docs (#41)
* feat(system): stderr routing migration Phase 3 — 10 branches migrated (FPLAN-0033)

Autonomous 3-wave migration: 15+ agents across 10 branches converted
error/warning prints to CLI stderr functions. Seedgo stderr_routing
checker refined (false positive fix for section headers). System avg
49%→94%. Skills self-fixed (100%). Credential model DPLAN updated.
AIPASS.md moved to ~/.claude/CLAUDE.md (global culture layer).

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

* fix(system): stderr routing cleanup — remaining violations fixed

Final wave: ai_mail, backup, seedgo, commons, daemon migrated to
CLI stderr functions. System stderr_routing avg now 97% (11 branches
at 100%). Seedgo checker refinement confirmed (false positives
eliminated). Only backup/google_drive_sync has remaining prints.

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

* feat(system): /prep command + cleanup memo and pre-compact hook

New /prep slash command for pre-compact preparation: saves memories,
updates plans, checks git/inbox, flags loose ends. Workflow: /prep
then /compact. Cleaned up /memo (stale field refs, flow.local.md →
STATUS.local.md). Pre-compact hook: removed misleading Notepad
reference, points to local.json and STATUS.local.md instead.

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

* docs(flow): DPLAN/FPLAN distinction in global prompt + DPLAN template self-documentation

Global prompt now explains DPLAN vs FPLAN with brief breadcrumbs and adds
the missing `master` command. DPLAN template now opens with a "What is a
DPLAN?" section so agents understand the plan type on first read.

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-14 18:57:23 -07:00
AIPass 518d6bf2d6 Merge pull request #38 from AIOSAI/feat/registry-glob-and-system-fixes
feat(system): registry glob discovery, drone stderr fix, pyright OOM fix
2026-03-14 11:52:06 -07:00
AIOSAIandClaude Opus 4.6 97952124b5 feat(system): stderr routing migration Phase 3 — 10 branches migrated (FPLAN-0033)
Migrated error()/warning() calls across 10 branches to use CLI display API
which routes to stderr. 48 files modified across ai_mail, api, backup, daemon,
flow, memory, prax, seedgo, spawn, trigger. Seedgo stderr_routing standard
created (24th standard) with full-file scanning. System average 49% → 69%.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 00:41:38 -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 c6e504f861 feat(system): registry credential verification + spawn registry_id injection
Drone: added _verify_registry_credential() to load_registry(). Compares
passport's citizenship.registry_id against registry's metadata.id. Hard
error on mismatch, silent pass when either side missing (backwards
compatible). Closes the silent-fallback concern from Scenario 5 testing.

Spawn: build_replacements_dict() now reads registry UUID and provides
{{REGISTRY_ID}} placeholder. Both builder and birthright passport
templates updated with registry_id field. New branches auto-get
credentialed passports.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 22:46:10 -07:00
AIOSAIandClaude Opus 4.6 aa271ba883 feat(system): credential model design + aipass init prototype (DPLAN-003)
Registry credential model: registries get UUID in metadata.id, passports
carry matching registry_id. Stage 1 (UUID match) designed, Stage 2
(macaroon tokens) planned. Research confirmed macaroons as best-fit
pattern for AI agent delegation.

init_project.py prototype: bootstraps AIPass project in any directory
(registry, .trinity, .aipass, AIPASS.md). Hardened against 10 edge
cases (name sanitization, permission errors, passport overwrite guard).
Drone isolation verified across 6 scenarios (sibling, nested, deep
walk-up, cross-project contamination). All findings documented in
credential_model.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 22:38:23 -07:00
AIOSAIandClaude Opus 4.6 8ab43a2cd0 feat(system): registry glob discovery, drone stderr fix, pyright OOM fix (#38)
Registry discovery (drone, spawn, seedgo) now globs for *_REGISTRY.json
with CWD-first walk-up — enabling project isolation without hardcoded
filenames. Drone stderr crash fixed (Rich Console). Pyright OOM fixed
via pyrightconfig excludes. AIPASS.md simplified for universal use.
Global prompt updated with flow commands. DPLAN-003 added for
AIPass-as-OS design vision.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 21:22:47 -07:00
AIPassandClaude Opus 4.6 4f87b5c044 feat(system): clean hook separation, AIPASS.md as project prompt (#37)
- Move general hooks (sounds, auto-fix) to Anthropic settings only
- Remove duplicated hooks from project settings (don't fire from subdirs)
- Project settings now permissions-only, no hooks
- Identity injector: remove apps/ requirement (fixes devpulse detection)
- Identity injector: support traits[] array from passport
- AIPASS.md: renamed to Project Prompt, silent startup, CWD-relative paths
- /memo: read passport first for identity re-injection
- README: reflects actual working setup with clear Anthropic/project split

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 18:02:57 -07:00
AIPassandClaude Opus 4.6 08988ecead chore: remove CLAUDE.md, add AIPASS.md, gitignore .chroma/, DPLAN-003 (#36)
CLAUDE.md and .claude/CLAUDE.md removed — replacing with aipass.md architecture (DPLAN-003).
Added .chroma/ to gitignore. DPLAN counter bumped for DPLAN-003.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 15:51:14 -07:00
AIPassandClaude Opus 4.6 717acf078a feat(system): hook containment + memory bank operational (FPLAN-0026) (#35)
Hook containment: AIPass hooks moved from global to project-level
.claude/settings.json. Global now only has trinity inject. Non-AIPass
projects no longer receive AIPass context.

Memory bank (FPLAN-0026): @memory completed all 6 phases autonomously —
venv with ML deps, registry fix, rollover E2E, search, plan archival,
help cleanup. ChromaDB operational with local + global .chroma stores.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 19:29:06 -07:00
AIPass 1c5e3ee561 Merge pull request #33 from AIOSAI/feat/system-skills-prompts-precompact
feat(system): skills validation, prompt architecture v2, pre-compact v3, context guardrail
2026-03-12 00:28:26 -07:00
AIOSAIandClaude Opus 4.6 d3cabba738 feat(system): skills validation, prompt architecture v2, pre-compact v3, context guardrail
Skills branch: 74→123 tests after 3-round validation, all commands operational, 99% seedgo.
Prompt architecture: breadcrumbs pattern refined, devpulse git hygiene rewritten as natural habit.
Pre-compact v3: injects STATUS.local.md + last session + git info before compaction.
Global prompt: context guardrail added (flags off-topic conversations across terminals).
Branch updates: daemon, backup, flow, memory, trigger, commons — code fixes from dispatch waves.
Memory updates: .trinity/ and dev.local.md across all active branches.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 00:04:16 -07:00
AIPassandClaude Opus 4.6 fc0de2a76f feat(system): STATUS board, flow DPLAN fixes, prompt architecture, dev.local.md (#32)
STATUS board: per-branch STATUS.local.md with central aggregation via
drone @prax status sync. Prax handler scans AIPASS_REGISTRY.json and
builds collapsible STATUS.md at repo root (14 operational, 1 in-progress).

Flow: migrated all 10 DPLAN handler files from Dev-Pass paths to
Path(__file__)-based resolution. Fixed FPLAN template detection
(is_template_content was deleting plans with real content).

Prompts: breadcrumbs philosophy in global prompt, dev.local.md awareness,
devpulse branch prompt revised (expertise table, working habits, git hygiene).

ai_mail: sender identity fix propagated, email.py handler refactoring.

Prax: status sync handler, dashboard command collision fix, central/reader.py.

dev.local.md seeded across all 15 branches + spawn template. Gitignore
updated (dev.local.md, STATUS.local.md, CLOSED_PLANS.local.json, backup_data).

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 13:36:05 -07:00
AIPass 0cfb440ae3 feat(system): seedgo v2 operational, full system audit — 14/15 branches at 99% (#31)
feat(system): seedgo v2 operational, full system audit — 14/15 branches at 99%
2026-03-10 01:29:05 -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
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 ca8b3a2912 chore: gitignore FPLAN and DPLAN files — plans are local, not tracked (#28)
Plans are runtime artifacts managed by flow. They stay on disk but don't belong in the repo.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 13:05:51 -07:00
AIPassandClaude Opus 4.6 9579c27139 fix(skills): drone routing, name validator, pytest.ini, full template (#24) (#27)
Fix sys.path so drone @skills commands work (script was shadowing package). Allow underscores in skill names. Remove broken inline comments from pytest.ini. Add missing handler.py to full template. All 74 tests pass.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 13:02:10 -07:00
AIPassandClaude Opus 4.6 3460963ba0 feat(system): prompt architecture, dashboard → prax, DPLANs → flow, culture doc (#23) (#23)
Rewrote system + branch prompts (lean signposts, no duplication). Extracted dashboard infrastructure from Dev-Pass into Prax (11 files). Extracted DPLAN system from Dev-Pass into Flow (15 files). Enabled culture doc (.claude/CLAUDE.md) with @address pattern. Created DPLAN-0002 for prompt template standards.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 11:58:18 -07:00
AIPass 1bab122b81 Merge pull request #22 from AIOSAI/fix/ai-mail-caller-identity
fix(ai_mail): caller identity detection for Docker and local (#22)
2026-03-08 11:09:28 -07:00
AIOSAIandClaude Opus 4.6 d7eab7314d fix(ai_mail): caller identity detection for Docker and local (FPLAN-0011)
Drone now detects caller branch name from passport.json and passes AIPASS_CALLER_BRANCH env var. ai_mail checks this first for path-independent identity resolution, falling back to CWD-based detection. Also fixes dict-format registry handling in delivery.py and user.py.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 11:07:37 -07:00
AIOSAI bd22f1a076 📝 docs(README): update module descriptions and add new branches
- revise module details to reflect current framework structure
- introduce new branches and explain their purposes
- clarify active development status and project history
2026-03-08 11:02:46 -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