Commit Graph
233 Commits
Author SHA1 Message Date
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
AIOSAIand@devpulse 64c74a5a2f feat(system): S86: docs accuracy — HERALD S83-S86 milestones, STATUS counts, demo/devpulse.py fixes
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-10 14:19:38 -07:00
AIOSAIand@devpulse 16b33a6d36 feat(system): S86: APLAN fix sweep — 11 CRITICALs resolved, 35+ BUGs fixed, catch-all loggers, README update
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-10 14:06:52 -07:00
AIOSAIand@flow 119aaea9de feat(flow): feat(flow): S84 multi-type support — fix FPLAN-only hardcoding in dashboards, aggregate, restore, append, get_closed, lock race
Co-Authored-By: @flow <flow@aipass>
2026-04-10 13:55:02 -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
AIOSAIand@devpulse f564996a8f feat(system): S85: Trigger self-healing live + drone error handler + watchdog v1.1 snapshot + STATUS
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-10 13:19:06 -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
AIOSAIand@devpulse 600dfbccd4 feat(system): S85: Drone git fix/sync/smart-sync — merge on divergence instead of rebase + STATUS update
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-10 10:53:49 -07:00
AIPassand@devpulse 040611d098 feat(system): S85: Restore api branch + gitleaks config (merge sync) (#228)
* feat(system): SECURITY: gitleaks config + pre-commit for API key leak prevention

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

* feat(system): S84: Restore api branch to repo — normal branch, gitleaks protection, no real keys outside .secrets

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

---------

Co-authored-by: @devpulse <devpulse@aipass>
2026-04-10 10:22:28 -07:00
AIPassand@devpulse 2918960dd1 feat(system): SECURITY: Remove api/ from public repo — key handling test patterns (#223)
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-10 03:43:38 -07:00
AIPass 6db9b11f6a Merge pull request #221 from AIOSAI/system/devpulse-s84-drone-bug-fixes-version-dead-imports-interacti
feat(system): S84: drone BUG fixes (version, dead imports, interactive constants) + spawn BUG fixes (passport path, hash length)
2026-04-10 03:28:59 -07:00
AIPass e68496bd40 Merge pull request #220 from AIOSAI/fix/api-s84-security-fixes
fix(api): S84 CRITICAL security fixes
2026-04-10 03:28:49 -07:00
AIPass b6ac45ca57 Merge pull request #219 from AIOSAI/system/devpulse-s84-devpulse-stale-cleanup-plugins-readme-daemon-r
feat(system): S84: devpulse stale cleanup — plugins README daemon ref removed
2026-04-10 03:28:39 -07:00
AIPass ca57f9dd34 Merge pull request #218 from AIOSAI/system/devpulse-s84-ground-truth-corrections-tests-3500-prs-185-de
feat(system): S84: Ground truth corrections (tests 3500+, PRs 185+) + devpulse README 15→11 + local prompt fixes
2026-04-10 03:28:29 -07:00
AIPass 9676b8e58e Merge pull request #217 from AIOSAI/system/devpulse-s84-critical-fixes-memory-pathsecurity-aimail-lock
feat(system): S84: CRITICAL fixes — memory (path+security), ai_mail (locking), prax (thread safety), global prompt patrick-file rule
2026-04-10 03:28:17 -07:00
AIOSAIand@devpulse 5700c21797 feat(system): S84: drone BUG fixes (version, dead imports, interactive constants) + spawn BUG fixes (passport path, hash length)
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-10 02:15:38 -07:00
AIOSAIand@api 2fdbf62568 fix(api): S84 CRITICAL security fixes — credential exposure, file permissions, validation alignment
3 CRITICAL security fixes: (1) get_cache_stats() no longer exposes raw API keys, (2) .env created with 0o600 perms + dir with 0o700, (3) google_creds.json same restricted permissions. 3 BUG fixes: validation rules aligned between keys.py and provider.py, cleanup return type (0 is success not failure), show_stats() now aggregates across all callers vs show_session() for current session. 290/290 tests pass, seedgo 99%.

Co-Authored-By: @api <api@aipass>
2026-04-10 02:04:56 -07:00
AIOSAIand@devpulse 576304dea3 feat(system): S84: devpulse stale cleanup — plugins README daemon ref removed
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-10 01:55:43 -07:00
AIOSAIand@devpulse a99988d99c feat(system): S84: Ground truth corrections (tests 3500+, PRs 185+) + devpulse README 15→11 + local prompt fixes
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-10 01:52:25 -07:00
AIOSAIand@devpulse d4aa8330dc feat(system): S84: CRITICAL fixes — memory (path+security), ai_mail (locking), prax (thread safety), global prompt patrick-file rule
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-10 01:47:59 -07:00
AIOSAIand@flow 0baa3a01a7 feat(flow): feat(flow): S84 fix FPLAN-only hardcoding — support all plan type prefixes
Co-Authored-By: @flow <flow@aipass>
2026-04-10 01:47:49 -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@flow 083bdceec0 feat(flow): feat(flow): S84 fix FPLAN-only hardcoding — support all plan type prefixes
Co-Authored-By: @flow <flow@aipass>
2026-04-10 01:20:18 -07:00
AIOSAIand@devpulse 0536c55f04 feat(devpulse): API branch reinstate.
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-10 00:40:01 -07:00
AIOSAIand@devpulse 316345a130 feat(devpulse): API branch reinstate.
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-10 00:39:01 -07:00
AIOSAIand@devpulse 0d4541db06 feat(system): S83: API reinstated (11 agents), hook-sounds plugin, all 11 APLANs updated with adversarial audit findings
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-09 23:53:39 -07:00
AIPassand@devpulse e42f4ddeaf feat(system): feat(system): S82: all branch audit fixes + prax 100% + drone backup removed + seedgo --help + ai_mail cascade fix + memory rollover + spawn template_owners + flow fixes + Medic investigation (#210)
* feat(system): feat(system): S82: core 10 cleanup — AGENTS/GEMINI prompts, STATUS.local, sandbox + vision docs, branch fixes

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

* feat(system): feat(system): S82: all branch audit fixes + prax 100% + drone backup removed + seedgo --help + ai_mail cascade fix + memory rollover + spawn template_owners + flow fixes + Medic investigation

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

---------

Co-authored-by: @devpulse <devpulse@aipass>
2026-04-09 21:57:57 -07:00
AIPassand@devpulse 8471c4c732 feat(system): feat(system): S82: core 10 split — remove daemon/commons/skills, README 10 agents, Herald updated, spawn CWD-aware sync (#207)
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-09 18:34:13 -07:00
AIPassand@devpulse 7974cf6174 feat(system): feat(system): S81: aipass init v2 — real templates, spawn routing, README Quick Start (#206)
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-09 18:15:36 -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
AIOSAIand@devpulse 1252bf5b9d feat(system): S80: CLI init double-prefix fix + watchdog auto-start prompt
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-08 21:38:19 -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 4957447146 feat(system): S79: README overhaul — single-agent-first narrative, anti-chaos mechanisms, breadcrumb architecture, grouped agent table, Codex CLI flag fix, memory central_writer path bug fix
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-07 00:58:58 -07:00
AIOSAIand@devpulse a6e47759fc feat(system): 📝 docs(aipass): add .gitignore guidance to global prompt, update system status with latest sync and
milestones

Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-06 22:27:48 -07:00
AIOSAIand@devpulse c17d2a1575 feat(system): feat(system): DPLAN-0104 external project infrastructure — seedgo CWD-first registry, drone module routing fallback, spawn external project agent creation, devpulse branch prompt update
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-06 19:41:42 -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 65db0d96a6 feat(system): Cross-platform support docs, README accuracy audit, CLI autonomy research (#195)
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-06 00:02:34 -07:00
AIPassand@devpulse ac7b04e11d feat(system): AGENTS.md/GEMINI.md startup instructions + prax Codex branch detection from CWD (#192)
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-05 22:55:35 -07:00
AIOSAIand@devpulse d5eb0dad3d feat(system): Prax: Codex+Gemini log adapters, model tags in monitor, inotify errno-specific messages
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-05 22:19:11 -07:00
AIPassandClaude Opus 4.6 867dad0997 feat(system): install hardening + multi-CLI Docker + legacy path cleanup (#188)
Remove hardcoded /home/patrick/ paths from 8 files, remove hooks from
repo-level settings.json (setup.sh generates these), fix memory_bank→memory
rename, add Dockerfile.multi-cli for Codex+Gemini testing, clean legacy
/home/aipass/ references from EXTRACTION_NOTE files and seedgo standards.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 16:32:21 -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
AIPassand@devpulse 6194c751dc feat(system): README overhaul + HERALD update + S73 test files (#182)
* 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>

---------

Co-authored-by: @devpulse <devpulse@aipass>
2026-04-05 11:36:21 -07:00
AIPassand@devpulse eacf65ae6c feat(system): S71: memory README date, backup conftest fixture, morning_briefing tool (#174)
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-02 02:19:10 -07:00
AIPassand@devpulse c1f69c51c5 feat(system): S71: fix prax monitoring filter case-sensitivity, STATUS sync (#173)
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-02 01:07:13 -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
efd0dc20c4 audit cleanup: api (#170)
* 📝 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>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-01 01:00:04 -07:00
c8ad266175 feat(system): audit cleanup: drone — fix ANSI escape corruption, add --rebase to git sync (#169)
* 📝 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>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-01 00:59:49 -07:00