devforge 0.3.0

Dev environment orchestrator — docker, health checks, mprocs, custom commands via TOML config
Documentation
# 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