Changelog

Short notes for yeet + catch releases.

May 31, 2026

v0.4.4

  • Web deploy terminals now keep the local output stream alive long enough to show the successful completion state instead of reporting a lost stream.
  • yeet service set <service> -p ... now points users to yeet init when an older catch install does not yet support published-port changes.

v0.4.3

  • yeet service set <service> -p ... can now update Docker published ports after a service exists, while --publish-reset makes intentional replacements explicit.
  • yeet run -p ... and yeet.toml now use the same persistent published-port model as follow-up service changes.
  • yeet info now shows saved published-port mappings for services that use yeet-managed network namespaces.

v0.4.2

  • The web deploy terminal now clips its header inside the rounded shell, so the deploy output panel corners render cleanly.

v0.4.1

  • Web deployments now render interactive TTY progress in the browser terminal instead of blank lines.
  • The web deploy command preview now includes the selected catch host as service@host, matching the CLI command you would run.

May 30, 2026

v0.4.0

  • Added yeet run --web, a browser-based deployment form for creating new services from a local project checkout.
  • Web deployments now include host validation, project file picking, and the same first-run options as the CLI, including networking, env files, service roots, ZFS, snapshots, Tailscale, and LAN settings.
  • The website homepage and manual now show the web deploy flow alongside CLI deployment examples.

May 28, 2026

v0.3.3

  • Service-root migrations now rewrite optional systemd EnvironmentFile=-... paths, so moved binary services no longer keep reading env files from the old root.

May 25, 2026

v0.3.2

  • yeet run <svc> <payload> now reuses saved yeet.toml run options on existing services, so payload-only redeploys no longer require restating network flags.
  • ZFS-backed service roots now allow existing datasets and non-empty mountpoints with warnings, making service recreation safer when persistent data already exists.

v0.3.1

  • Added automatic ZFS snapshots before service redeploys, Docker image updates, and ZFS-backed service-root migrations.
  • Added catch-wide snapshot defaults and per-service overrides with yeet snapshots defaults and yeet service set --snapshots=....
  • yeet service sync now mirrors snapshot overrides into yeet.toml for replay from another checkout.

May 24, 2026

v0.3.0

  • Added per-service roots so yeet run --service-root=... can place a service's files under a custom root on the catch host.
  • Added ZFS-backed service roots with --zfs, using a dataset name that catch accepts or creates and resolves to its mountpoint.
  • Added yeet service set for stopped-service reconfiguration, including service-root moves with --copy or empty-root changes with --empty.

May 19, 2026

v0.2.10

  • yeet docker update <svc...> can update multiple compose services in one command, including mixed svc@host targets.
  • yeet docker update --outdated now reports skipped scan issues instead of treating them as clean no-update results.
  • Docker image update checks now include command stderr in scan errors, making registry and DNS failures visible.

May 10, 2026

v0.2.9

  • --net=lan services now keep separate DHCP lease files, avoiding corrupt shared lease state when multiple services use LAN namespaces.
  • Remote sessions now close their stdin proxy reliably, preventing a rare hang during cleanup.

v0.2.8

  • yeet docker outdated now shows compact compose image update tables while keeping exact running and upstream digests available in JSON output.
  • yeet docker update --outdated updates only compose services with available image updates and streams the normal per-service update output.
  • Docker image checks now compare running containers against upstream registry digests for more accurate update detection.

May 3, 2026

v0.2.7

  • Yeet now ships with broader regression coverage across CLI routing, catch RPC, Docker, registry, TTY, installer, and service flows.
  • The standard local checks now enforce coverage, complexity, lint, and Go vulnerability gates before commits.

May 2, 2026

v0.2.6

  • Docker published ports on yeet-managed network namespaces now replay from catch state when catch starts.
  • Docker container restarts now keep yeet port forwarding in sync through Docker's external-connectivity callbacks.
  • Services with shared namespaces no longer clear each other's published-port rules during container churn.

v0.2.5

  • Docker startup prerequisites now avoid stop cascades when catch or yeet network units are refreshed.
  • Per-service Tailscale sidecars recover when LAN network namespaces are delayed during host boot.
  • Yeet refreshes the shared bridge namespace unit without interrupting an already-running namespace.

v0.2.4

  • Docker services on yeet-managed networks now come back more reliably after host reboots.
  • catch now installs Docker startup ordering so Docker waits for yeet's network plugin and service namespaces before restoring containers.
  • Existing hosts migrate their catch and network namespace systemd units during yeet init without forcing service redeploys.

April 12, 2026

v0.2.3

  • yeet logs now streams Docker Compose output reliably in interactive terminals instead of truncating or varying between runs.
  • yeet logs --no-tty once again prints Docker Compose service logs instead of returning a blank result.
  • yeet init now cross-builds catch correctly for Linux hosts when run from a macOS checkout.

March 29, 2026

v0.2.2

  • Docker Compose updates and deploys once again stream remote progress in interactive terminals.
  • Fixed Compose commands falling back to catch logs instead of staying attached to the yeet session TTY.

March 28, 2026

v0.2.1

  • yeet rm no longer hangs after the second confirmation prompt in interactive terminals.
  • Fixed terminal cleanup after remote prompts so the local yeet.toml removal prompt reads normally.

v0.2.0

  • Docker services on svc now recover automatically when their named network namespace is recreated.
  • Yeet now reconciles service-netns port forwarding to the current Docker endpoint state, removing stale DNAT rules during container churn.
  • Docker image deploys on svc no longer try to start a missing primary systemd unit before bringing containers up.

March 22, 2026

v0.1.4

  • Fixed --net=lan selecting the wrong parent interface on some hosts.
  • lan services now pick the host default-route interface more reliably unless --macvlan-parent is set.

February 19, 2026

v0.1.3

  • yeet ts <svc> update now runs a yeet-managed update flow for per-service Tailscale.
  • yeet ts <svc> update now asks for confirmation before upgrading.
  • Added pinned upgrades (yeet ts <svc> update <version>) and explicit official passthrough (yeet ts <svc> -- update).

January 17, 2026

v0.1.2

  • yeet run --env-file uploads env files and detects changes on deploy.
  • stage clear discards staged changes without applying them.
  • yeet tailscale setup streamlines Tailscale onboarding for hosts.

January 12, 2026

v0.1.1

  • yeet init can download and install catch from GitHub releases when using a released yeet (or --from-github).
  • Catch now reports a build/release version during init and info.

v0.1.0

  • Initial release.