AIOSAI and @devpulse
7c192c117e
feat(system): bump pytest and Pygments to fix Dependabot alerts
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-07 17:10:11 -07:00
AIOSAI and @devpulse
f07da797dc
feat(system): fix CodeQL inline suppression format lgtm to codeql
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-07 17:04:28 -07:00
AIOSAI and @devpulse
7223dc0455
feat(system): suppress 5 CodeQL false positives and enable Dependabot
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-07 16:51:49 -07:00
AIPass
3b920f8ad4
Merge pull request #524 from AIOSAI/work/system-fix-pr-stacking-and-diagnostics-double-fire
...
feat(system): fix PR stacking and diagnostics double-fire
2026-05-07 16:36:05 -07:00
AIOSAI and @devpulse
db6cf3d754
feat(system): fix PR stacking and diagnostics double-fire
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-07 16:33:17 -07:00
AIPass
1a7c8b8434
Merge pull request #523 from AIOSAI/work/system
...
feat(system): feat(system): Docker clone testing + setup.sh aipass symlink fix — Dockerfile.test replaces old code-server Dockerfiles, tests/docker_clone_test.sh for fresh-install verification, hook_test.py portability fix (skip gracefully without ~/Projects), setup.sh now symlinks both drone AND aipass to ~/.local/bin. Verified 11/11 on real git clone + aipass init inside container.
2026-05-07 15:46:04 -07:00
AIOSAI and @devpulse
7d598e22cf
feat(system): fix(tests): update test_bootstrap.py assertions to match PR #522 bootstrap changes — PreToolUse, PostToolUse, Stop removed from project settings (provider-only), tests now assert their absence
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-07 15:41:14 -07:00
AIOSAI and @devpulse
5114986c31
feat(system): feat(system): Docker clone testing + setup.sh aipass symlink fix — Dockerfile.test replaces old code-server Dockerfiles, tests/docker_clone_test.sh for fresh-install verification, hook_test.py portability fix (skip gracefully without ~/Projects), setup.sh now symlinks both drone AND aipass to ~/.local/bin. Verified 11/11 on real git clone + aipass init inside container.
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-07 15:36:34 -07:00
AIPass
672c926980
Merge pull request #522 from AIOSAI/work/system
...
feat(system): feat(hooks): DPLAN-0167 hook testing framework + bootstrap fix — 20-test harness with direct+integration layers, hook execution logger, CWD guard verification across projects, setup.sh provider wiring update (global_prompt_loader + env vars + git deny rules), bootstrap.py removes dead PreToolUse/PostToolUse from project settings, hook READMEs at provider+project level
2026-05-07 13:02:35 -07:00
AIOSAI and @devpulse
b971d2161e
feat(system): feat(hooks): DPLAN-0167 hook testing framework + bootstrap fix — 20-test harness with direct+integration layers, hook execution logger, CWD guard verification across projects, setup.sh provider wiring update (global_prompt_loader + env vars + git deny rules), bootstrap.py removes dead PreToolUse/PostToolUse from project settings, hook READMEs at provider+project level
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-07 12:58:47 -07:00
AIPass
8da48ddd46
Merge pull request #521 from AIOSAI/work/system
...
feat(system): fix(system): fix doctor test + CWD-aware hook guards to prevent double-firing and standalone bleed
2026-05-07 10:56:15 -07:00
AIOSAI and @devpulse
79ad4d2803
feat(system): fix(system): fix doctor test + CWD-aware hook guards to prevent double-firing and standalone bleed
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-07 10:55:09 -07:00
AIPass
db3dcc6c05
Merge pull request #520 from AIOSAI/work/system
...
feat(system): fix(system): ruff format 13 hook/init files + pip-audit CVE-2026-6357 ignore — unblock CI lint and security
2026-05-07 10:22:45 -07:00
AIOSAI and @devpulse
3d1d820e26
feat(system): fix(system): ruff format 13 hook/init files + pip-audit CVE-2026-6357 ignore — unblock CI lint and security
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-07 00:39:58 -07:00
AIPass
0cf25039e2
Merge pull request #519 from AIOSAI/work/system
...
feat(system): fix(system): resolve all 14 ruff lint errors — unused variables in hooks + f-string placeholders in handoff
2026-05-07 00:14:56 -07:00
AIOSAI and @devpulse
c95f5ef9ef
feat(system): fix(system): resolve all 14 ruff lint errors — unused variables in hooks + f-string placeholders in handoff
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-07 00:13:38 -07:00
AIPass
1f03202ffd
Merge pull request #518 from AIOSAI/work/system
...
feat(system): docs: update README for aipass init run guided setup + metrics
2026-05-07 00:01:19 -07:00
AIOSAI and @devpulse
360327f336
feat(system): docs: update README for aipass init run guided setup + metrics
...
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-06 23:29:48 -07:00
AIPass
f21278af91
Merge pull request #517 from AIOSAI/work/system
...
feat(system): feat(aipass): S129-S130 init UX — 16 fixes from live testing + handoff terminal pop
2026-05-06 23:25:03 -07:00
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