Commit Graph
11 Commits
Author SHA1 Message Date
AIOSAI 874c7fed2e #678 owner-capability: seal project ownership in the registry + wake the OWNER back on dispatch completion. TDPLAN-0012 — 3 parts built in parallel against a frozen is_owner contract, verified end-to-end by devpulse.
@spawn: owner + registry_id written into the SEALED registry entries (authority lives in registry, not the self-editable passport). ensure_project_has_owner() now keys off citizen_class=manager (was earliest-created, which mislabeled @aipass) and writes the registry entry. get_owner()/is_owner() resolvers added. 315 tests, seedgo 100%.
@hooks: new registry_gate PreToolUse handler seals *_REGISTRY.json — blocks raw writes/tee/sed/rm + Edit/Write/MultiEdit, redirects to drone @spawn; per-clause bypass defeats compound-command smuggling; reads allowed. 82 tests, seedgo 100%.
@ai_mail: wake-back reslope — SKIP_SENDERS blocklist replaced by an is_owner allowlist. Only the project owner is woken when their dispatched agent completes; all other guards intact (depth cap, lock, occupancy, honest messaging, dispatch_wake.log). seedgo 100% on the changed file.

devpulse cross-part verify (REAL unmocked resolver): is_owner resolves devpulse-only; gate 13/13 incl compound-smuggle blocked + reads/drone-@spawn allowed; wake-back wakes owner / skips non-owner / respects depth-cap; 195 new-suite tests green together. Note: AIPASS_REGISTRY.json is gitignored — this ships the CODE; owner data regenerates per-install via ensure_project_has_owner. Still open (PART 4): gate watchdog+feedback on is_owner; portability of owner-only privileges across projects.
2026-07-10 00:46:17 -07:00
AIOSAI 13463c0ce0 feat(spawn): rename builder->aipass_framework, {{CITIZEN_CLASS}} placeholder, retire birthright, per-project registry targeting (TDPLAN-0010, FPLAN-0294) 2026-07-01 08:16:54 -07:00
AIOSAIand@spawn df7df8ba92 feat(system): fix(spawn): retroactive owner field for existing projects (DPLAN-0146)
Co-Authored-By: @spawn <spawn@aipass>
2026-04-22 23:10:14 -07:00
AIOSAIand@devpulse f0019ca204 feat(system): chore: gitignore HERALD.md and remove from README
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-22 23:07:56 -07:00
AIOSAIand@spawn 744ca3ab46 feat(system): feat(spawn): add owner field to passport — first agent is project owner (DPLAN-0143)
Co-Authored-By: @spawn <spawn@aipass>
2026-04-22 22:55:09 -07:00
AIOSAIand@devpulse bc28c948b0 feat(system): fix(system): remove branch-level CLAUDE.md — only project root needs it. Removes template + 6 branch files + updates spawn tests
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-22 13:30:21 -07:00
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
93098c5a72 feat(api+spawn): DPLAN-0133 Phase 1 (part 2/2) + Phase 2 — bridge registry, driver auto-discovery, integrations handlers (#290)
* feat(drone): add watchdog to INTERACTIVE_COMMANDS — bypass 30s capture timeout for long-running poller

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

* feat(drone): fix merge_plugin: stash unstaged changes before git pull --rebase to prevent dirty-tree abort

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

* 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>

* feat(spawn): DPLAN-0133 Phase 1 (part 2/2): add apps/integrations/ scaffold to builder template

Every new branch spawned via `drone @spawn create` now lands with
`apps/integrations/README.md` — the private integration space introduced
in DPLAN-0133. The README explains the three-layer architecture (api
driver → branch wrapper → public contracts) and is the only tracked file
in the folder; everything else dropped there is gitignored by the root
rule shipped in PR #289.

Changes:
- templates/builder/apps/integrations/README.md — new scaffold file
- templates/builder/.spawn/.template_registry.json — regenerated (44→45 files, 23→24 dirs)
- tests/test_citizen_classes.py — new test asserting integrations/ exists after create; added missing docstrings to 14 test methods
- .seedgo/bypass.json — added architecture + encapsulation bypasses for test_citizen_classes.py (standard test-file exemptions)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(api): DPLAN-0133 Phase 2 — bridge contract registry + driver auto-discovery + integrations handlers

Implements the @api side of the three-layer private-integration architecture
(DPLAN-0133). Branches call generic contracts; @api resolves them at runtime
to whatever private driver is registered locally.

New modules:
  apps/modules/bridge.py             — module-level dict registry (register/resolve/list_contracts/clear)
  apps/modules/registry.py           — auto-discovery walker for apps/integrations/*/driver.py
  apps/modules/integrations_manager.py — drone @api integrations {list,call} command routing
  apps/handlers/integrations/list.py — handler: log + return contract listing
  apps/handlers/integrations/call.py — handler: invoke driver, return result dict
  apps/integrations/testcontract/driver.py — canary driver (contract "test" → "pong", gitignored)
  tests/test_integrations.py         — 17 tests (bridge, registry, fetch_contracts, call_contract)

All 306 existing tests remain green. Empty integrations/ exits 0 cleanly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(api): integrations_manager — unknown subcommand exits 1 + fix doubled Try: prefix

Found via stress testing DPLAN-0133 Phase 2:
- `drone @api integrations foobar` returned exit 0 (success) instead of 1
- Error message showed "Try: Try: list, call" (doubled prefix)

Two-line fix: suggestion string drops "Try:" prefix (error() adds it),
return True → sys.exit(1) for proper non-zero exit.

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

---------

Co-authored-by: @drone <drone@aipass>
Co-authored-by: @devpulse <devpulse@aipass>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 13:24:25 -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
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 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