# Changelog
## [0.3.0] - 2026-02-26
### Features
- **Env file templates** — `env_files` entries now support an object form with a `template` field. If the target file doesn't exist, devforge copies the template before running preflight checks. This eliminates the need for custom bootstrap logic in consumer xtask binaries.
```toml
[[env_files]]
path = "safe-route/.env"
template = "safe-route/.env.example"
```
Plain string entries (`env_files = [".env"]`) continue to work unchanged.
## [0.2.0] - 2026-02-26
### Features
- **TCP health checks** — new `tcp` check type using `TcpStream::connect` for services like Redis and Postgres that don't expose HTTP endpoints
- **URL scheme validation** — `url` health checks reject non-HTTP/HTTPS schemes at config parse time with a clear error
- **Health check mutual exclusivity** — exactly one of `cmd`, `url`, or `tcp` must be set per health check; ambiguous configs are now rejected at parse time
- **Health check error surfacing** — on failure, prints service name, check type, target, and specific reason (exit code + stderr for cmd, HTTP status for url, connection error for tcp)
- **Process manager abstraction** — new `[dev.runner]` config block with `type = "mprocs" | "shell" | "none"`, replacing the hardcoded mprocs dependency for the `dev` command
- `shell` runs an arbitrary command via `sh -c`
- `none` blocks on Ctrl+C (like `infra`) for manual workflows
- Omitting `[dev.runner]` infers mprocs for backward compatibility
## [0.1.0] - 2026-02-26
Initial release.
### Features
- Config-driven dev environment orchestrator via `devforge.toml`
- Docker Compose lifecycle management (up/down)
- Health checks: command-based (exit code) and URL-based (HTTP GET)
- Pre-launch hooks with conditional execution
- mprocs TUI integration
- Custom command definitions
- `.env` file loading and required tool checks
- `dev`, `infra`, and custom subcommands
[0.3.0]: https://github.com/thesandybridge/devforge/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/thesandybridge/devforge/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/thesandybridge/devforge/releases/tag/v0.1.0