diff --git a/CHANGELOG.md b/CHANGELOG.md index aa0b68cc..f435b45f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,13 @@ PyPI version — not the changelog header. ## [2026-07-18] +**fix(tests)** — the immortal `MagicMock/LOG_FILE/` directory is dead: a hooks +engine test patched `diagnostics.LOG_FILE` with a bare Mock, and prax's +`append_jsonl` turned the mock's fspath into a real `mkdir` — every test run +re-minted an empty `MagicMock/LOG_FILE/` in the runner's CWD (found in repo +root, devpulse, and hooks). Test now patches a real tmp path; 100/100 green, +clean-CWD run verified to mint nothing. + **docs** — merge playbook gains a site drift-check step (DPLAN-0249 follow-on): every merge run now asks whether install commands, onboarding flow, agent count, or the platform/CLI story changed — if yes, aipass.ai must be updated the same diff --git a/src/aipass/devpulse/docs/discovery/S324_scan_report.html b/src/aipass/devpulse/docs/discovery/S324_scan_report.html new file mode 100644 index 00000000..2886220b --- /dev/null +++ b/src/aipass/devpulse/docs/discovery/S324_scan_report.html @@ -0,0 +1,173 @@ +
Session S324 · Advisory Scan · Read-only
+Patrick's ask: "look in ur tools folder run some random scan see what surfaces." Ran the April-era advisory scanners — the ones deliberately NOT wired into seedgo's audit — across all 17 branches, then read every scary number in context before believing it. The tree is clean where it counts; most of the raw count is archive noise and scanner age.
+ +| Scanner | Raw | After context | Verdict |
|---|---|---|---|
| Silent fallbacks | 61 | 16 live · 45 = devpulse dropbox/ quarantine copies | mostly archive noise |
| ↳ of the 16 live | 16 | @trigger 11 · @cli 2 · @skills 2 (tests) · @spawn 1 (template) | @trigger needs owner triage |
| Stale terminology | 1,358 | ~600 genuinely dead names · rest = valid .ai_mail.local/ refs | needs live-code filter |
| README freshness | 15/17 stale | dates lag the front-door code week | informational |
Both @trigger hits I read in full are recursion-safe meta-logging guards — "if logging this warning fails, don't crash the error pipeline" — one even carries a # seedgo:bypass meta-logging marker. The @spawn template hit is a two-prefix import probe that surfaces real failures later, not a swallow. The scanner predates the bypass convention, so it re-alarms on code the standards system already acquitted.
MagicMock/LOG_FILE/ sits in devpulse's branch rootEmpty, untracked, born Jul 11 03:31 (a night-shift test run). Something called mkdir on a path built from an unpatched Mock().LOG_FILE. Four candidate offenders mock a LOG_FILE attribute: ai_mail test_daemon.py / test_dispatch_status.py, hooks test_engine.py, seedgo test_checkers_batch3.py. Cheap hunt: run each suite from a scratch CWD and watch which one mints the dir. Until then it's clutter that will regrow after cleanup.
except Exception: pass in live event handlers — 9 still unreadThe error-detection branch swallowing exceptions is worth eyes on principle. The 2 I sampled are legitimate meta-logging guards; the other 9 (in error_detected, runaway_handler, plan_file, pr_status_sync, memory_pool, registry, startup) deserve the same context read by their owner. Concern, not prescription — @trigger designs the fix if any is real.
April-era tools: the fallback scanner doesn't honor seedgo:bypass markers (false alarms on acquitted code), the stale scanner counts valid .ai_mail.local/ usage in its headline, and none of them exclude dropbox/ / .archive/ quarantine dirs — which is where 45 of 61 "fallbacks" came from. A bypass-aware, archive-excluding refresh would make raw counts trustworthy again.
Not yet split between live code (worth fixing) and historical plans/archives (should keep their old names — never rewrite history). A filtered live-code pass is the prerequisite before this number means anything. Public-repo angle: strangers reading live code shouldn't meet four generations of naming.
+Devpulse live code: zero silent fallbacks — all 45 flagged were quarantined pollution captures in dropbox/, doing exactly what quarantine is for. The 10 hard checkers born from this same tools folder already run inside drone @seedgo audit, where all 17 branches sit at 100%. The advisory layer found no criticals, no highs, nothing live-broken.
Sibling of docs/discovery/S304_report.html (Jul 12 — the 124-finding autonomous discovery walk; two criticals from it, medic-off and the rollover off-by-one, were since fixed and Patrick-monitored respectively). The other big HTML artifact of the week is artifacts/ux_flow_graph.html (3.5 MB, the v4 install-to-chat UX graph). Same-day context: PR #703 (merge-playbook drift-check step) is CI-green and awaiting Patrick's merge word; gif session prepped in artifacts/gif_recording_plan.md.