# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com),
and this project adheres to [Semantic Versioning](https://semver.org).

## [0.3.0] - 2026-04-13

### Added

- `--add` flag for optional packages driven by `priv/packages.yml`
- Available packages: `claude`, `codex`, `gemini`, `postgres`, `flyio`
- `--no-firewall` flag to skip firewall setup entirely
- Auto-detect Elixir and Erlang/OTP versions from runtime (no more hardcoded defaults)
- Prerequisites section in post-install output (Docker, devcontainer CLI)
- Troubleshooting section in README
- `yaml_elixir` compile-time dependency for package definitions

### Changed

- Claude Code is no longer installed by default — use `--add claude`
- Firewall base domains reduced to GitHub and Hex.pm only; package-specific domains added via `--add`
- `init-firewall.sh` is now an EEx template (`init-firewall.sh.eex`)
- `--elixir-version` defaults to `System.version()` instead of `1.18.3`
- `--erlang-version` defaults to detected OTP version instead of `27.3.3`

### Fixed

- npm global install permission error in container (added `sudo`)
- `ipset` duplicate IP error when multiple domains resolve to same address (added `-exist` flag)
- Git "dubious ownership" error for bind-mounted `/workspace` directory
- Docker seccomp filter blocking bubblewrap sandboxing (added `seccomp=unconfined`)

## [0.2.0] - 2026-04-12

### Changed

- Renamed project to DevCon 4 (from rodar_devcontainer)
- Converted from Igniter dependency to standalone Mix archive
- Installer is now `mix devcon4.install` (no longer requires adding a project dependency)
- Existing files are skipped by default instead of warning

### Added

- `--force` flag to overwrite existing devcontainer files
- Firewall script is automatically set as executable

### Removed

- Igniter dependency
- rodar_release dependency

## [0.1.0] - 2026-04-03

### Added

- Igniter installer (`mix igniter.install rodar_devcontainer`)
- Dockerfile template with Elixir, Node.js, Claude Code, and dev tools
- devcontainer.json template with volume mounts and firewall setup
- Restrictive outbound firewall (GitHub, Hex.pm, Anthropic API)
- Configurable Elixir/Erlang versions, Ubuntu release, and timezone
- VS Code extension support (ElixirLS)
