Commit Graph
123 Commits
Author SHA1 Message Date
AIOSAI d511576fc0 DPLAN-0239 owner seating permanent+self-healing, fixes #693 (VERA seated, is_owner @vera=True). ROOT CAUSE: pre-2026-07-10 projects seated owner only in the self-editable passport, never the sealed registry (old ensure_project_has_owner bailed on passport owner:true without writing registry) -> 8/8 external projects unseated, get_owner None -> guard refused @vera watchdog/feedback/wake; + registry_id was a PROJECT id copied everywhere (13 AIPass entries shared one, metadata.id absent), drifting on registry recreation. IDENTITY MODEL (Patrick ruled): metadata.id=project credential (passports conform, majority-consensus restore); entry registry_id=set-once PER-CITIZEN UUID minted at add_to_registry; entry owner:true=the gate, ONE heuristic pick_owner_branch (manager->passport-owner->first-created) shared by create+reconcile. NEW: spawn sync-registry --check(--json, 7 flags, pinned schema)/--fix(--dry-run fully read-only, idempotent, never moves a seated owner); aipass doctor renders flags, doctor --fix/install/init-update delegate repair to spawn (the missing 0231 PART-4 retro-trigger, works from external project dirs); adopt path now seats; placeholders resolves registry from target dir not CWD, fails loud; hooks auto_watchdog injects real Monitor-tool command w/ @target (was dead one-liner + run_in_background which cannot wake). 4 dispatch rounds; devpulse verify caught 4 gaps round-1 tests missed (schema divergence->pinned v2, dry-run wrote via old-sync fix=True, unanimous->majority consensus vs BACKUP outlier, dual seating heuristic). DEPLOYED: AIPass dogfooded (restore metadata.id 7087bb93 majority 13/14, 16 citizen UIDs, --check clean, doctor owner OK) + 6 external projects reconciled/verified clean incl Vera-Studio (Seat VERA + 3 UIDs). Suites: spawn 343, aipass 673, hooks 961; full-repo 9364 pass (1 pre-existing skills litter -> #694). CHANGELOG updated. 2026-07-11 17:15:47 -07:00
AIOSAI f7e2584304 #686/#661 night shift wave 1: spawn + drone + flow -> 100% seedgo. spawn.py main() intercepts <cmd> --help before dispatch (Subcommand_Help 0->100). drone rm.py + flow aggregate_central/registry_monitor route status output via cli success()/error() (Output_Routing ->100). Tests green: spawn 316, drone 864, flow 730. 2026-07-11 01:19:15 -07:00
AIOSAI 9dab0ca3f4 #665 item 4 (spawn): sync_registry_ops derives branch description from passport purpose/role/README, not the hardcoded 'Auto-registered branch' placeholder — wired into new-registration AND --fix backfill of existing placeholders. Root fix that ships + survives regen (the gitignored registry data edit didn't). 0 placeholders in drone systems. 2026-07-10 15:21:14 -07:00
AIOSAI a3a476f59d #679 spawn: is_owner() case-folds — is_owner('DEVPULSE') == is_owner('devpulse').
registry.is_owner (apps/handlers/registry.py:382) @-normalized the email but never lowercased, so a mixed-case branch name (registry names are mixed-case: DEVPULSE vs devpulse) returned False against the seated owner while the lowercase form returned True. Harmless today — the only live caller (@ai_mail dispatch_monitor._wake_sender) lowercases first — but the frozen TDPLAN-0012 contract promises a normalized email, and PART-4 owner-gating of watchdog/feedback may pass a raw branch name.

Fix: lowercase BOTH sides of the comparison (passed-in email AND registry owner email), @-strip preserved. +1 case-insensitivity test. Built by @spawn, verified by devpulse: LIVE repro — every case variant of the owner (DEVPULSE/@DEVPULSE/DevPulse) resolves True, non-owners (seedgo/@SEEDGO) and empty stay False; 316 spawn tests green (+1), seedgo 100%.

Rides PR#659 (issue-clearing, no main-merge). Source: #678/TDPLAN-0012 verify.
2026-07-10 04:06:19 -07:00
AIOSAI 874c7fed2e #678 owner-capability: seal project ownership in the registry + wake the OWNER back on dispatch completion. TDPLAN-0012 — 3 parts built in parallel against a frozen is_owner contract, verified end-to-end by devpulse.
@spawn: owner + registry_id written into the SEALED registry entries (authority lives in registry, not the self-editable passport). ensure_project_has_owner() now keys off citizen_class=manager (was earliest-created, which mislabeled @aipass) and writes the registry entry. get_owner()/is_owner() resolvers added. 315 tests, seedgo 100%.
@hooks: new registry_gate PreToolUse handler seals *_REGISTRY.json — blocks raw writes/tee/sed/rm + Edit/Write/MultiEdit, redirects to drone @spawn; per-clause bypass defeats compound-command smuggling; reads allowed. 82 tests, seedgo 100%.
@ai_mail: wake-back reslope — SKIP_SENDERS blocklist replaced by an is_owner allowlist. Only the project owner is woken when their dispatched agent completes; all other guards intact (depth cap, lock, occupancy, honest messaging, dispatch_wake.log). seedgo 100% on the changed file.

devpulse cross-part verify (REAL unmocked resolver): is_owner resolves devpulse-only; gate 13/13 incl compound-smuggle blocked + reads/drone-@spawn allowed; wake-back wakes owner / skips non-owner / respects depth-cap; 195 new-suite tests green together. Note: AIPASS_REGISTRY.json is gitignored — this ships the CODE; owner data regenerates per-install via ensure_project_has_owner. Still open (PART 4): gate watchdog+feedback on is_owner; portability of owner-only privileges across projects.
2026-07-10 00:46:17 -07:00
AIOSAIandClaude Opus 4.8 4105a7e8a7 chore(standards): all 17 branches to 100% — Windows-compat sweep + checker getattr fix
Windows-compat hardening across every branch to reach 100% on the seedgo
standards audit:
- UTF-8 stdout/stderr reconfigure guards (getattr form) on Rich/CLI entry points
- platform-branched POSIX-only subprocess kwargs (start_new_session ->
  CREATE_NEW_PROCESS_GROUP on win32)
- seedgo windows_compat checker: credit the getattr reconfigure form + locking test
- commons: shared-init test-suite speedup
- spawn: aipass_framework template — strip pytest.ini inline comments + add scaffold smoke test
- includes in-progress cross-OS testing work (doctor/init_flow/cross_os handlers + tests)

Verified: full audit 17/17 at 100%, pyright clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013uzDhtcZ6wT1T9e2AHPQig
2026-07-04 21:15:12 -07:00
AIOSAI e5e740765d fix(spawn): track template scaffolding orphaned by builder->aipass_framework rename
.gitignore exceptions still pointed at templates/builder/ after the TDPLAN-0010 rename (13463c0), so DASHBOARD.local.json + 10 other template dirs/files under templates/aipass_framework/ were silently gitignored — on disk (dirty tree passed) but absent in clean clones/CI. Result: spawn produced no DASHBOARD.local.json and test_full_spawn failed only in a clean checkout. Fixed all 23 .gitignore exception paths + tracked the now-visible template files (all placeholder/seed content: {{BRANCHNAME}}/{{DATE}}/{{CITIZEN_NUMBER}}).
2026-07-02 16:15:05 -07:00
AIOSAI e92dcaff12 fix(ci): restore green — advisory template checker no longer gates audit + 3 test/module regressions
Root-cause fixes for PR#646 red (dev broke after DPLAN-0226/FPLAN-0289/TDPLAN-0010 batch):
- seedgo: branch_audit honors ADVISORY (template_check no longer averaged into gate) + presence_gate added to hooks-snapshot fixture (4 tests)
- hooks: cc_sessions README entry + seedgo modules bypass (reads external ~/.claude, not branch data)
- spawn: retire passport(disabled).py/passport_ops(disabled).py to .archive/ (disabled suffix kept broken cross-import visible to type checker)
- ai_mail: broker-fd test gives testbranch a real .trinity/passport.json for the new marker-walk resolution (f914ab6)
2026-07-02 15:47:53 -07:00
AIOSAI fd41320e3c chore(spawn): seedgo bypass for stale post-rename 'builder' architecture finding (TDPLAN-0010) 2026-07-01 09:11:59 -07:00
AIOSAI 13463c0ce0 feat(spawn): rename builder->aipass_framework, {{CITIZEN_CLASS}} placeholder, retire birthright, per-project registry targeting (TDPLAN-0010, FPLAN-0294) 2026-07-01 08:16:54 -07:00
AIOSAI f6cbe34b61 feat(bridge): DPLAN-0226 unified TG<->CC bridge — CC-native session discovery, live-proven round-trip (FPLAN-0290/0291/0292) 2026-07-01 04:33:05 -07:00
AIOSAI 1794c8f954 fix(spawn): use json_handler.read_json for passport in adopt path
core.py adopt-path read the passport via json.loads(read_text()) — a direct
file op that fails the json_handler standard and the CI seedgo-audit gate.
Switch to json_handler.read_json() (matches the pattern ~90 lines above),
drop the now-unused 'import json as _json'. @spawn 100%; 315 spawn tests green.
2026-06-25 04:01:50 -07:00
AIOSAI fbf102c636 feat(memory,spawn): self-documenting .trinity state-tabs + todo delete-on-done discipline
- .trinity sections carry config-sourced rollover/keep/char-cap tabs; @memory owns
  values (render_all_meta_tabs), @spawn resolves placeholders at create via spawn_pusher
- todos confirmed rollover-exempt; vestigial rollover-config entry removed
- prep/memo/startup (Claude+Codex): delete finished todos, don't leave status:done
- @memory README documents the system
- FPLAN-0285, FPLAN-0286
2026-06-25 03:00:36 -07:00
AIOSAIandClaude Opus 4.8 72659eccbd feat(memory): FPLAN-0276 — unify memory limits into config single-source + cleanup
- memory.config.json is the single source of truth: char caps (entry_limits, global) + rollover counts (per_branch, materialized from registry); .trinity files stripped to a one-line _usage header
- changed_entries gate now matches by content identity, not array position — prepending a new entry never re-flags unchanged legacy entries (old=old, new=new; no trimming required on a cap change)
- rollover push command + top-level 'drone @memory push' alias; corrected config _note + --help (rollover push surfaced, labeled destructive system-wide reset)
- removed 3 dead functions: seed_per_branch, its orphaned write_config, add_learning + its tests
- spawn birthright/builder + LOCAL/OBSERVATIONS templates aligned to the stripped shape
- 966 tests, seedgo 100%

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 20:54:34 -07:00
AIOSAIandClaude Opus 4.8 7276e03021 feat(memory): DPLAN-0207 P3-P5 — unify spawn templates + /memo,/prep entry rule; manager.py E402 fix
P3: birthright+builder local/observations templates to unified schema (key_learnings dict->list, session_number->number, pattern/source->note, number+date+tags, schema 3.0.0)
P4: edit_gate verified list-aware via changed_entries dispatch — no code change needed
P5: /memo + /prep + memo SKILL carry the unified entry rule (stamp number+date, newest-on-top, prepend, no hand-trim)
Fix: manager.py E402 (import below logger) leftover from FPLAN-0273 hotfix — was blocking the .py diagnostics edit-gate

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 00:10:31 -07:00
AIOSAI a797f9d3d3 fix(git): kill post-merge friction — sync FF-only realign (not rebase), merge-not-squash docs, deterministic spawn registry 2026-06-11 15:21:58 -07:00
AIOSAI 83e65b3374 chore: gitignore PPLAN-*.md for plan-type consistency + spawn builder template registry id refresh 2026-06-11 13:53:40 -07:00
AIOSAI 17863ac4c5 refactor(shared): re-home aipass.common into its steward — src/aipass/aipass/shared (FPLAN-0260)
src/aipass/common was the only non-citizen directory in the agent namespace.
Per @seedgo design review: moved into @aipass (owner) as aipass.aipass.shared,
content byte-identical. @spawn imports across (blessed shared-infra category,
same as aipass.prax/cli). New subprocess guard test pins the bootstrap-safety
invariant (shared/ loads zero branch deps — aipass init stays pre-drone-safe).
9 import/doc sites updated, 9 documented seedgo bypasses (pre-infra leaf,
stdlib-only by design). aipass 480 + spawn 315 tests green, both audits 100%,
repo-wide zero refs to the old path.
2026-06-10 18:26:26 -07:00
AIOSAI 1e00119d9b fix(init): correct aipass init scaffold — project-specific AGENTS.md, README paths, my-agent->my_agent default, drop dead registry_path 2026-06-07 23:58:41 -07:00
AIOSAIandClaude Opus 4.8 9a64db9093 fix(spawn): seed todos[] into builder template .trinity/local.json (TDPLAN-0007 follow-up)
Verification audit caught a gap: spawn create copies templates/builder/ tree
directly (DEFAULT_TEMPLATE), but builder/.trinity/local.json lacked the todos[]
schema — so freshly spawned branches would not inherit it. Seeded todos[] +
max_todos:10 + todo_text_max_chars:200 + operational note to match @memory's
LOCAL.template.json. Now both spawn-create and template-push paths produce
todos[].

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 22:30:35 -07:00
AIOSAIandClaude Opus 4.8 626ab81a46 refactor(status): decommission entire STATUS flow — STATUS.local.md + central STATUS.md retired, replaced by local.json todos[] + dashboard count (TDPLAN-0007)
Cross-branch coordinated change. Per-branch STATUS.local.md (13) + central
STATUS.md deleted; all prompts/docs/skills/hooks/footer/scaffolding scrubbed.
Status-sync engine kept intact-but-inert (trigger registry unwired, 3 lines).
Replacement: operational todos[] in .trinity/local.json (@memory schema, capped,
rollover-exempt), pushed to all 13 branches + surfaced as dashboard todo_count.

Owners: memory (schema+global push+template), prax (dashboard todo_section +
engine dormant), trigger (unwire), aipass (init scaffolding), spawn (template
delete + todos[] seed), hooks (compact recovery), ai_mail (footer), seedgo
(_RUNTIME_ARTIFACTS cleanup), devpulse (scrub+delete+assemble).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 21:53:24 -07:00
AIOSAI f4b203a74e feat(standards): enforce Rich introspection formatting + 13 branches to seedgo 100%
- seedgo: new check_introspection_rich_formatting (delegation-aware) + introspection.md richness section + tests
- 13 branches: wrap print_introspection in Rich markup -> all at seedgo 100%
- S202 CLI polish: @hooks --help rewrite (hooksound on/off/status surfaced), spawn repair help clarity, drone Rich colour restore for --help/introspection/status
- flow: playbook plan-type (PPLAN) self-serve templates (default.md, sunday_merge.md SOP) + register-overrides-auto fix + --help rewrite
- hooks: setup.sh installs auto_process bridges + seedgo snapshot fixture learns them (TDPLAN-0005 followup, clears commit-gate blocker)
- remove orphaned devpulse/SETUP.md (vectorized to @memory)
- CHANGELOG [2026.W23]
2026-06-07 18:51:21 -07:00
AIOSAIandClaude Opus 4.8 e80e524dfe refactor(spawn): backups to single .spawn/.recovery namespace (TDPLAN-0006 P4)
Spawn's pre-merge JSON backups dropped a .recovery/ dir at each branch root,
which had accumulated 242 stale auto-gen DASHBOARD backups across 10 branches
(the original .recovery report that started this whole investigation).

- aipass.common.json_ops.backup_json gained optional backup_dir param
  (default unchanged = file_path.parent/.recovery, backward-compatible).
- spawn update engine (update_ops.py _merge_json) now passes
  branch_dir/.spawn/.recovery as the backup dest -> backups land under the
  spawn-managed .spawn/ dir, one namespace, not cluttering branch roots.
- Memory stays in the safety net: no memory-exclusion added; the engine just
  never touches .trinity/DASHBOARD on update so it never backs them up.
- 2 new tests (unit: custom backup_dir; integration: backup lands in
  .spawn/.recovery). 315 spawn + 438 aipass tests green; seedgo 100% both.

Stale .recovery backups swept separately (untracked/gitignored, local hygiene).
.recovery/ gitignore pattern already covers .spawn/.recovery/.

TDPLAN-0006 P4 — final phase. Closes the spawn update-safety + consolidation
work (P0 dry-run-default, P1 #636 engine, P2 shared lib, P3 import kill, P4
backup relocate).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 00:24:31 -07:00
AIOSAIandClaude Opus 4.8 14e134b8e6 refactor(common): extract aipass.common shared lib — dedup spawn/aipass (TDPLAN-0006 P2)
@spawn and @aipass each maintained their own copy of the JSON merge/handler
utilities and registry discovery. Collapsed into ONE branch-free package both
import: src/aipass/common/ (json_ops: deep_merge + backup_json ;
json_handler.JsonHandler ; registry_discovery.find_registry).

- aipass.common imports ZERO branch code → aipass/bootstrap.py (runs pre-drone)
  can depend on it without breaking the pre-infrastructure constraint. Verified:
  bootstrap zero-import intact, real aipass init still scaffolds a fresh project.
- Duplicate copies deleted: spawn keeps a thin re-export shim; aipass json_handler
  shrank 254 -> 88 lines; aipass find_registry dedup'd across structure_scanner,
  doctor, doctor_fix.
- save_json contract UNIFIED: raises ValueError on invalid structure (was
  return-False in aipass). All call sites + tests updated to the raise contract.
- find_registry dedup scoped to spawn<->aipass only; seedgo/drone copies flagged
  as follow-up.

Verified: 313 spawn + 434 aipass tests green; seedgo 100% both; aipass.common
branch-free; aipass init scaffolds post-refactor.

TDPLAN-0006 P2. P3 (move project-update into spawn, kill init_flow import) +
P4 (.recovery relocate) to follow.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 00:03:15 -07:00
AIOSAIandClaude Opus 4.8 ccc8d6a97b fix(spawn): dry-run-default + path-based update engine — kill #636 branch-scrambler (TDPLAN-0006 P0+P1)
#636: drone @spawn update would scramble every branch's identity/memory in
one command. On a branch created seconds earlier, --dry-run proposed 30 renames
rotating identity dirs (apps->.trinity->.seedgo->.claude->.archive->.aipass),
README->DASHBOARD, and deep-merged stale template into live .trinity/. Root
cause: the CREATE path regenerated template-registry IDs in filesystem-walk
order (!= the master's hand-crafted IDs), so content-hash + rename-detection
saw a mismatch on a pristine branch. update --all would have destroyed all 13
citizens at once.

P0 — safety by default:
- update + repair are now dry-run by default; --apply required to write.
  Forgotten flag = safe preview-only no-op. --dry-run kept as alias.
- doctor_fix.py repair suggestions emit the matching --apply form
  (+ aipass test_doctor_fix updated to the new contract).

P1 — engine rebuild (update_ops.py v2.0):
- Path-based named-managed-files model replaces whole-tree hash-diff +
  rename-detection. ID divergence is moot — IDs are no longer used.
- .trinity/*, DASHBOARD.local.json, artifacts/birth_certificate.json,
  .seedgo/bypass.json = delivered on CREATE only, NEVER touched on update.
- Old ID engine (change_detection.py, reconcile.py) + orphaned tests deleted.

Verified on fresh sandbox: update --dry-run = 0 renames / 0 updates / 0
additions (create==update invariant); no-flag run = dry-run preview, filesystem
byte-identical; 313 spawn tests green; seedgo 100% (all 36 standards).

Closes #636. P2/P3/P4 (shared lib, seam, .recovery relocate) to follow.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 22:54:09 -07:00
AIOSAI abf929fc1c fix: update tests for post-hooks migration — git_gate imports new handler, bootstrap drops hook shipping assertions 2026-05-22 15:10:57 -07:00
AIOSAI ece29256f4 feat: hooks branch — hook engine + bridge wiring (DPLAN-0184 Phase 1) 2026-05-18 20:43:30 -07:00
AIOSAI 60c36cccc6 feat: seedgo 100% compliance across all 12 branches + close-pr command 2026-05-16 19:55:47 -07:00
AIOSAI 482f4e7b06 docs: update 7 branch READMEs with accurate state + switch dispatch default to sonnet + codex setup + gitignore memory_pool 2026-05-16 16:41:02 -07:00
AIOSAI 2070ec1ea9 feat: structure repair system + init hardening + .venv convention + scaffold source-of-truth
- Build repair module (spawn): move_branch, cleanup_pollution, dry-run, ARCHIVE_EXCLUDE
- Build doctor --fix (aipass): remediation reports, --json output
- Execute Compass repair: cleaned init pollution, relocated navigator
- Execute AIPL repair: moved polyglot to src/aipl/polyglot/
- Add _guard_init() to bootstrap.py: blocks init inside agents/projects at function level
- Add parent-passport check to spawn core.py: prevents nesting
- Scanner: +_SCAN_SKIP_DIRS, +project root exclusion, +package-aware placement
- .venv convention: external projects symlink to AIPass/.venv, init creates, update adds, doctor detects
- Scaffold: CLAUDE.md/AGENTS.md/GEMINI.md copy from AIPass source files
- Global prompt: copy from .aipass/project_global_prompt.md template
- Update output: shows what changed (not just generic success message)
- Registry auto-heal: sync_registry detects ../paths escaping project, update triggers heal
- CLAUDE.md reformatted to PROMPT_STYLE.md
- Tests updated for new init/update behavior (source-copy, guard, .venv)
2026-05-15 23:17:44 -07:00
AIOSAI e7de852d4a feat: aipass init pip-ready structure + flow close self-healing + S146-S148 changes 2026-05-14 19:15:30 -07:00
AIOSAI b375144791 test: coverage improvement — api 56→84%, cli 69→93%, flow 61→71%, aipass 60→65% (total 73→76%) 2026-05-12 23:21:17 -07:00
AIOSAI 453c847359 fix(ci): auto-format on commit, decouple lint from tests, add codecov threshold 2026-05-12 22:41:03 -07:00
AIOSAIand@devpulse f93647d7d1 feat(system): DPLAN-0172 Round 3: fix last 11 Windows test failures
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-10 21:44:35 -07:00
AIOSAIand@devpulse 531e66106c feat(system): DPLAN-0172 Phase 3 Round 2: fix remaining 30 Windows test failures
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-10 21:30:18 -07:00
AIOSAIand@devpulse ee6b36417a feat(system): DPLAN-0172 Phase 3: Windows compat fixes across 9 branches — 39 files
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-10 21:02:53 -07:00
AIOSAIand@devpulse aee28993f5 feat(system): fix spawn fcntl import for Windows — platform guard like trigger/watchdog
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-10 20:02:08 -07:00
AIOSAIand@devpulse b0bf6a393a feat(system): DPLAN-0169 dashboard overhaul + repo cleanup
Co-Authored-By: @devpulse <devpulse@aipass>
2026-05-10 00:11:43 -07:00
patrickand@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
patrickand@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
patrickand@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
AIOSAIand@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
AIOSAIand@spawn 92da1c07a2 feat(spawn): S117 stress test @spawn
Co-Authored-By: @spawn <spawn@aipass>
2026-04-27 00:06:43 -07:00
AIOSAIand@devpulse 5fda6e9b8f feat(system): fix: DPLAN-0157 pre-commit hook + DPLAN-0158 watchdog reply detection
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 22:26:44 -07:00
AIOSAIand@devpulse 27d55f91d1 feat(system): DPLAN-0154: dedicated agent branches — passport git_branch field + drone routing
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 10:48:36 -07:00
AIOSAIand@devpulse 92e14308b2 feat(system): test(drone): improve line coverage on entry point + registry
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 07:59:19 -07:00
AIOSAIand@devpulse bc52ad85ea feat(system): test(seedgo): improve line coverage — architecture_check + proof standards + diagnostics (203 new tests)
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 02:14:43 -07:00
AIOSAIand@devpulse c09ff6debd feat(system): test(drone): cover all untested functions per TDPLAN-0003
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 01:18:15 -07:00
AIOSAIand@devpulse efc2730974 feat(system): fix: Python 3.10 mock.patch — ensure detector module imported before patching in rollover tests
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 01:15:23 -07:00
AIOSAIand@devpulse 09b4dff107 feat(system): fix: add handler import to all remaining apps/__init__.py + spawn template for Python 3.10 mock.patch compat
Co-Authored-By: @devpulse <devpulse@aipass>
2026-04-26 00:02:10 -07:00