Commit Graph

  • cdd7686638 Set min_messages_between to 1 local/surfacing-tuning tevansandClaude Opus 5 2026-07-27 14:57:58 +01:00
  • 0beaac2133 Loosen surfacing governance defaults tevansandClaude Opus 5 2026-07-27 14:09:16 +01:00
  • e9c13ed7a1 Sort imports in test_citizen_classes.py fix/passport-traits-email tevansandClaude Opus 5 2026-07-27 13:53:01 +01:00
  • e0e9b289cc Add regression tests for passport traits and email tevansandClaude Opus 5 2026-07-27 13:50:20 +01:00
  • 2efb4e8645 Populate traits and email in agent passport templates tevansandClaude Opus 5 2026-07-27 13:40:13 +01:00
  • 4a02f2da2b ci(deps): bump actions/checkout from 7.0.0 to 7.0.1 dependabot/github_actions/actions/checkout-7.0.1 dependabot[bot] 2026-07-26 13:55:28 +00:00
  • 5e36909e53 Merge pull request #709 from AIOSAI/dependabot/github_actions/actions/setup-python-7.0.0 main AIPass 2026-07-26 06:53:33 -07:00
  • 948c65725c ci(deps): bump actions/setup-python from 6.3.0 to 7.0.0 dependabot[bot] 2026-07-25 08:03:10 +00:00
  • a4eae3ef31 ci(deps): bump ossf/scorecard-action from 2.4.3 to 2.4.4 dependabot/github_actions/ossf/scorecard-action-2.4.4 dependabot[bot] 2026-07-25 08:03:03 +00:00
  • df1e9a2e2b ci(deps): bump ruff in /.github/requirements in the ci-tooling group dependabot/pip/dot-github/requirements/ci-tooling-c784f51798 dependabot[bot] 2026-07-25 08:03:01 +00:00
  • 93e19aa55b ci(deps): bump pypa/gh-action-pypi-publish from 1.14.0 to 1.14.1 dependabot/github_actions/pypa/gh-action-pypi-publish-1.14.1 dependabot[bot] 2026-07-25 08:02:58 +00:00
  • 6bba76aa4d ci(deps): bump the codeql-action group with 3 updates dependabot/github_actions/codeql-action-6947902d1c dependabot[bot] 2026-07-25 08:02:48 +00:00
  • fb710fdb59 chore: gitignore SQLite WAL sidecars (*.db-wal/*.db-shm) — transient runtime artifacts, first surfaced by the commons feed's ro connection dev AIOSAI 2026-07-21 20:59:37 -07:00
  • 5b476e0dc3 feat(prax): commons live social feed in monitor (DPLAN-0257) — monitor run commons streams posts/comments/votes/reactions room-tagged, mode=ro sqlite (write refused, live-verified), 10-event backfill + 1.5s id-cursor poll, --logs escape, relay drop-in. 33 new tests, 1065 green, audit 100. Built by @prax, devpulse-verified + live door-tested (post/comment/react streamed) AIOSAI 2026-07-21 20:13:50 -07:00
  • 1c6abe9b59 test(hooks): skipif non-Linux on the two real-/proc tests — Windows runner has no /proc, one asserted a value the platform by design returns None for (CI catch on 4169d085, learning #275 class: hermeticity on the Win runner) AIOSAI 2026-07-21 18:49:40 -07:00
  • 4169d085e3 fix(hooks): engine handler timeout (daemon thread + join, honors hooks.json timeout, default 30s, fails loud) + presence_gate PID-reuse defense (procStart vs /proc stat starttime, liveness-only fallback). DPLAN-0253 backlog via DPLAN-0256. 15 new tests, 1272 green, seedgo 31/31 both files. Built by @hooks, devpulse-verified (diff read + suite re-run + checklist) AIOSAI 2026-07-21 18:34:18 -07:00
  • 37a26ea86c fix(trigger): runaway-log alerts expire 24h like every other mute (DPLAN-0256 backlog) — _write_alert hardcoded expires_at None, alerts nagged forever; DEFAULT_ALERT_TTL_SECONDS=86400 + forever escape hatch. 2 new tests, 621 green, audit 100. Built by @trigger, devpulse-verified (diff read + suite re-run) AIOSAI 2026-07-21 18:19:37 -07:00
  • 42f56f2cc4 test(drone): merge routing test honors the joint-decision gate — headless routing asserted via --confirm (DPLAN-0256 follow-up; CI catch: test_devpulse_plugins asserted the pre-gate contract, missed locally by running only the edited file's suite) AIOSAI 2026-07-21 18:17:52 -07:00
  • 7a2700d649 feat(drone): joint-decision gate on @git merge (DPLAN-0256, todo #92) — TTY gets y/N prompt, headless refused without --confirm, merge_pr unreachable ungated, all decisions logged. 6 new tests (86 green), live refusal verified, seedgo 31/31. Patrick ruling S330: merges together, never accidental AIOSAI 2026-07-21 18:05:39 -07:00
  • d1a6c874e8 feat(skills): telegram user_message_relay joins the hook sound layer — relay events carry a sound key (59/59 + 252 green). Rides the @hooks sounds rollout AIOSAI 2026-07-21 18:05:20 -07:00
  • 76ce13830d fix(devpulse): watchdog stall threshold 120s to 300s (false stalls on long tool calls, verified live S330) + branch settings.local carries the 350k autoCompactWindow dial (Patrick ruling S326) AIOSAI 2026-07-21 18:04:51 -07:00
  • 57285740f2 fix(seedgo): AST checker accuracy arc — 13 false positives gone fleet-wide, 2 legit hooks bypasses documented, checkers/audit/checklist aligned, fixture refreshed, stale bypass entries purged (devpulse/memory/seedgo). Fleet audit 100 pct. S330 night arc AIOSAI 2026-07-21 18:04:32 -07:00
  • 73baa0005f feat(hooks): sound layer across the hook fleet + temporal grounding handler — sounds mirror the log (2465 green, audit 100, compass #157); new prompt/temporal.py injects live local date/time every turn, host-tz, wired both wires (hooks.json + provider manifest). Built by @hooks AIOSAI 2026-07-21 18:04:08 -07:00
  • c71f389409 feat(aipass): adopt verb + shared/ scaffold refactor — projects/ adoption (registry, resident agent, additive scaffold) proven on aipass-site (doctor 31/0); shared/project_home + scaffold_content = one source of truth for init/new/adopt; spawn template registry synced. 786 green, audit-clean. Built by @aipass AIOSAI 2026-07-21 18:03:44 -07:00
  • 47bef92162 docs(projects): aipass-site joins the roster — repo moved from ~/Projects/aipass-site into projects/ (own git repo intact, remote unchanged, invisible to AIPass repo per projects/* ignore) AIOSAI 2026-07-20 19:47:55 -07:00
  • e2157e118c docs(projects): reframe projects/ README — private by default, publishing is opt-in (Patrick ruling). Mechanics unchanged and confirmed: projects/* gitignored, own git repo per project, aipass new creates no remote. CHANGELOG entry updated in place (same unmerged section). AIOSAI 2026-07-20 19:42:47 -07:00
  • 1ac0cecb9a docs(projects): projects/ README — satellite-project explainer + Earmark roster entry. Fills the !projects/README.md gitignore whitelist that existed since the aipass-new design. CHANGELOG entry included. AIOSAI 2026-07-20 19:38:16 -07:00
  • 583a792515 fix(hooks): persistent_alert cross-process dedup + loud trust-break banner (DPLAN-0253 trace round). Dedup: module-global _announced set replaced with session+alert-keyed tempdir guard files - fresh bridge process per prompt meant TTS would announce every turn while an alert existed; banner capped at 10 with overflow note. Trust: is_hash_mismatch distinguishes real break from never-enrolled, trust_break_banner does config-independent walk+hash, engine emits loud banner once per prompt via presence_gate call - a hooks.json edit had silently darkened the ENTIRE hook layer for 2+ hours (found by 5-agent trace round). No auto-heal, re-enroll stays human. Live-fired both ways by devpulse: hash broken = banner, restored = healthy. 16 new tests, 1206 green, seedgo 100 pct, both re-run by devpulse. Also: @hooks prompt corrected (taught one-entry-per-event model) + two-wires checklist + mandatory provider-wire flag; README tree/counts refreshed. Built by @hooks AIOSAI 2026-07-20 16:28:48 -07:00
  • 33a1510cbb feat(hooks): auto-compact prep - context gauge + snapshot stamp (DPLAN-0253). context_gauge (UserPromptSubmit) reads live transcript fill each prompt and nudges /prep at 80 pct of the compact trigger, escalates at 95, once per threshold per session; pre_compact_prep (PreCompact) stamps AUTO-COMPACT SNAPSHOT (fill, dispatch locks, open plans, git, inbox) into the compacting branch local.json; shared context_window resolver (env > branch settings.local.json > 200k). Round 2 root cause: name-scoped events (UserPromptSubmit/PreCompact) invoke the bridge per-handler - hooks.json alone never fires; provider_manifest.json entries added for both + @hooks branch prompt corrected with provider-wire reminder (Patrick-directed). 36 new tests, suite 1190 green, seedgo 100 pct, both re-run by devpulse. Built by @hooks, 2 rounds. Go-live: user syncs ~/.claude/settings.json from manifest + fresh session AIOSAI 2026-07-20 13:13:43 -07:00
  • d1facd8bdc fix(skills): TG poll 5xx triggers network backoff — HTTPError >=500 in poll_updates raises _NetworkPollError instead of rapid-fire retry; 4xx unchanged. 3 new tests (502/503 backoff, 429 excluded). Medic loop: detected by @trigger (ERROR ae5ddbd4), fixed autonomously by @skills, verified by devpulse (1080 tests green, seedgo 100%) AIOSAI 2026-07-19 21:20:10 -07:00
  • 0529a4e7c4 fix(ai_mail): inbox-poller spawn_agent now passes --model DEFAULT_MODEL (sonnet). The daemon asymmetry Vera flagged lived in ai_mail's own handlers/dispatch/daemon.py (name collision, not @daemon branch — their scheduled wakes import wake_branch directly and were covered by efb530e0). DEFAULT_MODEL imported from wake.py, single source; 200k window pin already covered via shared dispatch_monitor wrapper. Test asserts --model in captured spawn cmd. 778 tests green, seedgo 100%, both re-run by devpulse. Investigated by @daemon, built by @ai_mail AIOSAI 2026-07-19 09:32:42 -07:00
  • efb530e0b2 feat(ai_mail): dispatch default Sonnet 5 — alias pass-through + 200k context pin. MODEL_MAP replaced by KNOWN_MODEL_ALIASES pass-through (CLI resolves latest-in-class, map can never go stale), DEFAULT_MODEL opus->sonnet, dispatch_monitor pins CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000 per spawn (Sonnet 5 is 1M-native — without pin agents inherit 1M window). E2E: live @cli dispatch probe reported claude-sonnet-5 + WINDOW=200000 from inside the spawned session. 777 tests green, seedgo 100%, both re-run by devpulse. Daemon spawn_agent --model gap confirmed, handled separately. Patrick ruling S326, built by @ai_mail AIOSAI 2026-07-19 09:15:04 -07:00
  • a7108e8504 fix(flow): is_template_content v5.0 — boilerplate-aware Exec Log check closes the N1 false negative. Default-template Exec Log boilerplate (11 lines w/ Log Pattern tip) beat the 8-line user-work threshold before the bracket-marker check ran, so blank plans read as user-written and closed as done (FPLAN-0313/0314). Now boilerplate is recognized and skipped; blank templates reach the marker check. Live-proven: fresh FPLAN-0342 detected+fast-deleted; 730 tests, audit 100%. DPLAN-0250 N1, dispatched to @flow AIOSAI 2026-07-19 03:08:17 -07:00
  • f09d42a862 fix(flow): lock+atomic registry aggregate writes — S304 F85 residual. save_branch_registry + save_central were bare open+dump; now O_EXCL lockfile with backoff + tmpfile os.replace, matching save_registry.py. Devpulse verified: 730 tests green + 6-proc 180-write concurrent hammer, final file valid JSON. N1 root cause found: is_template_content line threshold fires before bracket-marker check. CHANGELOG entries. DPLAN-0250, dispatched to @flow AIOSAI 2026-07-19 02:55:55 -07:00
  • c91cfd5166 fix(aipass): doctor stops inventing errors on clean repos — S304 F14-17. .backup+templates excluded from agent scan; relative registry paths anchored to project_root not CWD (killed 5 fake missing-branch errors from branch dirs); severity-honest glyphs (info != PASS). Devpulse live-verified from devpulse dir: zero false registry errors, 1 remaining error is genuine ptest pollution. 756 tests. DPLAN-0250 Track A, dispatched to @aipass AIOSAI 2026-07-19 02:55:45 -07:00
  • 8cb3895264 fix(spawn): seedgo remediation on is_protected work — narrowed logged excepts (OSError/ValueError/KeyError + logger.info, fallthrough semantics unchanged) and extracted _check_nested_pollution to cut detect_pollution to depth 4. Audit 100% (43/43), 357 tests, probes re-verified (pollution 0, delete aipass refused). DPLAN-0250 Track A follow-up, dispatched to @spawn AIOSAI 2026-07-19 01:18:15 -07:00
  • d631fd8d54 fix(hooks): pytest-guard the two static-path JSONL writers — S304 F6/F43 closed. diagnostics + telegram_response resolved log paths at import, bypassing prax test routing; now per-write resolvers route to tmp under pytest. Devpulse marker-bounded verify: 1154 tests green, engine.jsonl 1291 lines before AND after, zero suite-attributable entries. CHANGELOG wave entry + prep skill feedback-check habit (F46). DPLAN-0250 Track A, dispatched to @hooks AIOSAI 2026-07-19 01:08:59 -07:00
  • 48e25ae46e fix(prax): pytest detection immune to env-clearing — S304 F6/F43. Hooks tests patch.dict(os.environ, clear=True) stripped PYTEST_CURRENT_TEST, so loggers minted in that window froze prod-path handlers via the setup cache. get_system/module_logs_dir now also check _pytest in sys.modules. 1032 prax + 1154 hooks tests green. Residual: hooks-owned diagnostics writer bypasses prax resolution — handed to @hooks. DPLAN-0250 Track A, dispatched to @prax AIOSAI 2026-07-19 00:55:07 -07:00
  • 800acd079a fix(commons): lowercase branch-name normalization across all resolution sites — S304 F52. trade/artifact/profile/welcome/search ops all uppercased vs identity's lowercase (diverged af350fe0), so ownership guards never matched and gifts were invisible. DB sweep confirmed clean (bug blocked bad writes). Live gift+trade round-trip green, 449 tests, seedgo 31/31. DPLAN-0250 Track A, dispatched to @commons AIOSAI 2026-07-19 00:51:43 -07:00
  • defee1f513 fix(spawn): shared is_protected() guards repair + delete — S304 F30/F84. 3-layer check (infra floor, registry owner, active passport) replaces name-match pollution detection and 3-name delete guard. Live-verified: detect_pollution on AIPass root = 0 issues, delete aipass/devpulse both refused. 357 tests (11 new), seedgo 31/31. DPLAN-0250 Track A, dispatched to @spawn AIOSAI 2026-07-19 00:49:46 -07:00
  • 7811381d54 fix(hooks-tests): stop test_log_write_failure_does_not_crash minting MagicMock/LOG_FILE dirs — bare-Mock LOG_FILE patch reached prax append_jsonl's real mkdir via mock fspath; now patches a real tmp path. 100/100 green, clean-CWD verified zero dirs minted. S324 scan finding, FYI mailed @hooks AIOSAI 2026-07-18 22:10:05 -07:00
  • bdb128d904 docs(flow): merge playbook site drift-check step — every merge run asks if install/onboarding/agent-count/platform story changed, aipass.ai updates same day (DPLAN-0249 follow-on, S323 projection ruling). Template edit by @flow, seedgo 42/42 AIOSAI 2026-07-18 21:07:10 -07:00
  • 9b85a95552 Merge pull request #702 from AIOSAI/dev AIPass 2026-07-18 20:01:03 -07:00
  • 2213251756 docs(readme): v3 restructure — single-funnel story, site link line, gif slots, Claude-Code-on-Linux/WSL positioning (DPLAN-0249) AIOSAI 2026-07-18 19:43:43 -07:00
  • a057cdf488 Merge pull request #701 from AIOSAI/dev AIPass 2026-07-18 16:51:11 -07:00
  • 251b2729c2 docs(readme): drop demo.gif embed — recording predates the v2.7.3 onboarding flow, re-record parked (todo #79) AIOSAI 2026-07-18 16:41:07 -07:00
  • 06c1a3a1be Merge pull request #699 from AIOSAI/dev v2.7.3 AIPass 2026-07-18 16:09:52 -07:00
  • 74bf6eef04 fix(hooks): make test_no_aipass_dir_is_disabled hermetic — the .aipass walk climbs to the drive root, so a real .aipass in any ancestor (windows-setup runner installs AIPass into the runner home, an ancestor of pytest tmp) leaked into the no-dir case. Patch _find_aipass_dir to None for that branch; the walk itself stays covered by the sibling tests AIOSAI 2026-07-18 15:55:23 -07:00
  • 28e8028a02 fix(hooks): assert the full feedback URL in test_fires_on_turn_10 — kills CodeQL py/incomplete-url-substring-sanitization high alert (substring github.com looked like URL validation to the scanner; full-URL assert is also the stricter test) AIOSAI 2026-07-18 15:43:26 -07:00
  • 71e5198d4c feat(onboarding): install ends in a conversation — TDPLAN-0014 chain complete + v2.7.3 bump. Dead-end kills: empty-template init runs handoff+report (default path reaches the conversation), non-interactive completes with defaults exit 0 (was EOFError crash — caught by live door-test after green suites), aipass new TTY auto-launch into the manager w/ printed fallback + escape line. Install-to-chat handoff: launch_inline @aipass with authored first prompt + install report context, ONE unified INIT_PROMPT, headless print-only. Welcome Mode branch prompt (opener spec, name-ask, turn-5 triage, hooks-first via real dispatch, WSL beat, exact-command principle) behaviorally door-tested over a live multi-turn run incl second-session momentum. Feedback pulse (@hooks): 10-turn one-liner, aipass feedback on/off alias, disabled on host, live-proven cadence+persistence. README: install-ends-in-conversation story, aipass new documented, non-interactive truth. CHANGELOG + version 2.7.3 both files. seedgo 17/17 100%, local CI gate green AIOSAI 2026-07-18 15:28:44 -07:00
  • ef38f3be4c Merge pull request #700 from AIOSAI/dependabot/github_actions/codeql-action-3d2ef569ae AIPass 2026-07-18 15:14:34 -07:00
  • db9643eb58 ci(deps): bump the codeql-action group with 3 updates dependabot[bot] 2026-07-18 08:02:58 +00:00
  • 193336967b feat(aipass-new): agent = full spawn citizen at src/<pkg>/<pkg> (FPLAN-0334). new_project routes through spawn_agent() against spawn's new project_agent template (branch prompt, inbox.json, birth certificate, trinity, house entry point, agent README) - hand-rolled scaffold retired. citizen_class=manager, seat path relative, registry walk stops at project root. Birth commit excludes .venv symlink + registry lock. Boundary verified 4/4 refusals incl ai_mail cross-project check AIOSAI 2026-07-17 22:56:19 -07:00
  • f6d31285ea fix(seedgo): Debug_Print detector regex matched print( inside string literals - strip string content before matching (+regression test); flatten depth-5 nesting in cli_ux_check. The auditor was the last branch under 100 - fleet now genuinely 17/17 (FPLAN-0333) AIOSAI 2026-07-17 20:17:41 -07:00
  • d4b265ad45 feat(aipass): aipass new + front-door overhaul, project boundary, cli_ux+readme_quality standards, fleet-100 sweep (FPLAN-0333/DPLAN-0247). aipass new creates isolated projects with full framework agents (registry-first credential linkage, birth commit, drone-resolvable from inside, invisible to host). ai_mail refuses cross-project mail. seedgo gains user-facing-quality standards born from live door-test. 15 branch fronts brought to house pattern - 17/17 branches 100% AIOSAI 2026-07-17 19:29:47 -07:00
  • 53a695580f Merge pull request #698 from AIOSAI/dev v2.7.2 AIPass 2026-07-16 23:43:55 -07:00
  • 6163202a93 release: bump 2.7.2 — compass v2 + ambient recall window. New cadence ruling: PATCH bump + tag every merge, PyPI tracks main AIOSAI 2026-07-16 23:29:26 -07:00
  • 4912d96f58 docs(flow): merge playbook SOP fixes from live run PPLAN-0010 — gated fetch step replaced with drone @git sync, create-syntax hint at template top AIOSAI 2026-07-16 23:19:50 -07:00
  • 87bfccd55b Merge pull request #697 from AIOSAI/dev AIPass 2026-07-16 23:04:50 -07:00
  • a89ddb30bd fix(ci): seedgo gate back to 100% — hooks handler logging + silent catches, memory governance modules/handlers split (import path frozen, bridge E2E green), devpulse README test count. All 17 branches 100% AIOSAI 2026-07-16 22:44:01 -07:00
  • e412cfed14 fix(drone): namespace subprocess timeout to --drone-timeout — plain --timeout passes through to modules (watchdog 600s regression, live repro x2). Regression test, 879 green, CHANGELOG both fixes AIOSAI 2026-07-16 22:04:03 -07:00
  • b8f6fb8dad fix(memory): plan-ID searches pin the exact plan via metadata lookup (Patrick ruling) + purge 193 scratchpad junk vectors. Live-verified 100% top-hit, 1011 green AIOSAI 2026-07-16 22:03:04 -07:00
  • 6b0dcdccef fix(memory): governance module ate all @memory commands — standard handle_command signature, declines non-governance commands (Track 2 follow-up). Search verified live, 1011 green AIOSAI 2026-07-16 21:31:10 -07:00
  • 1902775812 feat(compass): Track 2 ambient recall — compass_recall hook + pure governance (memory) + recall API w/ rare-token scoring (devpulse), verbatim tidbit injection, live acceptance matrix green (DPLAN-0246/FPLAN-0332). 446+1011+1129 tests, seedgo 100% AIOSAI 2026-07-16 20:43:49 -07:00
  • 03dfce20b4 feat(devpulse): compass curation v2 Track 1 — supersedes links + atomic archive, write-time FTS conflict advisory, note command, --include-archived, score code-removal, review-per-prep (DPLAN-0246/FPLAN-0331). 435 green, seedgo 31/31 AIOSAI 2026-07-16 19:45:21 -07:00
  • b3bb529a6a feat(drone): 3-layer timeout policy — per-command overrides + --timeout flag + 30s default, override hint in error (DPLAN-0245). 878 tests green AIOSAI 2026-07-16 00:09:28 -07:00
  • 9a61d237fa feat(flow): close pipeline self-completing — auto-vectorization from post_close_runner + locked atomic registry writes (DPLAN-0245). E2E proven, 730 green AIOSAI 2026-07-16 00:09:14 -07:00
  • 702e335cb8 fix(skills): TG routine read-timeouts silenced on OSError path + outage episode-start demoted ERROR→WARNING per Patrick ruling — ends medic wake-loop. 825 TG tests green AIOSAI 2026-07-15 23:21:41 -07:00
  • 73e9ededd4 fix(flow): CLOSED_PLANS append race — O_EXCL lockfile with retry/backoff, surface silent append failures (S314 sweep lost 18/21 entries). 730 tests green AIOSAI 2026-07-15 23:21:26 -07:00
  • bad08e9b03 fix(memory): unwedge plan vectorization — salt vector IDs with source file, per-file batches with incremental manifest (DPLAN-0245). Backlog drained 229/229, 990 tests green AIOSAI 2026-07-15 23:21:11 -07:00
  • 851988abbc fix(seedgo): DPLAN-0244 trust files to 100% standards — json_handler + justified bypasses AIOSAIandClaude Fable 5 2026-07-15 19:17:45 -07:00
  • 222a9c8382 docs(navmap): open-source status is fleet-wide identity, not a coding footnote (Patrick ruling) AIOSAIandClaude Fable 5 2026-07-15 18:23:13 -07:00
  • a8b1ce6658 feat(hooks): DPLAN-0244 hooks.json trust model hardening — Layer A engine gates + Layer B registry/CLI AIOSAIandClaude Fable 5 2026-07-15 18:23:02 -07:00
  • 807924241f docs: startup protocol — announce current PID on greeting (Patrick) AIOSAI 2026-07-15 14:12:55 -07:00
  • 91f8cc6c07 Merge pull request #696 from AIOSAI/dev v2.7.1 AIPass 2026-07-15 13:37:45 -07:00
  • 989d19020d chore(release): bump 2.7.0 -> 2.7.1 — supply-chain hardening (DPLAN-0243: commit signing, hash-pinned CI tooling, release provenance attestation), TG streaming v2 polish, rate_tracker burst-evasion fix, CI green pass AIOSAI 2026-07-15 13:24:41 -07:00
  • b4f66ce84d docs(flow): merge playbook template — DPLAN-0243 new-setup notes (auto-SSH-signing, hash-pinned CI advisory mode, provenance attestation step). Built by @flow, 730/730 green, seedgo 100% AIOSAI 2026-07-15 13:19:29 -07:00
  • 294d25cea3 docs: CHANGELOG entry for DPLAN-0243 supply-chain hardening (signing, hash-pinned CI, provenance, hvtracker#186) AIOSAI 2026-07-15 12:36:19 -07:00
  • 9048666c65 ci: OSSF scorecard hardening (DPLAN-0243) — hash-pin all standalone workflow pip installs via .github/requirements/ locks (pip/lint/build/e2e/audit, pip-compile --generate-hashes, 11/11 target-env closure verified incl. Windows colorama marker fix) + provenance attestation on publish (attest-build-provenance v4.1.1 SHA-pinned, id-token+attestations perms) + dependabot pip ecosystem for the new locks. Editable -e . installs untouched byte-identical. 5/5 fresh-venv --require-hashes installs green, 5/5 YAML parse, pinned ruff matches repo lint. First SSH-signed commit (repo config wired this session). AIOSAI 2026-07-15 12:21:22 -07:00
  • 25fc02d07a feat: TG streaming v2 polish (DPLAN-0229) — logs_were_active + multi-chunk (>4096) finalize now honor the streaming flag: logs-active reconcile-edits the streamed message instead of Done.+fresh, multi-chunk edits chunk 1 in place + sends [2/N] continuations, edit-fail falls back safely. Batch path verified zero-change via regression tests. 6 new tests, 1077 hooks green + seedgo 100% devpulse-verified. Live streamed-turn proof pending Patrick's next streaming session. AIOSAI 2026-07-15 11:14:05 -07:00
  • 9dc2ecd604 feat: rate_tracker v1.2.0 burst-evasion fix — severity evaluates max(instant_rate, 60s window avg): bursty runaways (20 lines/6s retry-loop shape, 200/min avg, previously 4min undetected live) now sustain through gap windows; continuous unchanged, subsidence clears. 4 new burst tests, 1032 green + seedgo 100% devpulse-verified, live-proven from running service: RUNAWAY WARNING prax_burst_storm_test.log 191 lines/min sustained 120s. AIOSAI 2026-07-15 10:45:38 -07:00
  • 13ae64cbae fix: unpark the parked CI reds — Patrick ruling: red CI is never parked. @prax: relay mtime-cache flake root-caused (test relied on two writes sharing one mtime-granularity window — true locally, false on CI) — os.utime pins mtime so the cache contract tests deterministically, 50/50+20/20 loops green. @hooks: 4 Windows session_boot reds — _tmux_session_exists() real subprocess spawn (no tmux on Windows, WinError 2) mocked per ca096295 convention, execvp already mocked = zero real spawns left. 1028 prax + 102 session_boot green, devpulse-verified. AIOSAI 2026-07-15 10:26:09 -07:00
  • 024cf5a104 fix: pin sys.platform=linux in test_is_pid_alive_dead — Windows runners take the OpenProcess path so the os.kill mock never fires; test reds whenever PID 1234 is alive on the runner (first hit today, 6/6 sibling tests were already pinned by ca096295). 38 presence tests green. AIOSAI 2026-07-15 09:03:01 -07:00
  • be68d23d6a fix: CI green pass on PR#696 — lint (ruff format on trigger runaway tests), seedgo 100% both red branches (@hooks: new json_handler + persistent_alert/alert_dismiss wired through it, cc_sessions introspection gate, _menu_live nesting extraction, 1071 tests; @prax: rate_tracker DI refactor — module layer injects logs_dir + trigger.fire via configure(), 1028 tests), navmap trim 9.3k→7.9k under injection cap. All owner-fixed via dispatch, devpulse-verified: both audits 100% independently re-run, full runaway chain re-proven live post-refactor (332 lines/min storm → WARNING at 130s → trigger → @aipass triage → alert banner rendered in-session → dismiss clears). Burst-evasion design finding (pre-existing, not regression) filed to @prax by mail. AIOSAI 2026-07-15 08:49:21 -07:00
  • 81658ce0ea feat: runaway-log detection + escalation (DPLAN-0242, agent-designed) + citizen wake-back. Prax-led three-branch build via TDPLAN-0013: prax rate_tracker (disk-persisted volume detection, WARNING >100 l/min 2min / CRITICAL >10 l/s 1min, 4th monitor thread) + drone @prax log-health; trigger runaway_log_detected event + handler (per-file 30min cooldown independent of medic breaker, UNKNOWN->prax, writes .aipass/alerts.json); hooks persistent_alert banner + drone @hooks dismiss (devpulse fixed nearest-.aipass path bug in both + wired settings.json - registration is not deployment). Live-fire proven: planted 240 l/min storm -> detect 257 l/min -> event -> dispatch -> @aipass autonomous no-action triage -> banner -> dismiss. ai_mail wake ruling: owner-gate removed (citizen wake-back live-proven), devpulse structurally unwakeable (manager check all paths), self-wake loop found+fixed same night (guard + senderless wake-back sessions). Navmap comms section, 4 branch READMEs + root README + CHANGELOG. ~77 new tests, suites green: prax 1028, trigger 619, hooks 1071, ai_mail 765 AIOSAI 2026-07-15 00:05:02 -07:00
  • de109846bf fix: prax TG relay offline backoff — network-class send failures enter offline mode (1s-60s doubling, flush gate skips sends, monitor loop never blocks, viewers keep rendering), log-once (enter + 5min summary + recovery w/ drop count), full reset on first success. Found live in Patrick's plug-pull: bots went quiet right, relay spun Send failed every 5s (89 lines) + self-fed via log watcher re-ingest. 11 new tests, 1007 prax green devpulse-verified AIOSAI 2026-07-14 17:01:23 -07:00
  • 5744073c11 fix: TG bot offline hot-spin — network-class poll errors (DNS/connection/socket) back off exponentially 1s-60s cap, reset on first successful poll; log-once semantics (1 unreachable line + 5min summaries + 1 recovery line) instead of 13 err/sec; routine long-poll read-timeouts silent (863/day medic noise class gone). Found live: Patrick's tether outage spun all 5 bots for an hour. 25 new tests, 822 TG + 252 skills green devpulse-verified AIOSAI 2026-07-14 16:29:57 -07:00
  • b791af2372 feat: medic revival + concurrent monitor viewers — pytest logs route to tmp (PYTEST_CURRENT_TEST, fixture storms cant pollute prod logs), breaker self-heals (half-open on read, close on probe, cooldown decay), TTL mutes (mute/off auto-expire 24h, --for/--forever, temp off keeps detection), footer+navmap mute breadcrumbs; prax monitor lock scoped to TG relay role (relay.pid) so viewers always start — Patrick ruling: processes are not agents. Loop proven live: planted commons bug fixed by medic dispatch in 105s byte-identical. 993 prax + 603 trigger green AIOSAI 2026-07-14 14:57:40 -07:00
  • af12158cbc fix: TG bot heartbeat race — generation counter kills resurrected heartbeat threads (shared stop Event cleared by next start let a >5s-stuck thread overwrite delivered replies with Processing...), delivered re-check before every edit in batch+streaming loops, superseded pending placeholders finalized in message+file paths (rapid-fire single-slot strand). Root-caused live from Patrick's frozen bubble; 6 new heartbeat tests, full TG suite 797 green devpulse-verified. AIOSAI 2026-07-14 11:00:48 -07:00
  • 62d047cac1 fix: TG mirror live-test round — agent_type filter unblocked main chats (daemon-backed sessions carry agent_type=claude; subagents never fire UserPromptSubmit; skip is now agent_id-based) + TG-echo gate (bot stores injected_prompt in pending file, relay skips fresh undelivered text-match; raw injections carry no marker). Found live by Patrick's morning door-tests; mirror proven both directions. 791 TG tests green (incl. cross-file mock fix @skills missed). AIOSAI 2026-07-14 09:16:02 -07:00
  • 5c82db6729 feat: TG user-comment mirror — user messages from ALL doors (terminal/remote) now mirror to the branch TG chat with origin tag. UserPromptSubmit relay handler (self-contained in telegram skill, crash-isolated last entry in hooks.json), human-only noise fences (system/task notifications, slash-command output, dispatch wakes, subagents, TG-echo, dupes), inbound hardening (stale-pending clean before write, undelivered-overwrite warning). 47 new TG tests, execution proven via engine.jsonl, positive path live-verified to real TG chat. AIOSAI 2026-07-14 02:42:41 -07:00
  • 116c4e9d69 fix: DPLAN-0241 round 4 — R6 extra_args threaded through ALL launch paths (user flags survive resume/takeover/continue/dead-window/headless), R7 auto-namer stamps --name branch-shortid on every launch (flag live-verified 2.1.209, user -n/--name wins), new-over-all aborts on failed daemon stop, honest close-all hint, exit/q/quit in all menus. op:kill per-job stop found in daemon socket protocol — documented, not shipped (undocumented internal). 1048 hooks tests green (102 session_boot, 11 CLI contract). AIOSAI 2026-07-14 02:10:44 -07:00
  • 0b739ac525 fix: DPLAN-0241 rounds 2-3 — Enter IS the takeover. Phantom claude-agents-stop removed (bg close honest, never SIGTERM), bg resume = daemon stop --any (returncode-checked, blast-radius y/N confirm) + --resume in tmux with bypass, ALL interactive launches tmux-wrapped, multi-session menu shows real names + explicit pick + honest new/close, real-binary CLI contract test tier (20 tests, phantom-subcommand class unshippable). 1025 hooks tests green, all facts live-verified vs claude 2.1.208. Plus DPLAN north-star: one conversation per branch, surfaces are views, agents bind to machine not interface. AIOSAI 2026-07-13 23:49:57 -07:00
  • 364cefa5fd fix: DPLAN-0241 session-mgmt overhaul — boot shim passthrough (only bare/permission-mode intercepted), session_boot 3-option boot menu (resume/new-closes-old/close, per-kind proper stops, never kill for bg), presence_gate repaired (session-file PID resolver, bg sessions gated) + wired OBSERVE-ONLY, wire_verify flags unwired security hooks as ERROR, new drone @hooks sessions + reclaim, PID-first session naming. Plus S304 discovery report + DPLAN-0241. Verified live: gate's first production run logged correct would-block, no self-block; 987 hooks tests green. AIOSAI 2026-07-13 22:50:27 -07:00
  • e9b86c3ebb feat: TG log-stream control — /logs on branch bots (persisted pref, honored by auto-start) + prax_monitor receiver bot (/pause /resume /errors /all /status, menu registered) + relay honors shared control file each flush. 84 new tests, all suites green; live-verified end-to-end from Telegram Web (errors filter kicked in within one flush). AIOSAI 2026-07-12 11:22:19 -07:00
  • e0811fcf93 fix: #692 builder->aipass_framework legacy migration + birth-cert template; #694 test-order pollution (prax fixture scope + skills hermetic tests). Verified: repro pair passes, 1576 tests green, Vera dry-run plans exactly 2 migrations zero writes. AIOSAI 2026-07-12 00:02:32 -07:00
  • 002d83da8c Merge pull request #659 from AIOSAI/dev v2.7.0 AIPass 2026-07-11 22:09:27 -07:00
  • 24abb7bbcc Merge pull request #689 from AIOSAI/dependabot/github_actions/codeql-action-7512263334 AIPass 2026-07-11 21:57:57 -07:00
  • f4c696b3dc Merge pull request #690 from AIOSAI/dependabot/github_actions/actions/stale-10.4.0 AIPass 2026-07-11 21:57:33 -07:00
  • c0d2d77428 release: bump version 2.6.1 -> 2.7.0 (pyproject.toml + src/aipass/__init__.py, both in lockstep for the v2.7.0 tag guard). MINOR bump per Patrick: PR659 ships new user-facing capability - owner-capability model + spawn sync-registry --check/--fix + aipass doctor owner health/repair (DPLAN-0231/0239), fleet-wide subcommand help contract (#686). Rides PR659 ahead of the merge so origin/main carries 2.7.0 for the tag. AIOSAI 2026-07-11 21:56:26 -07:00