# v0.0.3

## What's Changed since v0.0.2

### New Features

- **API configuration UI** — Add API key, base URL, and model configuration support via Settings panel (`PUT /api/env`)
- **Container CWD fix** — Set container working directory to `/workspace/<basename>` for single-workspace tasks so Claude operates directly in the repo instead of the parent `/workspace/` directory
- **Workspace layout instructions** — Generated CLAUDE.md now includes an explicit workspace layout section listing mounted paths, preventing Claude from writing files to ephemeral container paths outside the mounted volume
- **Server restart resilience** — Preserve in-progress tasks across server restarts; recreate missing worktree directories from surviving git branches
- **Mobile card management** — Add status transition buttons (Cancel, Retry, Archive) for mobile-friendly card management without drag-and-drop
- **Keyboard shortcuts** — Esc key support to close CLAUDE.md edit window and sandbox monitor modal
- **Event timeline improvements** — Distinguish system events from Claude output in task event timeline

### Bug Fixes

- **Commit pipeline losing changes** — Fix commit pipeline silently losing task changes due to incorrect staging
- **Task diff accuracy** — Fix task diff showing irrelevant changes from other tasks; improve merge-base fallback to never silently skip diff on error
- **Base-hash capture ordering** — Fix base commit hash captured at wrong point in pipeline
- **Session recovery on timeout** — Salvage session_id from partial NDJSON output when container times out, enabling resume
- **Commit message style** — Use path prefix convention for host-side commit messages; use global git identity
- **Waiting task styling** — Use neutral styling for waiting task output instead of error styling; fix card-error-text visibility
- **Settings UI** — Fix undefined `closeSettings` reference in env config editor
- **UI overflow fixes** — Fix task input overflow in backlog column; fix CLAUDE.md editor overflow; remove scrollbar from add-task input on long text; fix mobile input box missing left margin
- **Stale result text** — Hide stale result text on in-progress task cards
- **Retry button visibility** — Hide retry button for done tasks, keep only for cancelled

### Internal

- **Event type enum** — Convert `eventType` from string to typed enum for type safety
- **Test coverage** — Add tests for base-hash capture, retry cleanup, and commit pipeline edge cases
- **Removed PROGRESS.md** — Remove automatic PROGRESS.md generation from commit pipeline
- **UI cleanup** — Merge cancelled column into done column with distinct styling; remove redundant re-init button from main UI

### Full Changelog

https://github.com/changkun/wallfacer/compare/v0.0.2...v0.0.3
