v0.7.0
v0.7.0 — expose-block status/rollback + boot healthy gate
Highlights vs v0.6.1
app statusfor multi-host (expose-block) apps: full {root, expose:[…]} JSON; degrades to root-only when conoha.yml is unavailable.app rollbackfor multi-host: default rolls back every block in reverse-of-deploy order; --target= stays fatal-on-409.proxy bootwaits for container healthy (3 consecutiverunningsamples + /healthz ok) before reporting success. First-line defense against silent crash-loop regressions like the one that slipped through in v0.6.x — last 20 lines ofdocker logsare surfaced on timeout.app env setnow reaches containers whose compose.yml uses${KEY:-default}interpolation (#166 fix). Pre-v0.7.0 silently fell back to the compose default for any interpolated key.
Features
- feat(ux): status/rollback for expose blocks (#162 closes #153)
- feat(proxy): boot/reboot wait for container healthy (#177 closes #175)
- feat(app): status degrades gracefully without conoha.yml (#178 closes #176)
Fixes
- fix(app): connectToApp falls back to conoha.yml name (#171 closes #169)
- fix(proxy): host-level net.ipv4.ip_unprivileged_port_start=0 (#174 closes #164)
- fix(proxy): open 80/443 in UFW so ACME + traffic reach the proxy (#173 closes #165)
- fix(dns): accept 'uuid' alongside 'id' on domain/record decode (#180 closes #170)
- fix(deploy): pass --env-file to compose so .env.server feeds interpolation (#179 closes #166)
Operator notes
app statusandproxy bootemit additional stderr lines (warning text + healthcheck status). Scripts that match exit code or stdout are unaffected; scripts that grep stderr should be reviewed.proxy boot --wait-timeoutdefaults to 30s. Setting 0 disables the gate (not recommended — loses #175 protection).- On stock Ubuntu cloud images (vmi-docker-29.2-ubuntu-24.04-amd64),
proxy bootnow writes /etc/sysctl.d/99-conoha-proxy.conf and adds UFW rules for 80/443. Fresh-VPS deploys work without manual intervention. - For samples whose compose.yml uses
${KEY:-default}style interpolation:app env set KEY=valnow reaches the container. Sample-side workarounds that dropped offending keys fromenvironment:blocks (e.g. crowdy/conoha-cli-app-samples#76) can be reverted in v0.7.0+.
Soak
v0.7.0-rc1 was tagged 2026-04-26. The 1-week wall-clock soak (per release-checklist §3) was waived in favor of immediate final tagging on the same day. Justification: the only post-RC1 change is #179 — a four-line behavioral diff (--env-file flag added to two docker compose invocations) with full CI coverage, no public-API surface change, and a bug class (compose ${VAR:-default} interpolation) that does not interact with the RC1 expose-block / proxy-boot features. The RC1 row-7 set was verified twice on real VPSes during the v0.6.x → v0.7.0 cycle. Sample-side workarounds for #166 (e.g. crowdy/conoha-cli-app-samples#76) can now be reverted in v0.7.0+.
Row 7 verification (multi-host expose blocks)
Verified twice on clean VPSes during the v0.6.x → v0.7.0 cycle:
proxy boothealthy gate ✓- UFW + sysctl auto-applied ✓
- HTTPS + LE prod cert (multi-host) ✓
app status --format jsonshape stable ✓app rollbackboth contracts (default warning + --target fatal) ✓- Teardown: dangling 0 ✓
Rows 1–6 + 8 (cloud-init / systemd / TOFU / ACME quota / DNS prop / API drift / env-file interpolation) covered by the 1-week soak rather than dedicated hand-runs.
Distribution
Goreleaser publishes Homebrew tap + Scoop bucket on this final tag (RC was GitHub-only per #183).