Files
AIPass/.gitignore
T
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

130 lines
3.1 KiB
Plaintext

# Virtual environment
.venv/
# Python
__pycache__/
*.pyc
*.egg-info/
dist/
build/
.pytest_cache/
.ruff_cache/
.coverage
# ChromaDB
.chroma/
# Secrets
.env
.devpulse_secret.md
# OS
.DS_Store
.vscode
# AIPass runtime state (local to each installation)
AIPASS_REGISTRY.json
.trinity/
!src/aipass/spawn/templates/*/.trinity/
.ai_mail.local/
ai_mail.local/
.feedback.local/
DASHBOARD.local.json
STATUS.local.md
STATUS.md
dev.local.md
CLOSED_PLANS.local.json
.ai_central/
system_logs/
notepad.md
# Plans (managed by flow, local to each installation)
FPLAN-*.md
DPLAN-*.md
RPLAN-*.md
TDPLAN-*.md
# Branch local directories
logs/
artifacts/
dropbox/
tools/
docs.local/
.archive/
.backup/
.backup_system/
.recovery/
.seed/
.spawn/
# Module runtime JSON (config/data/log per command)
**/*_json/
# Branch-specific runtime files
src/aipass/memory/config/fragmented_memory_config.json
src/aipass/memory/config/fragmented_memory_state.json
src/aipass/memory/config/memory_bank.config.json
src/aipass/memory/config/.plans_processed.json
src/aipass/trigger/trigger_data.json
src/aipass/trigger/trigger_data.lock
src/aipass/drone/drone_command_registry.json
src/aipass/flow/CLOSED_PLANS.local.json
src/aipass/seedgo/apps/standards/aipass/pack.json
# Claude Code local state
.claude/hooks/__pycache__/
.claude/hooks/.last_diagnostics_file
.diagnostics_state.json
.claude/hooks/probes/last_ping.jsonl
.claude/worktrees/
# Disabled files (AIPass convention: rename with (disabled) instead of delete)
*(disabled)
# Private integrations — driver layer (@api) and wrapper layer (all branches)
# Per DPLAN-0133. Contents gitignored; only scaffold README.md tracked.
src/aipass/*/apps/integrations/**
!src/aipass/*/apps/integrations/README.md
# Spawn template exceptions (template files must be tracked for public repo)
!src/aipass/spawn/templates/builder/.trinity/
!src/aipass/spawn/templates/builder/.trinity/**
!src/aipass/spawn/templates/builder/.ai_mail.local/
!src/aipass/spawn/templates/builder/.ai_mail.local/**
!src/aipass/spawn/templates/builder/.archive/
!src/aipass/spawn/templates/builder/.archive/**
!src/aipass/spawn/templates/builder/.spawn/
!src/aipass/spawn/templates/builder/.spawn/**
!src/aipass/spawn/templates/builder/.claude/
!src/aipass/spawn/templates/builder/.claude/**
!src/aipass/spawn/templates/builder/*_json/
!src/aipass/spawn/templates/builder/*_json/**
!src/aipass/spawn/templates/builder/logs/
!src/aipass/spawn/templates/builder/logs/**
!src/aipass/spawn/templates/builder/artifacts/
!src/aipass/spawn/templates/builder/artifacts/**
!src/aipass/spawn/templates/builder/dropbox/
!src/aipass/spawn/templates/builder/dropbox/**
!src/aipass/spawn/templates/builder/tools/
!src/aipass/spawn/templates/builder/tools/**
!src/aipass/spawn/templates/builder/docs.local/
!src/aipass/spawn/templates/builder/docs.local/**
!src/aipass/spawn/templates/builder/DASHBOARD.local.json
!src/aipass/spawn/templates/builder/STATUS.local.md
# CI artifacts
windows-pytest-results/
# Parked / one-off
HERALD.md
backup_data/
backups/
backup_system/
readme_history/
branch_audits/
claude_4_7_transition_notes.md
README_ORIGINAL_DISABLED.md
*.bak
test/
sandbox_test/