docs: update 7 branch READMEs with accurate state + switch dispatch default to sonnet + codex setup + gitignore memory_pool
This commit is contained in:
@@ -119,6 +119,8 @@ src/aipass/memory/config/.plans_processed.json
|
||||
src/aipass/drone/drone_command_registry.json
|
||||
src/aipass/spawn/templates/builder/.spawn/.template_registry.json
|
||||
src/aipass/memory/config/.plans_processed.json
|
||||
src/aipass/memory/memory_pool/
|
||||
src/aipass/memory/memory_pool_archive/
|
||||
src/aipass/drone/apps/plugins/devpulse_ops/__pycache__/pr_plugin.cpython-312.pyc
|
||||
|
||||
whiteboard.md
|
||||
|
||||
@@ -6,11 +6,12 @@ User: user
|
||||
|
||||
# Startup protocol
|
||||
|
||||
On any greeting, silently read these files from CWD and run the commands — no narration, no announcing steps. Just do it and respond with the status.
|
||||
On any greeting, silently read these files and run the commands — no narration, no announcing steps. Just do it and respond with the status.
|
||||
|
||||
- Read: `.trinity/passport.json`, `.trinity/local.json`, `.trinity/observations.json`, `README.md`, `STATUS.local.md`
|
||||
- Read (cat): `.trinity/passport.json`, `.trinity/local.json`, `.trinity/observations.json`, `README.md`, `STATUS.local.md`
|
||||
- Check: `drone @ai_mail inbox` — process any mail, don't ask.
|
||||
- Run: `drone @git status`
|
||||
- Refresh: If `STATUS.local.md` is stale (last updated date older than latest session in local.json), update it from your memories. Keep Current Work accurate.
|
||||
|
||||
Use drone commands for all operations. Never raw git, gh, file access, or python -m when drone provides it.
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
**Purpose:** Inter-agent messaging for AIPass. File-based email system that lets agents send, receive, and process messages using `@branch` addresses. No SMTP, no external services — just JSON files and symbolic routing.
|
||||
**Module:** `aipass.ai_mail`
|
||||
**Created:** 2025-11-08
|
||||
**Last Updated:** 2026-04-22
|
||||
**Last Updated:** 2026-05-16
|
||||
|
||||
---
|
||||
|
||||
**Status:** Operational | **Seedgo:** 100% (34/34) | **Tests:** 355 pass | **Battle Tested:** S62
|
||||
**Status:** Operational | **Seedgo:** 99% | **Tests:** 712 pass
|
||||
|
||||
## Commands
|
||||
|
||||
@@ -149,25 +149,37 @@ ai_mail/
|
||||
│ ├── paths.py # Shared find_repo_root() utility
|
||||
│ ├── notify.py # Desktop notifications (dbus direct)
|
||||
│ └── central_writer.py # Central inbox stats aggregation
|
||||
└── tests/ # 355 tests across 16 test files
|
||||
└── tests/ # 712 tests across 29 test files
|
||||
├── conftest.py # Shared fixtures (mock_logger, mock_json_handler)
|
||||
├── test_daemon.py # Daemon config, state, kill switch, dispatch check
|
||||
├── test_dispatch_monitor.py # Monitor safety features, env stripping
|
||||
├── test_dispatch_status.py # Log I/O, age calculation
|
||||
├── test_dispatch_watchdog.py # Watchdog auto-spawn
|
||||
├── test_wake.py # Branch resolution, PID checks, lock files
|
||||
├── test_wake_blocklist.py # Wake protection for @devpulse
|
||||
├── test_delivery.py # Inbox migration, private branches, pipeline
|
||||
├── test_send_identity.py # Sender identity chain (36 tests)
|
||||
├── test_user_paths.py # Mailbox path resolution (13 tests)
|
||||
├── test_contacts.py # Address book operations
|
||||
├── test_inbox_ops.py # Inbox loading + migration
|
||||
├── test_registry_read.py # Registry parsing + branch lookup
|
||||
├── test_central_writer.py # Central stats aggregation
|
||||
├── test_cli_routing.py # CLI routing + help/version
|
||||
├── test_close_ops.py # Batch close operations
|
||||
├── test_contacts.py # Address book operations
|
||||
├── test_create.py # Email file creation
|
||||
├── test_daemon.py # Daemon config, state, kill switch, dispatch check
|
||||
├── test_delivery.py # Inbox migration, private branches, pipeline
|
||||
├── test_dispatch_module.py # Dispatch module orchestration
|
||||
├── test_dispatch_monitor.py # Monitor safety features, env stripping
|
||||
├── test_dispatch_status.py # Log I/O, age calculation
|
||||
├── test_email_module.py # Email module orchestration
|
||||
├── test_error_dispatch.py # Error reporting via email
|
||||
├── test_footer.py # Email footer rendering
|
||||
├── test_format.py # Display formatting
|
||||
├── test_header.py # Dispatch header injection
|
||||
├── test_inbox_cleanup.py # Mark read/opened/closed + archive
|
||||
├── test_inbox_ops.py # Inbox loading + migration
|
||||
├── test_json_handler.py # JSON I/O helpers
|
||||
├── test_misc_handlers.py # Misc handler utilities
|
||||
├── test_notify.py # Desktop notification dbus calls
|
||||
└── test_paths.py # find_repo_root() utility
|
||||
├── test_paths.py # find_repo_root() utility
|
||||
├── test_purge.py # Auto-purge sent/deleted folders
|
||||
├── test_registry_read.py # Registry parsing + branch lookup
|
||||
├── test_reply.py # Reply + auto-close original
|
||||
├── test_send_helpers.py # Send helper utilities
|
||||
├── test_send_identity.py # Sender identity chain
|
||||
├── test_user_paths.py # Mailbox path resolution
|
||||
├── test_wake.py # Branch resolution, PID checks, lock files
|
||||
└── test_wake_blocklist.py # Wake protection for @devpulse
|
||||
```
|
||||
|
||||
## Integration Points
|
||||
|
||||
@@ -69,7 +69,7 @@ MODEL_MAP = {
|
||||
"opus": "claude-opus-4-6",
|
||||
"haiku": "claude-haiku-4-5-20251001",
|
||||
}
|
||||
DEFAULT_MODEL = "opus"
|
||||
DEFAULT_MODEL = "sonnet"
|
||||
|
||||
# Branches that cannot be woken manually by cross-branch drone commands.
|
||||
# Dispatch-send path (dispatch.py._orchestrate_dispatch_send) bypasses this check.
|
||||
@@ -556,7 +556,7 @@ if __name__ == "__main__":
|
||||
print(" --fresh Start fresh session (claude -p) instead of resuming (claude -c -p)")
|
||||
print(" --auto Respect autonomous_pause (used by daemon). Manual wake ignores it.")
|
||||
print(" --sender @branch Set return-to-sender for bounce emails (default: @devpulse)")
|
||||
print(" --model NAME Model to use: opus (default), sonnet, haiku, or full model ID")
|
||||
print(" --model NAME Model to use: sonnet (default), opus, haiku, or full model ID")
|
||||
print()
|
||||
print("Output: Step-by-step status of the dispatch pipeline:")
|
||||
print(" ✅ resolve → @branch found at /path/to/branch")
|
||||
|
||||
@@ -460,9 +460,9 @@ def test_model_map_has_expected_entries():
|
||||
assert "claude-opus-4-6" in MODEL_MAP["opus"]
|
||||
|
||||
|
||||
def test_default_model_is_opus():
|
||||
"""Default model should be opus."""
|
||||
assert DEFAULT_MODEL == "opus"
|
||||
def test_default_model_is_sonnet():
|
||||
"""Default model should be sonnet."""
|
||||
assert DEFAULT_MODEL == "sonnet"
|
||||
|
||||
|
||||
def test_model_map_values_are_full_ids():
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
# Codex CLI Integration
|
||||
|
||||
Status: **Working** (S159, 2026-05-16)
|
||||
|
||||
## Overview
|
||||
|
||||
OpenAI Codex CLI runs AIPass with the same hook-driven identity system as Claude Code. Same prompts, same drone commands, same branch awareness.
|
||||
|
||||
- CLI: `codex-cli 0.130.0`
|
||||
- Model: gpt-5.5 (free tier)
|
||||
- System prompt: `AGENTS.md` (equivalent to `CLAUDE.md`)
|
||||
- Hooks: 3 active (SessionStart, UserPromptSubmit, PreToolUse)
|
||||
|
||||
## How It Works
|
||||
|
||||
Codex hooks use the same JSON stdin/stdout protocol as Claude Code. The hook scripts live in `.codex/hooks/` at project level. User-level wrappers in `~/.codex/hooks/` hardcode CWD to devpulse (Codex doesn't reliably set CWD for hook commands).
|
||||
|
||||
```
|
||||
~/.codex/config.toml # User config — hooks registered here
|
||||
~/.codex/hooks/ # Wrapper scripts (anchor CWD)
|
||||
.codex/hooks.json # Project-level hooks (not actively used — discovery unreliable)
|
||||
.codex/hooks/ # Actual hook logic
|
||||
.codex/skills/ # /memo, /prep skills
|
||||
AGENTS.md # System prompt (loaded hierarchically, 32KB max)
|
||||
```
|
||||
|
||||
## Hooks
|
||||
|
||||
| Event | Script | Purpose |
|
||||
|-------|--------|---------|
|
||||
| SessionStart | `session_start_identity.py` | Loads global prompt + branch passport + local prompt |
|
||||
| UserPromptSubmit | `prompt_inject.py` | Per-turn: current time, branch identity, email count |
|
||||
| PreToolUse | `pre_edit_gate.py` | Blocks edits to passport.json, registry.json, setup.sh |
|
||||
|
||||
## Running
|
||||
|
||||
```bash
|
||||
# Interactive (full access)
|
||||
codex --dangerously-bypass-approvals-and-sandbox
|
||||
|
||||
# Headless one-shot
|
||||
codex --dangerously-bypass-approvals-and-sandbox exec "your prompt"
|
||||
|
||||
# Sandboxed (drone logs will error but commands still work)
|
||||
codex exec "your prompt"
|
||||
```
|
||||
|
||||
## Config — ~/.codex/config.toml
|
||||
|
||||
```toml
|
||||
[features]
|
||||
hooks = true
|
||||
|
||||
[hooks]
|
||||
SessionStart = [{ hooks = [{ type = "command", command = "python3 /home/patrick/.codex/hooks/aipass_session_start_wrapper.py", timeout = 10 }] }]
|
||||
UserPromptSubmit = [{ hooks = [{ type = "command", command = "python3 /home/patrick/.codex/hooks/aipass_prompt_wrapper.py", timeout = 10 }] }]
|
||||
PreToolUse = [{ matcher = "^(write_file|edit_file|patch)$", hooks = [{ type = "command", command = "python3 /home/patrick/.codex/hooks/aipass_pre_edit_gate_wrapper.py", timeout = 5 }] }]
|
||||
```
|
||||
|
||||
## Known Issues
|
||||
|
||||
- **Sandbox vs drone logging:** Default `workspace-write` sandbox blocks drone's prax/trigger/json_handler log writes (they target paths outside workdir). Commands still execute and return results — just noisy stderr. Fix: use `--dangerously-bypass-approvals-and-sandbox`.
|
||||
- **Hook CWD unreliable:** Codex doesn't set hook command CWD to the session workdir. Wrappers in `~/.codex/hooks/` hardcode `os.chdir()` as workaround.
|
||||
- **`drone @fs` doesn't exist:** Codex sometimes invents this command when following AGENTS.md "Read" instructions. Updated AGENTS.md to say "Read (cat)" to clarify.
|
||||
- **Project hooks.json not auto-discovered:** Despite `.codex/hooks.json` existing at project level with trusted hashes, Codex didn't reliably fire them. Moved all hook registration to `~/.codex/config.toml`.
|
||||
- **Free tier rate limits:** gpt-5.5 free tier. May hit limits under heavy use.
|
||||
|
||||
## History
|
||||
|
||||
- **2026-04-05:** DPLAN-0094 through DPLAN-0097 created. Research + Docker proof-of-concept.
|
||||
- **2026-04-28:** Hook scripts written, project `.codex/` directory scaffolded.
|
||||
- **2026-05-15:** Codex tested interactively. Hooks wired but double-firing (project + user level). Trust/review gate discovered. Wrapper approach proven. Prompts received.
|
||||
- **2026-05-16 (S159):** Cleaned up double-firing. Wired SessionStart + PreToolUse into config.toml. Removed stale trust entries. Verified end-to-end: identity loads, drone works, inbox checks, STATUS recognized. Full bypass mode clean.
|
||||
|
||||
## Differences from Claude Code
|
||||
|
||||
| Feature | Claude Code | Codex |
|
||||
|---------|-------------|-------|
|
||||
| System prompt | CLAUDE.md | AGENTS.md (hierarchical, concatenates all levels) |
|
||||
| Override file | None | AGENTS.override.md (per-user, not committed) |
|
||||
| Hooks config | Embedded in settings.json | Separate config.toml + hooks.json |
|
||||
| Hook events | 6 (incl. PreCompact, Notification) | 5 (incl. SessionStart) |
|
||||
| Sandbox bypass | `--dangerously-skip-permissions` | `--dangerously-bypass-approvals-and-sandbox` |
|
||||
| File reading | Read tool (built-in) | `cat`/`sed` via exec_command |
|
||||
| Model | claude-opus-4-6[1m] | gpt-5.5 |
|
||||
| Max prompt | No hard limit | 32KB AGENTS.md (hooks inject separately) |
|
||||
|
||||
## Next Steps
|
||||
|
||||
- Gemini CLI integration (same pattern — `.gemini/` directory exists)
|
||||
- Seedgo ignore pattern for files outside branch tree (false positives on `~/.codex/hooks/`)
|
||||
- Consider: can Codex be used as a dispatch target? (different model for different tasks)
|
||||
@@ -186,7 +186,7 @@ drone/
|
||||
│ └── hook_sounds_plugin.py # Toggle notification sounds on/off
|
||||
├── docs/ # Public documentation
|
||||
├── docs.local/ # Investigation reports and policies
|
||||
└── tests/ # 704 tests across 21 test files
|
||||
└── tests/ # 729 tests across 22 test files
|
||||
```
|
||||
|
||||
### Routing Flow
|
||||
@@ -315,11 +315,11 @@ Tip: set AIPASS_HOME=/path/to/AIPass to access all branches
|
||||
|
||||
## Testing
|
||||
|
||||
704 tests across 21 test files, covering all layers:
|
||||
729 tests across 22 test files, covering all layers:
|
||||
|
||||
| Area | Files | Tests |
|
||||
|------|-------|-------|
|
||||
| Core routing | `test_resolver.py`, `test_router.py`, `test_activation.py` | ~128 |
|
||||
| Core routing | `test_resolver.py`, `test_router.py`, `test_activation.py`, `test_registry.py` | ~148 |
|
||||
| Git operations | `test_git_module.py`, `test_system_pr.py`, `test_devpulse_plugins.py`, `test_git_access.py` | ~150 |
|
||||
| Handlers | `test_executor.py`, `test_registry_handler.py`, `test_discovery.py` | ~99 |
|
||||
| Infrastructure | `test_generic_adapter.py`, `test_module_registry.py`, `test_config.py` | ~66 |
|
||||
@@ -338,7 +338,7 @@ Run tests: `cd src/aipass/drone && python -m pytest tests/ -q`
|
||||
|
||||
---
|
||||
|
||||
**Seedgo:** 99% | **Tests:** 704 pass, 4 skip | **Last Updated:** 2026-05-12
|
||||
**Seedgo:** 99% | **Tests:** 729 pass, 4 skip | **Last Updated:** 2026-05-16
|
||||
|
||||
---
|
||||
[← Back to AIPass](../../../README.md)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
**Module:** `aipass.flow`
|
||||
**Version:** 2.2.1
|
||||
**Created:** 2025-11-15
|
||||
**Last Updated:** 2026-04-22
|
||||
**Last Updated:** 2026-05-16
|
||||
|
||||
---
|
||||
|
||||
@@ -98,7 +98,7 @@ flow/
|
||||
│ ├── team_dev_plans/ # TDPLAN templates (default)
|
||||
│ └── audit_plans/ # APLAN templates (default)
|
||||
├── flow_json/ # Per-type registries + template_registry.json
|
||||
├── tests/ # 423 tests, 17 test files
|
||||
├── tests/ # 733 tests, 24 test files
|
||||
└── .archive/ # Archived legacy code
|
||||
```
|
||||
|
||||
@@ -166,9 +166,9 @@ Vector verification displays in console: "Vectorized: N chunks in chroma" or "NO
|
||||
## Quality
|
||||
|
||||
- **Seedgo:** 100% (33/33 standards)
|
||||
- **Tests:** 423 passed, 83/87 public functions tested (95%)
|
||||
- **Tests:** 733 passed, 87/87 public functions tested (100%)
|
||||
- **Source files:** 39 tracked by seedgo
|
||||
- **Last audit:** 2026-04-22
|
||||
- **Last audit:** 2026-05-14
|
||||
- **Battle test:** 16/16 commands pass via drone CLI (2026-04-22)
|
||||
|
||||
### Known Issues
|
||||
@@ -178,7 +178,7 @@ Vector verification displays in console: "Vectorized: N chunks in chroma" or "NO
|
||||
|
||||
---
|
||||
|
||||
*Last Updated: 2026-04-22*
|
||||
*Last Updated: 2026-05-16*
|
||||
|
||||
---
|
||||
[← Back to AIPass](../../../README.md)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
**Purpose:** System-wide logging, real-time monitoring, and dashboard infrastructure for AIPass.
|
||||
**Module:** `aipass.prax`
|
||||
**Version:** 2.0.0
|
||||
**Last Updated:** 2026-04-22
|
||||
**Last Updated:** 2026-05-16
|
||||
|
||||
---
|
||||
|
||||
@@ -143,7 +143,7 @@ prax/
|
||||
│ └── watcher/ # Background system watchers
|
||||
├── prax_json/ # Auto-created per-module config/data/log files
|
||||
├── templates/ # Dashboard template schema (DASHBOARD.template.json)
|
||||
└── tests/ # 911 tests across 16 files
|
||||
└── tests/ # 912 tests across 18 files
|
||||
```
|
||||
|
||||
### Design Pattern
|
||||
@@ -171,28 +171,29 @@ drone @prax monitor run
|
||||
|
||||
## Tests
|
||||
|
||||
375 tests across 16 files, covering all major components:
|
||||
912 tests across 18 files, covering all major components:
|
||||
|
||||
| Test File | Tests | Coverage |
|
||||
|-----------|-------|----------|
|
||||
| test_filesystem_handler.py | 172 | Codex/Gemini/Claude session adapters |
|
||||
| test_monitoring_handlers.py | 139 | Branch detector, log watcher, event stream |
|
||||
| test_operations.py | 99 | Dashboard operations |
|
||||
| test_log_watcher.py | 82 | Log file tailing |
|
||||
| test_monitor_module.py | 74 | Monitor commands |
|
||||
| test_logging_handlers.py | 41 | Logging setup, rotation, override |
|
||||
| test_logger_module.py | 40 | Logger init, routing, lifecycle |
|
||||
| test_monitoring_filters.py | 39 | Event filtering rules |
|
||||
| test_config.py | 38 | Config loading, path resolution |
|
||||
| test_event_queue.py | 35 | Thread-safe event buffering |
|
||||
| test_log_watcher.py | 35 | Log file tailing |
|
||||
| test_logging.py | 33 | Core logging system |
|
||||
| test_discovery.py | 25 | Module scanning |
|
||||
| test_operations.py | 24 | Dashboard operations |
|
||||
| test_watcher.py | 23 | File watcher behavior |
|
||||
| test_registry.py | 22 | Module registry |
|
||||
| test_json_handler.py | 18 | JSON auto-creation |
|
||||
| test_central.py | 14 | Central reader |
|
||||
| test_monitor_module.py | 11 | Monitor commands |
|
||||
| test_log_audit.py | 10 | Log audit |
|
||||
| test_status.py | 8 | Status commands |
|
||||
|
||||
90/136 public functions tested (66%).
|
||||
|
||||
## Integration Points
|
||||
|
||||
### Depends On
|
||||
@@ -214,7 +215,7 @@ drone @prax monitor run
|
||||
|
||||
---
|
||||
|
||||
*Last Updated: 2026-04-22*
|
||||
*Last Updated: 2026-05-16*
|
||||
|
||||
---
|
||||
[← Back to AIPass](../../../README.md)
|
||||
|
||||
+14
-14
@@ -2,7 +2,7 @@
|
||||
|
||||
# Seedgo
|
||||
|
||||
**Purpose:** Standards compliance platform for AIPass. Audits all 11 core agents against 34 code standards + diagnostics, manages bypass rules, runs proof certification, owns the hook system, and provides per-file checklist validation consumed by auto-fix hooks.
|
||||
**Purpose:** Standards compliance platform for AIPass. Audits all 11 core agents against 35 code standards + diagnostics, manages bypass rules, runs proof certification, owns the hook system, and provides per-file checklist validation consumed by auto-fix hooks.
|
||||
**Module:** `aipass.seedgo`
|
||||
**Version:** 2.0.0
|
||||
**Created:** 2026-03-05
|
||||
@@ -12,7 +12,7 @@
|
||||
## Overview
|
||||
|
||||
### What I Do
|
||||
- Audit all 11 core agents against 34 code standards + diagnostics (architecture, CLI, imports, logging, naming, silent catch, deep nesting, etc.)
|
||||
- Audit all 11 core agents against 35 code standards + diagnostics (architecture, CLI, imports, logging, naming, silent catch, deep nesting, windows compat, etc.)
|
||||
- Score files 0-100 per standard and report violations with actionable details
|
||||
- Manage bypass rules (`.seedgo/bypass.json`) for deliberate exceptions
|
||||
- Run pyright diagnostics across branches for type error detection
|
||||
@@ -41,12 +41,12 @@ drone @seedgo --help # Full command listing
|
||||
drone @seedgo --version # Version string
|
||||
|
||||
# Audit
|
||||
drone @seedgo audit aipass # Audit all 11 agents (34 standards + diagnostics)
|
||||
drone @seedgo audit aipass # Audit all 11 agents (35 standards + diagnostics)
|
||||
drone @seedgo audit aipass @flow # Audit single branch
|
||||
drone @seedgo audit inbox-ids # Inbox message-ID validation
|
||||
|
||||
# Standards Query
|
||||
drone @seedgo standards_query aipass_standards # List all 33 standards in pack
|
||||
drone @seedgo standards_query aipass_standards # List all 35 standards in pack
|
||||
drone @seedgo standards_query aipass_standards cli # Show specific standard content
|
||||
|
||||
# Per-file Check
|
||||
@@ -112,7 +112,7 @@ seedgo/
|
||||
│ │ ├── readme_update.py # README generation module
|
||||
│ │ └── test_map.py # Custom function test coverage mapping
|
||||
│ └── handlers/ # 11 handler directories
|
||||
│ ├── aipass_standards/ # 34 checker standards (67 files)
|
||||
│ ├── aipass_standards/ # 35 checker standards (108 files)
|
||||
│ │ ├── *_check.py # Checker implementations (score 0-100)
|
||||
│ │ ├── *_content.py # Queryable standard content
|
||||
│ │ └── *.md # Standard documentation
|
||||
@@ -157,7 +157,7 @@ seedgo/
|
||||
|
||||
---
|
||||
|
||||
## The 34 Standards
|
||||
## The 35 Standards
|
||||
|
||||
| Standard | Scope | What It Checks |
|
||||
|----------|-------|----------------|
|
||||
@@ -195,6 +195,7 @@ seedgo/
|
||||
| todo | all_files | No unresolved TODO/FIXME/HACK comments |
|
||||
| trigger | all_files | Trigger integration patterns |
|
||||
| unused_function | branch_level | No unreferenced public functions |
|
||||
| windows_compat | all_files | POSIX-only APIs guarded for Windows compatibility |
|
||||
|
||||
---
|
||||
|
||||
@@ -221,10 +222,9 @@ The `bridge` module (`drone @seedgo bridge install`) manages hook installation t
|
||||
|
||||
## Tests
|
||||
|
||||
- **29 test files**, **1131 tests**, all passing
|
||||
- **200 public functions**, 200 tested (100% coverage)
|
||||
- **39 test files**, **1192 tests**, all passing
|
||||
- **0 type errors** (pyright)
|
||||
- Key test areas: standards audit, checklist, bypass, JSON handler, hooks (probe, track A/B/E, utility, bridge), proof, README, diagnostics, line coverage (plugin integrity, diagnostics, audit display, branch audit, architecture, checklist)
|
||||
- Key test areas: standards audit, checklist, bypass, JSON handler, hooks (probe, track A/B/E, utility, bridge), proof, README, diagnostics, windows_compat, line coverage (plugin integrity, diagnostics, audit display, branch audit, architecture, checklist)
|
||||
|
||||
---
|
||||
|
||||
@@ -256,16 +256,16 @@ The `bridge` module (`drone @seedgo bridge install`) manages hook installation t
|
||||
|
||||
---
|
||||
|
||||
## Latest Audit (2026-04-26)
|
||||
## Latest Audit (2026-05-16)
|
||||
|
||||
- **Seedgo score:** 100% (34/34 + diagnostics) — all standards green
|
||||
- **Tests:** 1131 passed, 0 failed, 0 skipped
|
||||
- **Coverage:** 200 public functions, 200 tested (100%)
|
||||
- **Seedgo score:** 99% (35/35 + diagnostics) — architecture (template dirs not in scope) + modules (hooks.py 608 lines, split needed)
|
||||
- **Tests:** 1192 passed, 0 failed, 0 skipped
|
||||
- **Type errors:** 0
|
||||
- **Custom test coverage:** 203/205 public functions tested
|
||||
|
||||
---
|
||||
|
||||
**Last Updated:** 2026-04-26
|
||||
**Last Updated:** 2026-05-16
|
||||
|
||||
---
|
||||
[<- Back to AIPass](../../../README.md)
|
||||
|
||||
@@ -125,7 +125,8 @@ spawn/
|
||||
│ │ ├── delete.py # Delete CLI — archive + deregister
|
||||
│ │ ├── sync_registry.py # Registry repair CLI
|
||||
│ │ ├── sync_templates.py # Template sync CLI
|
||||
│ │ └── regenerate_registry.py # Template registry regeneration CLI
|
||||
│ │ ├── regenerate_registry.py # Template registry regeneration CLI
|
||||
│ │ └── repair.py # Project structure repair CLI (scan, relocate, clean)
|
||||
│ └── handlers/
|
||||
│ ├── class_registry.py # Citizen class → template directory mapping
|
||||
│ ├── file_ops.py # Template copy, path renaming, registry regeneration
|
||||
@@ -135,19 +136,20 @@ spawn/
|
||||
│ ├── meta_ops.py # Branch metadata generation, hash computation
|
||||
│ ├── change_detection.py # ID-based file diff between template and branch
|
||||
│ ├── reconcile.py # Registry/filesystem reconciliation
|
||||
│ ├── passport_ops.py # Passport grant implementation
|
||||
│ ├── passport_ops.py # Passport grant implementation
|
||||
│ ├── update_ops.py # Update workflow (Phase 0 snapshot → detect → execute)
|
||||
│ ├── delete_ops.py # Delete workflow (resolve → archive → cleanup → deregister)
|
||||
│ ├── sync_registry_ops.py # Registry sync (CWD-aware, external project support)
|
||||
│ ├── sync_templates_ops.py # Template sync implementation
|
||||
│ ├── regenerate_registry_ops.py # Template registry hash regeneration
|
||||
│ ├── repair_ops.py # Project structure repair (scan, relocate, clean-pollution)
|
||||
│ ├── json_ops.py # JSON deep merge, backup utilities
|
||||
│ └── json/
|
||||
│ └── json_handler.py # Standard JSON I/O, operation logging, 7 API functions
|
||||
├── templates/
|
||||
│ ├── builder/ # Full scaffold template (45 files, 24 dirs)
|
||||
│ └── birthright/ # Minimal template
|
||||
├── tests/ # 14 test files, 316 tests
|
||||
├── tests/ # 14 test files, 318 tests
|
||||
├── spawn_json/ # JSON tracking directory
|
||||
├── tools/ # Branch verification utilities
|
||||
├── docs/ # Documentation
|
||||
@@ -198,7 +200,7 @@ spawn/
|
||||
|
||||
## Tests
|
||||
|
||||
**316 tests | 0 skipped | 0 failed** across 14 test files:
|
||||
**318 tests | 0 skipped | 0 failed** across 14 test files:
|
||||
|
||||
| File | Focus |
|
||||
|------|-------|
|
||||
@@ -212,6 +214,7 @@ spawn/
|
||||
| `test_cli_routing.py` | Command routing and argument parsing |
|
||||
| `test_contracts.py` | Handler contracts and interface compliance |
|
||||
| `test_spawn.py` | Basic CLI routing and help |
|
||||
| `test_repair.py` | Project structure repair (scan, relocate, clean-pollution) |
|
||||
| `test_error_resilience.py` | Error handling and edge cases |
|
||||
| `conftest.py` | Fixtures: mock templates, registry protection |
|
||||
|
||||
@@ -244,14 +247,11 @@ spawn/
|
||||
|
||||
## Metrics
|
||||
|
||||
- **Seedgo:** 100% (34/34)
|
||||
- **Tests:** 253 passed, 0 skipped, 0 failed
|
||||
- **Module coverage:** 23/23 (100%)
|
||||
- **Tests:** 318 passed, 0 skipped, 0 failed
|
||||
- **Template registry:** 45 files, 24 dirs (builder)
|
||||
- **Battle test:** 17/17 commands pass (2026-04-22)
|
||||
|
||||
---
|
||||
|
||||
*Last Updated: 2026-05-15*
|
||||
*Last Updated: 2026-05-16*
|
||||
|
||||
[← Back to AIPass](../../../README.md)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"metadata": {
|
||||
"version": "1.0.0",
|
||||
"last_updated": "2026-05-15",
|
||||
"last_updated": "2026-05-16",
|
||||
"description": "Template file tracking registry for ID-based updates"
|
||||
},
|
||||
"files": {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
**Purpose:** Event bus and error dispatch for AIPass. Branches fire events, registered handlers react. Medic watches logs for errors, fingerprints them, gates dispatch through an 8-stage pipeline, and notifies the responsible branch.
|
||||
**Module:** `aipass.trigger`
|
||||
**Version:** 2.2.0
|
||||
**Last Updated:** 2026-05-02
|
||||
**Last Updated:** 2026-05-16
|
||||
|
||||
## Commands
|
||||
|
||||
@@ -161,7 +161,7 @@ trigger/
|
||||
│ │ └── pr_status_sync.py # PR → prax status sync
|
||||
│ └── watchers/
|
||||
│ └── log_watcher.py # System log watcher (system_logs/ dir)
|
||||
├── tests/ # 367 tests across 12 modules
|
||||
├── tests/ # 551 tests across 18 modules
|
||||
├── trigger_json/ # Runtime state files
|
||||
│ ├── trigger_config.json # Medic state, muted branches
|
||||
│ ├── error_registry.json # All tracked errors
|
||||
@@ -189,21 +189,21 @@ trigger/
|
||||
|
||||
## Testing
|
||||
|
||||
367 tests across 12 test modules, all passing. Coverage: 55/76 public functions (72%).
|
||||
551 tests across 18 test modules, all passing. Coverage: 74/74 public functions (100%).
|
||||
|
||||
```bash
|
||||
cd src/aipass/trigger && pytest # Run all tests
|
||||
```
|
||||
|
||||
Test files: `test_core`, `test_errors`, `test_medic`, `test_error_registry`, `test_error_reporter`, `test_medic_state`, `test_log_watcher`, `test_watchers_log_watcher`, `test_branch_log_events`, `test_log_events`, `test_json_handler`, `test_pr_status_sync`
|
||||
Test files: `test_core`, `test_errors`, `test_medic`, `test_error_registry`, `test_error_reporter`, `test_medic_state`, `test_log_watcher`, `test_watchers_log_watcher`, `test_branch_log_events`, `test_log_events`, `test_json_handler`, `test_pr_status_sync`, `test_error_detected`, `test_event_handlers`, `test_log_watcher_service`, `test_plan_file_handler`, `test_startup_handler`, `test_trigger_entry`
|
||||
|
||||
## Compliance
|
||||
|
||||
Seedgo: 100% (34/34 standards). Zero type errors. All categories at 100%.
|
||||
Seedgo: 99%. Zero type errors. All core categories at 100%.
|
||||
|
||||
---
|
||||
|
||||
*Last Updated: 2026-04-22*
|
||||
*Last Updated: 2026-05-16*
|
||||
|
||||
---
|
||||
[← Back to AIPass](../../../README.md)
|
||||
|
||||
Reference in New Issue
Block a user