Commit Graph
270 Commits
Author SHA1 Message Date
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
6e705eeb8e feat(system): audit cleanup: spawn (#168)
* 📝 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>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: @devpulse <devpulse@aipass>
2026-04-01 00:59:34 -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
AIPassandClaude Opus 4.6 0991d89bb8 audit cleanup: cli (#166)
* 📝 docs(STATUS): update last sync timestamp

- update last sync timestamp to reflect recent status synchronization

* feat(cli): add standalone `aipass` command via console_scripts entry point

Resolves APLAN-0074 open item: aipass command now accessible on PATH via
pyproject.toml console_scripts. Added cli_entry() wrapper in __init__.py,
bypass for seedgo unused_function, and integration test for the entry point.

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:10:34 -07:00
AIPassand@devpulse fe08adf61a feat(system): fix: system-pr no longer creates divergent commits on main (#165)
* 📝 docs(STATUS.md): update system status and session details

- update last sync timestamp and summary
- correct number of standards in compliance statements
- add details for session 68 and its outcomes
- refine session 67 wrap-up notes for clarity

* feat(system): fix: system-pr no longer creates divergent commits on main

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

---------

Co-authored-by: @devpulse <devpulse@aipass>
2026-03-31 16:56:12 -07:00
AIPassand@devpulse 63b9b15416 feat(system): fix: exclude STATUS.md from system-pr staging to prevent rebase conflicts (#164)
Co-authored-by: @devpulse <devpulse@aipass>
2026-03-31 16:42:49 -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
AIPassand@devpulse c4377cc2e5 feat(system): S67 STATUS.md sync update (#160)
* feat(system): S67 STATUS.md sync + HERALD.md update

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

* feat(system): S67 STATUS.md sync update

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

---------

Co-authored-by: @devpulse <devpulse@aipass>
2026-03-31 02:14:12 -07:00
AIPassand@devpulse 0ca7cc9356 feat(system): S67 STATUS.md sync + HERALD.md update (#159)
Co-authored-by: @devpulse <devpulse@aipass>
2026-03-31 02:03:13 -07:00
651bc6a94e feat(system): S67 APLAN template, stale file cleanup (#158)
* feat(system): S66 test: DPLAN-0088 live verification of auto status sync

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

* feat(system): APLAN template, all-caps cleanup, stale file removal

- Register APLAN (audit plan) template in flow for branch audits
- Remove all-caps emphasis from DPLAN, FPLAN, RPLAN templates
- Add no-all-caps rule to global prompt Hard Rules
- Strengthen FPLAN close instruction (clearer, final step)
- Clean up stale tracked files (.plans_processed.json, test file)
- Update .gitignore and settings.local.json

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

---------

Co-authored-by: @devpulse <devpulse@aipass>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 00:41:04 -07:00
AIPassandClaude Opus 4.6 47e3088a1b chore: remove tracked cache/config files, update gitignore (#156)
- Remove __pycache__/pr_plugin.cpython-312.pyc from tracking
- Remove memory/config/.plans_processed.json from tracking
- Both now properly gitignored

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 23:38:19 -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 8ff56c2914 feat(flow): add RPLAN template, deny git add -f, fix gitignore (#154)
- Add research_plans/default.md template for external repo analysis (RPLAN)
- Deny git add -f/--force in project settings (prevents bypassing gitignore)
- Add RPLAN-*.md to gitignore (plans are local, not tracked)
- Remove force-added DPLAN-0087 from tracking (was incorrectly git add -f'd in S65)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 21:56:43 -07:00
AIPassand@devpulse 174cc43f7e feat(system): chore: remove devpulse_ops test files (#153)
Co-authored-by: @devpulse <devpulse@aipass>
2026-03-30 16:29:44 -07:00