# v0.4.0: Dogfood Session (2026-03-15)

One dogfood session. Nine releases (v0.3.0 to v0.4.0). Seven bugs found and fixed. One new feature shipped.

## What happened

Parker ran the install prompt on a machine with LDM OS already installed. Every friction point became an issue, a fix, and a release. Same session. No context switches.

## Bugs fixed

- **v0.3.2:** CLI self-update warning after install. Update checker is in the new CLI the user doesn't have yet (chicken and egg).
- **v0.3.2:** `ldm doctor --fix` now cleans stale hook paths from settings.json.
- **v0.3.3:** /tmp/ paths flagged as stale even when the file still exists (survives until reboot, then breaks).
- **v0.3.4:** version.json auto-syncs when CLI version drifts after npm upgrade.
- **v0.3.5:** CLI binaries installed from npm registry instead of local /tmp/ clone. Three CLIs were symlinked to /tmp/.
- **v0.3.6:** SKILL.md prompt checks extension updates before presenting summary to user.

## New feature

- **v0.4.0:** `ldm stack` command. Pre-defined tool stacks: core (Memory Crystal, DevOps Toolbox, 1Password, mdview), web (Playwright, Next.js, shadcn, Tailwind MCP), all (everything). `ldm stack install core --dry-run` shows what's missing. `ldm stack install core` installs it.

## Docs

- Reorganized `docs/` into feature folders (universal-installer/, acp/, skills/, recall/, shared-workspace/, system-pulse/)
- Added Capture Architecture section to Memory Crystal ARCHITECHTURE.md
- Added fresh-install-stack.md and ldm-stack-spec.md to plans
- Added Lesa's shared agent memory feedback doc

## What we learned

Dogfooding finds bugs that testing doesn't. The install prompt is the product surface. Every confusing message, every stale path, every version mismatch is a bug.
