Unreleased
v0.1.0-beta.5 - 2026-06-16
- Added structured, JSON Patch-backed plan diffs for
dotenv/2,ini/2,yaml/2, and template assign metadata, with human-readable public changes and separate redacted paths/assigns in plan output/artifacts. - Added provider-neutral endpoint projection for HTTP monitor metadata and a thin Gatus provider DSL that emits ordinary structured YAML config resources, including
gatus_monitor_endpoints/1for rendering previously declared monitors. - Added
release/2, a small service DSL helper that emits plain version-directory and current-symlink resources for binary release layouts. - Added down-plan coverage summaries to generated down plans and
mix host_kit.downoutput. - Added typed systemd timer schedule helpers:
daily,weekly,monthly,jitter,repeat_after, andafter_boot. - Fixed local
--sudoapply writes so root-owned directories/files use sudo-aware local runner operations.
v0.1.0-beta.4 - 2026-06-15
- Added
mix host_kit.read,mix host_kit.audit, andmix host_kit.factswrappers for runtime introspection APIs. - Expanded
HostKit.Facts.collect/2to return structured users, systemd failed units, and listening ports. - Added
dotenv PATH do ... endas the format-style explicit env-file DSL, plus redacted env-file secrets viasecret KEY, env: :redacted, file/command secret sources, and richer safe public-value config diff output. - Added
argv/2for structured command-line construction with configurable CLI option styles. - Normalized
daemon/job/scheduleunit names so suffixless names get.service/.timerand atom names use the configured unit prefix.
v0.1.0-beta.3 - 2026-06-15
- Replaced service-scoped
root_path/2with unifiedpath/2; conventional service roots are scoped by service context, while custom/global roots remain root-relative. - Removed the separate service path override directive; use
service :name, path: "slug"and sharedHostKit.Naminghelpers for path/identity normalization. - Centralized generated recipe/provider names in
HostKit.Naming, including readiness names, ingress route names, workspace unit/user names, Elixir release names, and command/resource names. - Added first-class EEx template resources via
template PATH, from: ..., assigns: ...; templates are inspectable resources, render to managed files during read/apply, and reject secret assigns until redacted template diffs exist. - Added structured config file resources via
ini/2andyaml/2, including an INI block DSL withsection/set,ymlrscalar rendering,yaml_elixirYAML public-path reads, secret-aware INI key/YAML path comparison for redacted values, and explicit rejection of redacted config rendering. - Added
symlink PATH, to: TARGETresources with local/remote read support, apply support, rollback deletion, and documentation. - Added
target_hostfor selecting a nested instance host when an instance has multiple connection endpoints. - Documented instance backend authoring callbacks and clarified instance down-plan ordering.
- Added semantic tests for persistent/ephemeral instance rollback behavior and nested content target selection.
- Added
HostKit.Project.read/2,HostKit.Project.audit/2, andHostKit.Facts.collect/2for runtime read/audit/introspection workflows. - Added README and Livebook examples for structured config resources and redacted generated secrets.
v0.1.0-beta.2 - 2026-06-14
- Added generic
instanceDSL for lifecycle-managed compute boundaries with backend selection, nested host endpoints, nested services/resources, and target-scoped content planning. - Added Incus instance backend support for launch/start/delete, proxy port exposure, readiness checks, and demo SSH bootstrap.
- Added backend-neutral
mix host_kit.instance status|ensure|destroy INSTANCE [config.exs]for declared instance lifecycle. - Added declarative backend options on
backend, including block form withoption, without leaking backend-specific flags into genericplan/apply. - Added instance lifecycle apply events for launch, port exposure, readiness, and SSH bootstrap progress.
- Reworked Livebook demo VM helper to use HostKit instance lifecycle and expose both Caddy and Phoenix demo ports.
- Polished Phoenix Livebook to match the explicit Target / Declare / Plan / Deploy / Verify flow with Kino summaries and no hidden apply/verify checkboxes.
- Added SSH connection retry policy via
ssh retry: ...with apply progress events for retry start/success/exhaustion. - Added negative-path coverage for failed initial SSH connection and mid-apply transport failure handling.
- Improved plan/read-error formatting and compact Inspect output for plans, changes, and common resources.
v0.1.0-beta.1
- Included Livebook demos and internal architecture guide in Hex package docs.
v0.1.0-beta.0
Initial beta release.
- Added HostKit host-based CLI targeting with
mix host_kit.plan --host NAME config.exsandmix host_kit.apply --host NAME .... - Added host SSH DSL settings, including environment-backed control-plane secrets via
secret_env/1. - Added inspectable plan/apply artifacts and package lock workflow.
- Added Repology-backed semantic package resolution with cache/rate-limit support.
- Added Incus integration helper for Linux-native remote bootstrap tests.
- Added
misebootstrap resources for BEAM tool installation.