# Patch Notes

Patch notes are auto-generated by the `docs-generate` workflow after each
`feat/*` or `bug/*` branch merges to `staging`.

---

## v0.1.7 (2026-03-04)

### Features

- **cap012** — Docker backend support: Use Docker as a container backend with `--backend docker` or `CUTIP_BACKEND=docker`; install with `pip install cutip[docker]`

---

## v0.1.6 (2026-03-03)

### Features

- **cap010** — cutip from-compose: New `cutip from-compose <compose.yaml>` command converts an existing Docker Compose file into a CUTIP workspace (ImageCards, ContainerCards, Units, Groups)
- **cap013** — cutip --version: Added `--version` flag to the CLI

### Patch Notes

- **cap020** — from-compose restart_policy: `cutip from-compose` now correctly quotes `restart: "no"` and other boolean-looking values, preventing YAML 1.1 boolean coercion that caused `ContainerCard` validation to fail

---

## v0.1.5 (2026-03-03)

### Features

- **cap007** — Improve init scaffold, validate logs, group name match: `cutip init` scaffold keeps containers alive with `tail -f /dev/null` and logs connect/stop hints; `cutip validate` prints per-ref ✓/✗ progress; `cutip run` resolves group names by partial prefix without requiring exact match
- **cap008** — Docker-compose vs CUTIP comparison: New `docs/getting-started/why-cutip.md` with an honest side-by-side comparison and complex project walkthrough showing where CUTIP's structured orchestration adds value
- **cap009** — Scaffold simple + complex projects: `cutip init` now generates both a `simple` project (single container, ready to run) and a `complex` project (postgres + Python web app with pre-build hooks, health-check loop, and post-start exec verification)

---

## v0.1.4 (2026-03-03)

Internal developer tooling — no user-facing capability changes in this release.

---

## v0.1.0 (2026-02-28)

### cap005 — Remove deprecated --backend flag from e2e steps (2026-02-28)

- Removed the `--backend podman` argument from all `cutip run` calls in CI
- The `--backend` flag was deprecated when Podman became the sole supported backend

### cap004 — Add MIT license (2026-02-28)

- Added `LICENSE` file (MIT, copyright Joshua Jerome 2024)
- Added `license = { text = "MIT" }` to `pyproject.toml`

### cap003 — Remove non-existent [podman] extra from CI (2026-02-28)

- CI was installing `.[podman]` which no longer exists (podman moved to core deps)
- Changed all CI install steps to `uv pip install -e .`

### cap002 — Validate generated vars + extend _validate_vars to environment fields (2026-02-28)

- `_load_vars` now raises `CutipError` when a `generated:` var has an empty path value
  (previously silently resolved to project root, causing runtime mount errors like `statfs /sheets`)
- `_validate_vars` now checks `spec.environment` values in addition to mount source/target
  so empty required vars are caught before any container backend is contacted

---

### cap001 — Initial scaffold (2024-01-01)

- Established the CUTIP framework for defining container environments with YAML artifacts
- Implemented `ImageCard`, `NetworkCard`, `ContainerCard`, `Unit`, and `Group` models
- Added `CutipContext` for workflow orchestration
- Introduced `PodmanBackend` as the only supported container runtime
