AIOSAI and @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
AIOSAI and @devpulse
9281efeacc
feat(system): feat(aipass): DPLAN-0164 Phases 4-5 — remove init from CLI, move tests, fix routing assertions
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-04 21:37:32 -07:00
AIPass
ee2716e63f
Merge pull request #515 from AIOSAI/work/system
...
feat(system): feat(aipass): unignore @aipass citizen branch — add concierge source to repo with ancestor guard pre-flight
2026-05-04 21:20:39 -07:00
AIOSAI and @devpulse
352845a5aa
feat(system): feat(aipass): DPLAN-0164 Phases 1-3 — move bootstrap from CLI, wire routing, flip pyproject entry point
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-04 19:32:13 -07:00
AIOSAI and @devpulse
6756b60d80
feat(system): feat(aipass): unignore @aipass citizen branch — add concierge source to repo with ancestor guard pre-flight
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-04 18:21:22 -07:00
AIPass
398cb0d37e
Merge pull request #514 from AIOSAI/work/system
...
feat(system): fix(ci): test_git_gate falls back to repo hook copy when user copy absent
2026-05-03 23:50:38 -07:00
AIOSAI and @devpulse
1058fb7c90
feat(system): fix(ci): test_git_gate falls back to repo hook copy when user copy absent
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-03 23:40:32 -07:00
AIPass
71c177c51c
Merge pull request #513 from AIOSAI/work/system
...
feat(system): docs: update README + global prompt to reflect git_gate v2 (branch/tag/remote split, owner bypass, sudo optional)
2026-05-03 23:38:31 -07:00
AIOSAI and @devpulse
865af0cbde
feat(system): fix(lint): ruff format test_git_gate.py
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-03 23:36:09 -07:00
AIOSAI and @devpulse
67bfb18888
feat(system): docs: update README + global prompt to reflect git_gate v2 (branch/tag/remote split, owner bypass, sudo optional)
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-03 23:34:07 -07:00
AIPass
2a9bb4944c
Merge pull request #512 from AIOSAI/work/drone
...
feat(drone): DPLAN-0163 Finding 8: set AIPASS_BRANCH_NAME on dispatch
2026-05-03 23:30:35 -07:00
AIPass
2387c650d8
Merge pull request #511 from AIOSAI/work/system
...
feat(system): fix(system): DPLAN-0163 — git_gate hardening, standalone project fixes, 113-test suite
2026-05-03 23:30:17 -07:00
patrick and @drone
7dbe5957ef
feat(drone): DPLAN-0163 Finding 8: set AIPASS_BRANCH_NAME on dispatch
...
Co-Authored-By: @drone <drone@aipass>
2026-05-03 23:21:23 -07:00
patrick and @devpulse
f7678581ee
feat(system): fix(system): DPLAN-0163 — git_gate hardening, standalone project fixes, 113-test suite
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-03 23:16:39 -07:00
AIPass
57e8ce4e9b
Merge pull request #510 from AIOSAI/work/system
...
feat(system): ai_mail vectorization: sys.executable fallback when memory venv missing + mechanical-guardrails prompt docs
2026-05-03 23:16:21 -07:00
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
AIPass
ac5452ba20
Merge pull request #509 from AIOSAI/work/system
...
feat(system): ship git_gate hook via setup.sh for fresh installs (DPLAN-0162)
2026-05-03 20:44:05 -07:00
AIPass
8201b6a851
Merge pull request #508 from AIOSAI/work/prax
...
feat(prax): prax: smoketest file for post-migration dispatch verification
2026-05-03 20:43:37 -07:00
patrick and @devpulse
1ee7b45483
feat(system): feat(hooks): ship git_gate hook via setup.sh — mechanical block on raw git/gh writes for fresh installs
...
Adds .claude/hooks/git_gate.py and wires it in setup.sh PreToolUse so all fresh AIPass installs ship with mechanical enforcement of the drone-only git policy.
Why this exists: dispatched agents spawn with bypassPermissions which skips all permissions.deny rules in every settings tier. PreToolUse hooks remain the only mechanical chokepoint that survives bypass mode (verified via official Claude Code docs and live dispatch test).
Behavior — blocks with redirect to drone:
- Bash raw git write verbs and stash drop/clear/pop/apply
- Bash gh write subcommands and all gh api calls
- Edit/Write/MultiEdit on .claude/settings*.json, .claude/hooks/, .git/hooks/
Allows:
- Read-only git and gh
- All drone-prefixed commands (drone uses Python subprocess for git, never the agent Bash tool)
- Devpulse and seedgo working from their own branches can edit the enforcement layer (trusted-editor bypass)
- Quote-stripping: text inside double or single quotes is treated as data not code (so PR descriptions and commit messages can mention git verbs freely)
Verified end-to-end S124: live dispatch to prax, hook fired on raw git chain, agent pivoted to drone @git pr cleanly. 79 unit-test cases pass total. See DPLAN-0162.
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-03 20:40:16 -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
AIPass
b36185e21f
Merge pull request #507 from AIOSAI/work/system
...
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.
2026-05-03 19:54:23 -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
AIPass
a2d84a78da
Merge pull request #506 from AIOSAI/work/system
...
feat(system): fix(drone): dynamic fork recovery message with actual repo/user info — closes #329
2026-05-03 09:46:57 -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
AIPass
0840dfe778
Merge pull request #505 from AIOSAI/work/system
...
fix(setup+cli): wire missing hooks (#498 ) + remove vestigial hooks/ dir (#497 )
2026-05-03 09:37:05 -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
6839b1048a
feat(system): fix(setup): wire pre_edit_gate + SubagentStop hooks in setup.sh — closes #498
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-03 09:32:16 -07:00
AIPass
249b48e98b
Merge pull request #504 from AIOSAI/work/system
...
fix(setup): ensurepip check (#495 ) + git identity (#500 ) + secrets protection (#496 )
2026-05-03 09:30:24 -07:00
patrick and @devpulse
1d02f412f6
feat(system): fix(setup): protect ~/.secrets/ with permissions.deny + fix chmod on inner dir — closes #496
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-03 09:29:14 -07:00
patrick and @devpulse
c7bc27b7b8
feat(system): fix(setup): add ensurepip check ( #495 ) + git identity config ( #500 ) — closes #495 , closes #500
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-03 09:26:47 -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
AIPass
5348ae6d81
Merge pull request #502 from AIOSAI/work/system
...
feat(system): feat(system): add settings terminology to global prompt, fix template registry IDs, add auto_watchdog hook
2026-05-02 23:33:08 -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
AIPass
9a71137dda
Merge pull request #499 from AIOSAI/work/memory-rollover-fix
...
fix(memory): remove rollover from startup chain + add embedding deps
2026-05-02 19:05:30 -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
AIPass
33c7643a95
Merge pull request #494 from AIOSAI/work/memory
...
feat(memory): fix(rollover): v1 extractor skips files at exactly max_lines
2026-04-28 18:22:51 -07:00
AIPass
fbe5605d0d
Merge pull request #493 from AIOSAI/work/system
...
feat(system): fix(drone): add path containment validation on registry branch resolution — prevents ghost-branch RCE via malicious path field (issue #490 fix 2)
2026-04-28 18:22:39 -07:00
AIPass
84168ff872
Merge pull request #492 from AIOSAI/work/spawn
...
feat(spawn): fix(spawn): atomic registry writes + file locking + path containment (issue #490 )
2026-04-28 18:22:30 -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
AIPass
b10b64750b
Merge pull request #491 from AIOSAI/work/system
...
feat(system): feat(system): fix(trigger): dead events + zombie handler + stale registry + per-branch disable + email check (DPLAN-0159)
2026-04-28 17:59:55 -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
AIPass
477e3a58ef
Merge pull request #489 from AIOSAI/work/trigger
...
feat(trigger): S117 stress test @trigger
2026-04-28 17:45:47 -07:00