Commit Graph
81 Commits
Author SHA1 Message Date
AIOSAI 60c36cccc6 feat: seedgo 100% compliance across all 12 branches + close-pr command 2026-05-16 19:55:47 -07:00
AIOSAI 482f4e7b06 docs: update 7 branch READMEs with accurate state + switch dispatch default to sonnet + codex setup + gitignore memory_pool 2026-05-16 16:41:02 -07:00
AIOSAI e7de852d4a feat: aipass init pip-ready structure + flow close self-healing + S146-S148 changes 2026-05-14 19:15:30 -07:00
AIOSAIand@devpulse 531e66106c feat(system): DPLAN-0172 Phase 3 Round 2: fix remaining 30 Windows test failures
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-10 21:30:18 -07:00
AIOSAIand@devpulse b0bf6a393a feat(system): DPLAN-0169 dashboard overhaul + repo cleanup
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-10 00:11:43 -07:00
AIOSAIand@trigger d0ce0cc6dc feat(trigger): Medic self-heal: auto-install systemd unit on first run
Co-Authored-By: @trigger <trigger@aipass>
2026-05-07 18:41:15 -07:00
AIOSAIand@devpulse bff9d742f5 feat(system): feat(aipass): S129-S130 init UX fixes — 16 improvements from live testing
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-06 23:12:33 -07:00
patrickand@devpulse a530c83a63 feat(system): fix(setup): add ensurepip check to prevent broken venv on Debian/Ubuntu — closes #495
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-03 08:57:18 -07:00
PatrickandClaude Opus 4.6 44bab11040 fix(memory): remove rollover from startup chain + add sentence-transformers dep
Two fixes:

1. Remove _run_memory_check() from trigger startup handler — rollover no
   longer fires on every drone command. Rollover is now on-demand only
   (drone @memory rollover) or via the watcher daemon. This eliminates the
   noisy "Memory - Rollover Execution" banner from every drone invocation.

2. Add sentence-transformers>=2.0 to pyproject.toml [memory] extras — the
   embedding subprocess was failing because torch/sentence-transformers
   were missing from the dependency list. chromadb alone is insufficient;
   the custom embed_subprocess.py requires sentence-transformers directly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-02 18:55:15 -07:00
AIOSAIand@trigger 3405c7ee41 feat(trigger): fix(trigger): dead events + zombie handler + stale registry + per-branch disable + email check (DPLAN-0159)
Co-Authored-By: @trigger <trigger@aipass>
2026-04-27 01:02:31 -07:00
AIOSAIand@trigger 05608a8b64 feat(trigger): S117 stress test @trigger
Co-Authored-By: @trigger <trigger@aipass>
2026-04-27 00:07:11 -07:00
AIOSAIand@devpulse c4008144c7 feat(system): S117 stress test prax
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-27 00:04:46 -07:00
AIOSAIand@devpulse 92e14308b2 feat(system): test(drone): improve line coverage on entry point + registry
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 07:59:19 -07:00
AIOSAIand@trigger 87fb6c8359 feat(trigger): test(trigger): improve line coverage on log watcher + entry point
Co-Authored-By: @trigger <trigger@aipass>
2026-04-26 07:56:22 -07:00
AIOSAIand@devpulse e9a288fe43 feat(system): fix: ruff format api driver.py + prax test_operations.py — unformatted files from agent test dispatch
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 00:09:33 -07:00
AIOSAIand@devpulse 09b4dff107 feat(system): fix: add handler import to all remaining apps/__init__.py + spawn template for Python 3.10 mock.patch compat
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 00:02:10 -07:00
AIOSAIand@trigger 8ab2c471b8 feat(trigger): docs(trigger): comprehensive README update
Co-Authored-By: @trigger <trigger@aipass>
2026-04-22 21:23:19 -07:00
AIOSAIandClaude Opus 4.6 0a10a72dda fix(trigger): update deliver_email_to_branch import path — modules.email → modules.email_send (DPLAN-0141 Phase 3)
ai_mail moved deliver_email_to_branch from modules.email to
handlers.email.delivery. The modules-level re-export is now in
email_send.py. Updated 3 source files + 4 test mock paths.
367 tests passing, seedgo 100%.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-22 11:32:09 -07:00
AIOSAIand@devpulse e7c157087b feat(system): fix(prax): reach 100% seedgo — inline monitor_info.py into monitor.py, eliminate CLI separation violation (DPLAN-0141)
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-22 11:31:19 -07:00
AIOSAIandClaude Opus 4.6 b123351aff feat(trigger): fix(seedgo): resolve all audit findings — type error, dead code, silent catch, README (DPLAN-0141 Phase 3)
- Fix check_and_rollover → run_rollover import in startup.py (type error)
- Remove dead _is_duplicate_error() from log_watcher.py + 3 tests (unused_function)
- Add logger.warning on silent catch in watchers/log_watcher.py (silent_catch)
- Update README date to 2026-04-22 (readme)
- All 24 seedgo categories at 100%, 367 tests passing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-22 10:11:53 -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
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
AIOSAIandClaude Sonnet 4.6 5b2d14a846 fix(trigger): correct SYSTEM_LOGS_DIR path in watchers and startup
TRIGGER_ROOT.parent.parent resolves to src/, not the project root.
Fix to TRIGGER_ROOT.parent.parent.parent so all three SYSTEM_LOGS_DIR
constants resolve to /home/patrick/Projects/AIPass/system_logs.
Fixes recurring 'Failed to start log watcher' on every service start.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 10:22:36 -07:00
AIOSAIandClaude Opus 4.6 4cf1b327dc refactor(trigger): remove dead code from error_logged.py after monitor-only conversion
Removed 10 orphaned functions/constants left after DPLAN-0112 Option C stripped
dispatch: _find_repo_root, _is_medic_enabled, _is_branch_muted,
_get_registered_emails, _is_rate_limited, _record_dispatch, _log_suppression,
_build_notification_message, and associated constants. Handler now only uses
_log_warning + json_handler. 370 tests passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 16:43:10 -07:00
AIOSAIandClaude Opus 4.6 0199356b5b fix(trigger): update seedgo bypass line numbers for error_handling standard
Line numbers shifted after DPLAN-0112 code changes. Updated 6 bypass entries:
config.py 31→36, core.py 160→61, json_handler.py 24→31, error_detected.py
54→53, plan_file.py 58→59, memory_threshold_exceeded.py 46→47. All are
pre-existing meta-logging _log_warning() except:pass patterns.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 16:26:16 -07:00
AIOSAIandClaude Opus 4.6 f626a0411c fix(trigger): fix silent_catch violations — add logging + bypass entries
Fixed log_watcher.py:584 lazy registry import fallback (was except:pass,
now logs warning). Added seedgo bypass entries for intentional patterns:
core.py (ImportError fallback, type coercion), config.py (meta-logging,
tmp cleanup, ImportError fallback), log_watcher.py (timestamp format loop).
370 tests passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 16:20:42 -07:00
AIOSAIandClaude Opus 4.6 1cc07b3ca2 refactor(trigger): fix deep_nesting in _load_circuit_breaker_state
Extracted _restore_fingerprint_tracking() helper and flattened early-return
guards to reduce nesting depth from 5 to 3. Seedgo deep_nesting now passes.
370 tests passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 16:03:10 -07:00
AIOSAIandClaude Opus 4.6 59490757ca feat(trigger): DPLAN-0112 #4 — per-handler failure counting + auto-disable
_fire_to_handlers now tracks consecutive failures per handler. After 5
consecutive failures, the handler is auto-disabled (skipped) and a CRITICAL
log is emitted. Success resets the failure count. Disabled handlers re-enable
on process restart (in-memory tracking). Prevents broken handlers from
flooding logs forever. 370 tests passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 14:56:48 -07:00
AIOSAIandClaude Opus 4.6 24568eb208 feat(trigger): DPLAN-0112 #3 — full circuit breaker persistence to trigger_cb_state.json
Moved CB state from trigger_config.json to dedicated trigger_cb_state.json.
Now persists full state: recent_errors timestamps, half_open_allow, summary_sent,
and per-fingerprint dispatch tracking (last_dispatch + count). Restored on
startup. record_dispatch() now triggers persist. Uses atomic_write_json +
json_file_lock. Module-level dict init moved before CB load so fingerprint
data restores correctly. 370 tests passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 14:54:05 -07:00
AIOSAIandClaude Opus 4.6 e4a7c04a2b feat(trigger): DPLAN-0112 #2 — fcntl file locking on JSON state files
Added json_file_lock() context manager to config.py using fcntl.flock
with .lock sidecar files. Wrapped all read-modify-write cycles:
- error_registry.py: report(), _save/_clear_circuit_breaker_state()
- medic_state.py: set_enabled(), mute_branch(), unmute_branch()
- log_watcher.py: _save_seen_hashes(), _save_log_positions()
Combined with existing atomic_write_json for both concurrency and crash safety.
370 tests passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 14:50:51 -07:00
AIOSAIandClaude Opus 4.6 0c290a95d1 fix(trigger): DPLAN-0112 Option C — strip dispatch from error_logged, route through Medic v2
error_logged.py handler stripped to monitor-only (log event, no email/dispatch).
Centralized watcher (watchers/log_watcher.py) now calls registry_report() +
fires error_detected for ERROR-level lines, routing through full Medic v2
pipeline (count threshold, circuit breaker, fingerprint backoff). Falls back
to error_logged (monitor-only) if registry unavailable. 370 tests passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 14:28:11 -07:00
AIOSAIandClaude Opus 4.6 0c9a57f912 feat(system): S85: Trigger self-healing live + drone error handler + watchdog v1.1 snapshot + STATUS
Fix 6 bugs from DPLAN-0111 audit + cleanup:
- Bug #3: memory_threshold_exceeded.py handler→modules import path
- Bug #5: startup catch-up fires error_detected (Medic v2) not error_logged
- Bug #7: circuit_breaker_record_error at detection time, not dispatch time
- Bug #8: add encoding=utf-8 to 5 open() calls missing it
- Bug #9: core.py _fire_to_handlers copies data dict before mutation
- Cleanup: local prompt 12→14 events, remove stale branch prefixes
  (backup, The_Commons, aipass_os, aipass_business), add spawn/devpulse

370 tests passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 13:54:29 -07:00
AIOSAIandClaude Opus 4.6 5e119c293b fix(trigger): fire error_detected event on every occurrence, not just count 1 and 2
report_error() and log_watcher primary path both had a gate that only fired
error_detected at count==1 (new) and count==2 (exact match). After count
passed 2, the event never fired again, so the handler's backoff logic never
got a chance to re-dispatch. Fix: always fire the event and let the
error_detected handler's Medic v2 gating (circuit breaker, backoff, rate
limiting) decide. 370 tests passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 12:53:49 -07:00
AIOSAIandClaude Opus 4.6 30cb50b2e0 fix(trigger): remove dedup gate that blocked error count from reaching dispatch threshold
The fallback path in log_watcher._process_log_line() used _is_duplicate_error()
to skip repeated errors entirely. This prevented registry count from incrementing
past 1, so dispatch (which requires count>=2) never fired. Fix: retry lazy
registry import in fallback path; if truly unavailable, track count locally
and fire event with count so error_detected handler can apply threshold.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 12:35:33 -07:00
AIOSAIandClaude Opus 4.6 c8d299ec8d feat(trigger): add wake_branch() to error dispatch for autonomous handling
After delivering error notification email, now calls wake_branch() to spawn
an agent in the target branch immediately. Changes reply_to from @trigger
to @devpulse so resolution reports go to devpulse. 370 tests passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 12:12:23 -07:00
AIOSAIandClaude Opus 4.6 538d3cb7e9 fix(trigger): atomic JSON writes to prevent mid-write corruption
All 11 JSON write locations across 7 files now use write-to-tmp + os.replace
pattern via shared atomic_write_json() in config.py. Prevents file corruption
if the process crashes mid-write. Updated 8 test files to provide the real
atomic_write_json on mocked config modules. 370 tests passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 01:32:52 -07:00
AIOSAIand@devpulse 9b5b7f1cc8 feat(system): S80: 14-branch state audit + README Round 7 (flow/memory lifecycle, transparency) + dist/ gitignore
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-08 01:32:40 -07:00
AIOSAIand@devpulse 289c0df5ff feat(system): Nav links across 15 branch READMEs, CONTRIBUTING.md, devpulse branch prompt update
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-06 14:52:06 -07:00
AIPassand@devpulse 3b4126b0bb feat(system): Issue templates: simplified bug report + new feedback form (#196)
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-06 11:37:39 -07:00
AIPassand@devpulse 38026271ef feat(system): add S73 test coverage files for 12 branches (#184)
* feat(system): feat(system): FPLAN-0164 dispatch safety net + morning briefing timeout fix

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

* feat(system): fix(drone+backup): resolver BranchNotFoundError handling + backup snapshot quick-check

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

* feat(system): fix(ai_mail): test fix for JSONL-based startup detection in dispatch_monitor

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

* feat(system): feat(daemon): expand test coverage from 12% — 74 new tests for scheduler_cron and actions

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

* feat(system): S73 night shift: test coverage push to 100% + seedgo test depth fixes

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

* feat(system): README overhaul + HERALD update + S73 test files

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

* feat(system): S73 night shift: 51 new test files across 12 branches

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

---------

Co-authored-by: @devpulse <devpulse@aipass>
2026-04-05 11:56:18 -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 21583669df audit cleanup: trigger (#167)
* 📝 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>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 00:59:07 -07:00
AIPassand@devpulse f2eefc3d39 feat(system): S68 bonus: commons datetime deprecation fix + HERALD update (#163)
* feat(system): STATUS.md update

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

* feat(system): S68 night shift: test log isolation + audit fixes (zero scanner output)

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

* feat(system): S68 bonus: commons datetime deprecation fix + HERALD update

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

---------

Co-authored-by: @devpulse <devpulse@aipass>
2026-03-31 16:27:13 -07:00
AIPassandClaude Opus 4.6 ec3c79d4dc feat(system): DPLAN-0088 auto STATUS.md sync on PR create/merge (#155)
- Trigger: add pr_created + pr_merged events (#13, #14) with fire-and-forget
  handler that runs `drone @prax status sync` (9 new tests, 191 total)
- Drone: wire trigger.fire() into pr_handler, pr_plugin, merge_plugin
  (lazy import, try/except — never blocks PR workflow, 447 tests)
- Flow: fix dashboard push failure on plan create
- Global prompt: remove compaction anxiety language, Patrick controls compaction

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 22:42:12 -07:00
AIPassandClaude Opus 4.6 26bb4a3157 feat(system): S65 night shift — fix 14 branches from fresh-eyes CLI testing (#147)
* docs: update HERALD.md — S63-S64, standards 32, fresh-eyes CLI results

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

* feat(system): S65 night shift — fix 14 branches from fresh-eyes CLI testing (FPLAN-0154)

14 branches dispatched across 3 phases, all fixes verified.

Phase 1 (critical): backup dry-run flag check, ai_mail per-ID branch detection,
flow introspection gate removal, drone atomic writes + empty file guard,
commons 3-strategy caller detection.

Phase 2 (patterns): spawn argparse --help + create --dry-run, skills create --help,
api introspection routing fix (6 commands), trigger empty JSON guard,
seedgo @ prefix consistency + conftest.

Phase 3 (polish): prax ghost module archived + real status output, daemon update
digest + 13 error cascade fixes + branch-health all-branches, memory search
timeout message + hidden modules in help, cli drone_adapter archived + standalone verified.

3,410 tests (+80), seedgo 99% avg, 0 failures.

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-30 13:29:48 -07:00
AIPass 5e73eb2d44 🔧 chore(gitignore): update gitignore for trigger data (#145)
- add `trigger_data.json` to `.gitignore` to prevent tracking of deleted file

🔥 chore(trigger): remove unused trigger data file

- delete `trigger_data.json` as it is no longer needed
2026-03-29 22:14:49 -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 2e2a9dce10 feat(system): 100% seedgo compliance across all 15 branches, all 33 standards (#136) (#137)
S57-S58 compliance sprint:
- Checker consolidation: testing→error_handling, test_coverage→test_quality v4.0
- 14-branch dispatch + night shift agent fixes
- New tests: json_handler, cli_routing, error_resilience, contracts across all branches
- Bypass configs for justified architectural choices (daemon plugins, flow watchdog, prax public API)
- Deep nesting refactors, unused function cleanup, architecture fixes
- Commons: 68→100% test_quality (279 tests), full bypass config
- README updated: 100% compliance, 2000+ tests

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 10:59:10 -07:00