# Master Bug Fix Plan: 2026-04-01-001

**Status:** MOSTLY COMPLETE. See status update below.

## Status update (Apr 1, evening)

Done today:
- Phase 1: archive docs verified. 5 active bugs moved to archive (installer-dependency-resolution, installer-deploy-order, release-pipeline-bugs, session-export-broken-paths, cc-watcher-retire).
- Phase 2: alpha released (v0.4.73-alpha.6). `ldm install --alpha` working from npm.
- Release pipeline bugs: all 3 fixed (semverNewer, cooldown skip, sub-tool version validation).
- Alpha install pipeline: built and working (npm source + local repo fallback).
- Branch protection: applied to 97 repos (squash disabled, PRs required).
- Installer docs updated for four-track model.

Still active (3 bugs):
- full-hardcoded-path-cleanup: deploys on next install
- hardcoded-paths-audit: same
- openclaw-auto-upgrade: device token scopes not auto-migrated

New bugs filed:
- memory-crystal/2026-04-01--cc-mini--memory-write-hook.md (guard + sync hook)
- memory-crystal/2026-04-01--cc-mini--memory-sync-plan.md (approved plan)

## Context

21 bug files across active, backup, release-pipeline, and archive folders. Several archive items are NOT actually done. The active bugs have overlapping fixes from this session that need verification. This plan consolidates everything into a single execution list.

## Status of all bugs

### ALREADY FIXED (verified, can move to archive)
- installer-dependency-resolution (PR #272, resolveLocalDeps)
- installer-deploy-order (PR #274, npm install before resolveLocalDeps)
- backup-tar-includes-archive (exclude deployed)
- guard-bugfix (three bugs fixed, released v1.9.59+)
- version-mismatch-deploy-gap (deploy-public ran)
- fix-install-cli-catalog-tmp (released v1.9.43+)
- dogfood-bug-sweep (all code fixes released)

### ALREADY FIXED BUT ARCHIVE SAYS OPEN (need to verify and update archive)
- bridge-deploy-targets: deployBridge() WAS built (PR #249, #251). Archive doc outdated.
- installer-skips-bridge-deploy: deployBridge() WAS built. Archive doc outdated.
- lesa-bridge-model-param: model param WAS fixed to "openclaw/{agentId}" (PR #247). Archive doc outdated.
- ldm-install-misses-updates: parent dedup and ghost cleanup WAS built (PR #238, #240). Archive doc outdated.
- launchagents-not-managed: plist templates and ldm install deployment WAS built (PR #236). Archive doc outdated.

### PARTIALLY FIXED (need remaining work)

**1. cc-watcher-retire** ... LaunchAgent disabled in code (v0.4.63) but the live LaunchAgent still runs (exit 78). Needs: `ldm install` to run the dead trigger cleanup. NOT a redesign priority.

**2. full-hardcoded-path-cleanup** ... All plugin source code fixed (PRs merged). Deployed extensions at ~/.openclaw/ fixed. BUT ~/.ldm/extensions/ copies still stale (updated on next install).

**3. hardcoded-paths-audit** ... Same as #2. Documentation of the audit. Most items fixed.

**4. openclaw-auto-upgrade** ... OpenClaw pinned in catalog. Bridge model param fixed. Scope header added. Dist patch applied. Remaining: device token scopes not auto-migrated on upgrade.

**5. session-export-broken-paths** ... Config override set. Files backfilled (913 in both locations). Remaining: plugin source still has hardcoded default (but config overrides it).

**6. backup-master-plan** ... OpenClaw cron removed. Config updated. Library doc updated. Docs created. Scripts deploy on every install. Remaining: stale backups for Parker to delete. LDMDevTools.app PID error (future).

### OPEN (need fixes)

**7. release-pipeline-bugs** ... Three bugs:
- Bug 1: version comparison (FIXED in PR #293, semverNewer)
- Bug 2: cooldown guard (FIXED in PR #305, skip for @alpha/@beta)
- Bug 3: sub-tool npm packages (accepted as-is, option 3)

## Execution plan

### Phase 1: Move verified-fixed bugs to archive (5 min)
Move these archive files that claim OPEN but are actually FIXED:
- bridge-deploy-targets -> verify and leave in archive (already there, just outdated)
- installer-skips-bridge-deploy -> same
- lesa-bridge-model-param -> same
- ldm-install-misses-updates -> same
- launchagents-not-managed -> same

### Phase 2: Release and install to close remaining gaps (10 min)
Release alpha with all merged fixes. `ldm install --alpha`. This:
- Deploys fixed scripts (backup, etc.)
- Deploys fixed docs
- Runs dead trigger cleanup (disables cc-watcher)
- Updates ~/.ldm/extensions/ copies
- Runs backup health check

### Phase 3: Verify everything (5 min)
- `ldm backup --dry-run` shows iCloud configured
- `ldm install --dry-run` shows no unnecessary updates
- `openclaw cron list` shows no backup-verify
- `launchctl list | grep cc-watcher` shows nothing (disabled)
- No hardcoded old paths in deployed extensions
- Bridge works: `lesa_send_message` succeeds

### Phase 4: Update bug docs with final status (5 min)
For each active bug, add a "Resolution" section documenting what was done and when.

### Phase 5: Recommend archive moves to Parker
Tell Parker which active bugs are ready to archive. He decides.

## Files to modify
- Bug docs in `ai/product/bugs/` (add resolution notes)
- Archive docs that are outdated (add "verified fixed" notes)

## Verification
- `ldm install --alpha --dry-run` clean
- `ldm backup --dry-run` shows iCloud
- Bridge round trip works
- No old paths in deployed code
- One backup trigger (3 AM LaunchAgent only)
