patrick and @devpulse
6fd57fed04
feat(system): fix(system): git_gate hardening + setup.sh auto_watchdog wiring + symlink fallback — DPLAN-0163 Phase 1
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-03 22:56:46 -07:00
patrick and @devpulse
c94e231e84
feat(system): ai_mail vectorization: sys.executable fallback when memory venv missing + mechanical-guardrails prompt docs
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-03 21:51:27 -07:00
patrick and @prax
949eeb375c
feat(prax): prax: smoketest file for post-migration dispatch verification
...
Co-Authored-By: @prax <prax@aipass>
2026-05-03 20:32:20 -07:00
patrick and @devpulse
4a6d60ccc5
feat(system): fix(drone+memory): registry walk-up credential check + memory subprocess docs
...
- drone: skip mismatched registries during CWD walk-up instead of hard-failing (db55b6b , 44 LOC + 70 LOC tests). Fixes the orphan DEVPULSE_REGISTRY.json shadowing AIPASS_REGISTRY.json bug from S124.
- memory: README — document _get_memory_python() resolution chain (env override → memory/.venv/bin/python → sys.executable) accurately.
Both fixes from the S124 init-blast-radius incident triage.
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-03 19:53:52 -07:00
AIPass and Claude Opus 4.6
db55b6b63a
fix(drone): skip mismatched registries during walk-up instead of hard-failing
...
find_registry() now performs a lightweight credential check on each
candidate *_REGISTRY.json during the CWD walk-up. When a registry's
metadata.id conflicts with the nearest passport's registry_id, it is
skipped and the walk continues upward to find the correct registry.
Fixes the bug where an orphan DEVPULSE_REGISTRY.json inside a citizen's
tree caused RegistryMismatchError for all drone commands from devpulse CWD.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-03 18:28:08 -07:00
patrick and @devpulse
26c83b3f07
feat(system): style(drone): fix ruff format on pr_handler.py fork recovery
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-03 09:41:44 -07:00
patrick and @devpulse
a7214ed4ca
feat(system): fix(drone): dynamic fork recovery message with actual repo/user info — closes #329
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-03 09:39:44 -07:00
patrick and @devpulse
607924c755
feat(system): fix(cli): remove vestigial hooks/ dir from aipass init scaffold — closes #497
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-03 09:35:48 -07:00
patrick and @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
patrick and @memory
dd39cb6835
feat(memory): . fix(memory): fix embedder type error + update README date for seedgo 100%
...
Co-Authored-By: @memory <memory@aipass>
2026-05-02 23:42:38 -07:00
patrick and @devpulse
ccafca881d
feat(system): feat(system): add settings terminology to global prompt, fix template registry IDs, add auto_watchdog hook
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-02 23:26:35 -07:00
AIPass
d9b7c36a80
Merge pull request #501 from AIOSAI/work/system
...
feat(system): fix: untrack accidentally-committed .pyc files in devpulse_ops/__pycache__ + add *.bak to root .gitignore
2026-05-02 19:33:53 -07:00
patrick and @devpulse
5b398acff4
feat(system): fix: untrack accidentally-committed .pyc files in devpulse_ops/__pycache__ + add *.bak to root .gitignore
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-02 19:32:20 -07:00
Patrick and Claude 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
AIOSAI and @memory
d2f820d982
feat(memory): fix(rollover): v1 extractor skips files at exactly max_lines
...
Co-Authored-By: @memory <memory@aipass>
2026-04-28 18:15:00 -07:00
AIOSAI and @devpulse
d75735c926
feat(system): fix(drone): add path containment validation on registry branch resolution — prevents ghost-branch RCE via malicious path field (issue #490 fix 2)
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-28 18:11:49 -07:00
AIOSAI and @spawn
80699f0e95
feat(spawn): fix(spawn): atomic registry writes + file locking + path containment (issue #490 )
...
Co-Authored-By: @spawn <spawn@aipass>
2026-04-28 18:07:43 -07:00
AIOSAI and @devpulse
78b7fb6ac7
feat(system): feat(system): fix(trigger): dead events + zombie handler + stale registry + per-branch disable + email check (DPLAN-0159)
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-28 17:46:06 -07:00
AIOSAI and @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
AIOSAI and @devpulse
4fd5bdec7f
feat(system): fix(watchdog): replace shell=True with shlex.split in schedule.py _run_command — prevents shell injection via user-influenced command strings (S117 security finding)
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-27 00:43:04 -07:00
AIOSAI and @trigger
05608a8b64
feat(trigger): S117 stress test @trigger
...
Co-Authored-By: @trigger <trigger@aipass>
2026-04-27 00:07:11 -07:00
AIOSAI and @spawn
92da1c07a2
feat(spawn): S117 stress test @spawn
...
Co-Authored-By: @spawn <spawn@aipass>
2026-04-27 00:06:43 -07:00
AIOSAI and @devpulse
c4008144c7
feat(system): S117 stress test prax
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-27 00:04:46 -07:00
AIOSAI and Claude Opus 4.6
f60725dfc4
test(ai_mail): S117 stress test findings
...
Honest self-review, security concerns, cross-branch observations,
and conversation summaries from the all-branch live-fire stress test.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-27 00:04:08 -07:00
AIOSAI and @memory
2d1a712f20
feat(memory): S117 stress test memory
...
Co-Authored-By: @memory <memory@aipass>
2026-04-27 00:04:02 -07:00
AIOSAI and @cli
321ae989c0
feat(cli): S117 stress test @cli
...
Co-Authored-By: @cli <cli@aipass>
2026-04-27 00:03:52 -07:00
AIOSAI and @devpulse
d11bc94ade
feat(system): fix(drone): mail view index bug — display order was reversed from array order
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 22:44:12 -07:00
AIPass
2f1ede44bb
Merge pull request #482 from AIOSAI/work/system
...
feat(system): fix: DPLAN-0157 pre-commit hook + DPLAN-0158 watchdog reply detection
2026-04-26 22:39:19 -07:00
AIPass
166b6013c0
Merge pull request #481 from AIOSAI/work/ai_mail_dplan0158
...
fix(ai_mail): DPLAN-0158 Phase 1 — explicit reply in daemon prompt
2026-04-26 22:39:14 -07:00
AIOSAI and @devpulse
930400ee38
feat(system): fix: DPLAN-0158 Phase 3 — watchdog JSONL stall detection + plan updates
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 22:35:33 -07:00
AIOSAI and @devpulse
5fda6e9b8f
feat(system): fix: DPLAN-0157 pre-commit hook + DPLAN-0158 watchdog reply detection
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 22:26:44 -07:00
AIOSAI and Claude Opus 4.6
0b73263fc6
fix(ai_mail): DPLAN-0158 Phase 1 — explicit reply instructions in daemon prompt
...
Replaced ambiguous "Send confirmation when done" with explicit
drone @ai_mail reply <id> command including the dispatch email ID
and sender address. Sanitizes interpolated metadata (ID must be
alnum ≤12, sender must match @word pattern). Fallback generic
instruction when ID is missing. 3 new tests.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-26 21:41:48 -07:00
AIOSAI and Claude Opus 4.6
63ab0005bb
feat(ai_mail): DPLAN-0156 — inbox auto-purge sweeps closed messages on every read/write
...
Safety net for messages marked closed by direct JSON edit instead of
drone @ai_mail close. _sweep_closed() in inbox_cleanup.py archives
closed messages to deleted/ and removes them from the inbox.
Wired into: mark_as_opened, mark_as_closed_and_archive (inbox_cleanup),
deliver_email_to_branch, deliver_to_inbox_file (delivery), and
load_inbox (inbox_ops). 8 new tests, 690 total pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-26 19:13:47 -07:00
AIOSAI and @devpulse
1c063bf236
feat(system): security: DPLAN-0155 — telegram dead code removed, api secrets-only cleanup
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 17:59:25 -07:00
AIOSAI and @ai_mail
9fbbcbd834
feat(ai_mail): test(ai_mail): fix lock ordering test for DPLAN-0155 Phase 5
...
Co-Authored-By: @ai_mail <ai_mail@aipass>
2026-04-26 17:33:04 -07:00
AIOSAI and @devpulse
b6be4a9c68
feat(system): security: DPLAN-0155 Phases 2-4 — prompt injection defense, daemon path confinement, JSONL writes removed
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 17:08:22 -07:00
AIOSAI and @devpulse
d84e56344c
feat(system): fix: fork-aware error handling ( #329 ) + hardcoded path fix ( #8 ) — detect 403 push errors and print fork recovery steps, replace hardcoded AIPASS_ROOT with env detection
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 14:12:14 -07:00
AIOSAI and @devpulse
878a76bc27
feat(system): bump version to 2.2.0 for PyPI publish — 68 commits since v2.1.0 including DPLAN-0154 dedicated branches, CI green, test coverage push
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 11:12:32 -07:00
AIOSAI and @devpulse
27d55f91d1
feat(system): DPLAN-0154: dedicated agent branches — passport git_branch field + drone routing
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 10:48:36 -07:00
AIOSAI and @cli
ce0171f746
feat(cli): docs(cli): fix README Commands/Usage section + update stats
...
Co-Authored-By: @cli <cli@aipass>
2026-04-26 10:12:56 -07:00
AIOSAI and @seedgo
aa1a0d4305
feat(seedgo): docs(seedgo): fix README Commands/Usage section + update stats
...
Co-Authored-By: @seedgo <seedgo@aipass>
2026-04-26 10:04:51 -07:00
AIOSAI and @ai_mail
4e0af01ffc
feat(ai_mail): test(ai_mail): improve line coverage on dispatch + email handlers
...
Co-Authored-By: @ai_mail <ai_mail@aipass>
2026-04-26 08:05:34 -07:00
AIOSAI and @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
AIOSAI and @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
AIOSAI and @cli
5944975099
feat(cli): test(cli): improve line coverage on init_project module
...
Co-Authored-By: @cli <cli@aipass>
2026-04-26 07:48:02 -07:00
AIOSAI and @devpulse
85d2e86c29
feat(system): test(prax): improve line coverage on handler files
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 02:26:29 -07:00
AIOSAI and @devpulse
bc52ad85ea
feat(system): test(seedgo): improve line coverage — architecture_check + proof standards + diagnostics (203 new tests)
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 02:14:43 -07:00
AIOSAI and @memory
093fde79bd
feat(memory): test(memory): improve line coverage on handler files
...
Co-Authored-By: @memory <memory@aipass>
2026-04-26 02:11:03 -07:00
AIOSAI and Claude Opus 4.6
de6961e33c
test(flow): improve line coverage on 3 lowest-covered handler files
...
Added 140 tests across 3 new test files:
- test_push_branch_dashboard.py (39 tests): dashboard push, quick_status, plan filtering
- test_registry_ops.py (56 tests): template CRUD, auto-heal, prefix derivation, discovery
- test_update_local.py (45 tests): local dashboard updates, registry merging, plan extraction
Total flow tests: 580 (up from 440). All pass. Ruff clean.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-26 02:09:12 -07:00
AIOSAI and @devpulse
45103c947d
feat(system): fix: Python 3.10 — replace mock.patch with monkeypatch.setattr for rollover detector tests (bpo-46764)
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 01:22:08 -07:00