Tags

Tags give the ability to mark specific points in history as being important
  • v1.8.2

    protected Release: swarmexec v1.8.2
    swarmexec v1.8.2
    
    Logs
    - New logfmt (key=value) format: level=info msg="…" ts=… — covers Go apps,
      the Docker daemon, HashiCorp tools, etc. Selectable via --log-format and the
      TUI F-cycle.
    - Fix: docker logs --timestamps now composes with structured formats; the
      leading RFC3339 stamp is stripped before json/gelf/logfmt decoding (was a
      silent fallback to raw).
    - Entry.Timestamp captured from the -t prefix and structured ts/time fields.
    
    UI
    - Richer placement diagnosis (why?): surfaces the real reason a node runs no
      task (a failed/rejected task's error + attempt count) instead of "eligible
      but no task scheduled", plus a docker service ps-style task table.
    
    Site
    - Release-notes page (de/en/es/fr), generated at build time from the git-tag
      changelogs; reachable at /releases.
  • v1.8.1

    protected Release: swarmexec v1.8.1
    swarmexec v1.8.1
    
    UI
    - Secrets: create a secret from the secrets tab (n) — name, multi-line value, labels
    - Secrets: delete a secret from the secrets tab (d); on service removal, offer to
      delete now-orphaned secrets
    - Services: remove a service from the inspect view (X)
    - Contexts: guided creation — explicit SSH toggle, jump hosts, test-connection
    - Fix: dialog kept focus when clicking beside a centred overlay
    
    init
    - Warn when --secret is passed but the agent secret already exists (kept, not applied)
    
    Site
    - Multilingual landing/docs (de/en/es/fr) with browser-language detection + switcher
  • v1.8.0

    protected Release: swarmexec v1.8.0
    swarmexec v1.8.0
    
    New features since v1.7.0 (all backward-compatible):
    
    - Nodes tab: cluster node info + aggregations (tasks, volumes, labels) and
      in-place node label editing.
    - Placement diagnosis (inspect: D): explains why a service isn't running
      everywhere — per-node exclusion reasons (drain/down/constraint/platform) and
      per-task scheduler messages.
    - :latest version check: resolves a service's real version behind the pinned
      digest, flags a newer registry image (↑), and offers a one-key update.
    - Networks: encryption (ENC) column + per-network encryption in inspect,
      create-network form (attachable/encrypted/internal/IPv6/MTU/subnet/labels),
      read-only network labels.
    - Volumes: create-volume form with labels (new CreateVolume agent RPC, additive)
      and read-only volume labels.
    - Service editors: force-update, service spec diff, resource-limits editor,
      network-alias editing from the network detail view; multi-line env, leave-guard
      and small-terminal footer fixes.
  • v1.7.0

    protected Release: swarmexec v1.7.0
    swarmexec v1.7.0 — service inspect editors: env, mounts, secrets, networks/aliases
    
    TUI service-inspect overlay gains full read-modify-write ServiceUpdate editing,
    plus quality-of-life fixes to the log view.
    
    ui:
    - env editor (`e`): staged KEY=VALUE list with edit-in-place; long values
      (e.g. GITLAB_OMNIBUS_CONFIG) open in a scrollable multi-line TextArea
      (Ctrl-S save, Esc cancel).
    - mounts editor (`v`): volumes and bind mounts (`volume:NAME:TGT[:ro]` /
      `bind:/host:TGT[:ro]`) with a soft bind guard warning which nodes the
      service could schedule on (host paths cannot be verified — agent has no
      host fs access).
    - secrets editor (`S`): add/remove secret references (mounted at
      /run/secrets/<name>).
    - networks editor (`n`): add/remove attachments with name autocomplete;
      select a network and press `A` to edit that network's DNS aliases.
    - inspect NETWORKS rows are collapsible (`+ net (N dns names)`), showing the
      service/task DNS names and aliases; `y` copies the selected line (OSC52).
    - Volumes tab: `A` attaches a volume to a service (reverse of the mounts editor).
    - staged editors share one generic list editor: a/e/d add/edit/delete,
      `y` copy (OSC52), `u` undo, `w` apply (rolling-update confirm), Esc cancel.
    - one adaptive bottom footer per view; auto-refresh pauses while an overlay
      is open.
    
    fixes:
    - log view caps its TextView via SetMaxLines so it stays responsive over long
      sessions (follow toggling no longer gets starved).
    
    No agent or wire-contract changes since v1.6.1.
  • v1.6.1

    protected Release: swarmexec v1.6.1
    swarmexec v1.6.1 — fix the site deploy trigger
    
    ci:
    - deploy-site now sends the downstream infrastruktur/swar-exec-site
      pipeline both IMAGE ($CI_REGISTRY_IMAGE/site) and VERSION as bare semver
      (1.6.1, not the v-prefixed tag), which it requires — the trigger used to
      return HTTP 400 and fail the release's deploy-site job.
    - site-image also pushes the bare-semver tag (site:1.6.1) next to :v1.6.1
      and :latest, so the downstream can pull $IMAGE:$VERSION.
    
    No client or agent changes since v1.6.0.
  • v1.6.0

    protected Release: swarmexec v1.6.0
    swarmexec v1.6.0 — log filtering, service inspect & editing, client logging
    
    logs:
    - format-aware parsing + filtering (classic/json/gelf/raw, min-level, grep)
      in the `logs` command and the TUI log view (live re-filter, format/level
      cycling, message grep).
    - `logs -f` follows a service across container replacement (rolling update /
      restart / reschedule), like `docker service logs -f`.
    - log view: toggle mouse capture for terminal select/copy.
    
    ui:
    - configurable shortcut keys via keys.yaml.
    - Networks tab: networks colour-coded by type; attach/detach a service to a
      network. Secrets: attach/detach a service to a secret (autocomplete).
    - inspect (`i`): tabular, operator-first view + raw-JSON toggle, with
      individually selectable/copyable lines. On a service it also edits via
      ServiceUpdate: scale, ports, labels and networks (staged editors).
    - single adaptive bottom footer describing the active view's keys.
    - the container tree auto-refreshes so background changes appear without `r`.
    
    client:
    - structured logging (slog) to a file and an in-memory ring, a toggleable
      in-TUI log viewer, and a responsiveness watchdog; container list refreshes
      off the UI goroutine so the TUI no longer stalls.
  • v1.5.1

    protected Release: swarmexec v1.5.1
    swarmexec v1.5.1 — faster volume sizes, volume search & bulk delete
    
    - agent: volume sizes are cached in the background (an initial scan at
      startup, refresh on volume create/destroy events, and every 10m) instead
      of a du-style scan per request, so the TUI's SIZE column fills almost
      immediately.
    - ui (volumes tab): "/" search filters by name/driver/node, "a" selects all
      displayed volumes, bulk delete runs with bounded parallelism and shows a
      progress overlay.
  • v1.5.0

    protected Release: swarmexec v1.5.0
    swarmexec v1.5.0 — Contexts tab, volume bulk-delete & prune
    
    UI:
    - New Contexts tab: list docker contexts, create/delete them, and activate
      one (u/Enter) — which restarts the UI against that cluster. The active
      context is always shown in the footer.
    - Volumes: select multiple with space and delete (d), or prune every volume
      no running container mounts and no service declares (P) — each behind a
      confirm. Footer redesigned to two lines (key hints + consolidated status).
    - Fix: aligned the container columns in the network detail view.
    
    Site: a before/after demo GIF (docker exec vs swarmexec) at the top of the
    README and on the landing page.
    
    CI: the site deploy now fires via a pipeline trigger token instead of the
    multi-project trigger bridge.
  • v1.4.0

    protected Release: swarmexec v1.4.0
    swarmexec v1.4.0 — richer service rows in the UI, site polish
    
    UI:
    - The interactive containers tree now shows each service like a
      `docker service ls` line — mode (replicated/global/…-job),
      running/desired, image and published ports.
    
    Site:
    - A favicon (terminal-prompt mark), a robots.txt, an Umami session
      recorder on the landing and docs pages, and a new privacy-notice
      section disclosing the recording.
  • v1.3.0

    protected Release: swarmexec v1.3.0
    swarmexec v1.3.0 — Networks and Secrets in the interactive UI
    
    Two new read-only tabs in `swarmexec ui`:
    - Networks (4): driver, scope, type, and the services/containers attached
      to each network (containers nested under their service).
    - Secrets (5): metadata, a used-by count, and the services/containers that
      reference each secret. Secret values are never shown — the Docker API
      does not expose them.
    
    Also in this release: per-service health in the container tree
    (running/desired count + health color), fold markers (▸/▾) with working
    h/l folding, and a site analytics + privacy page.
  • v1.2.0

    protected Release: swarmexec v1.2.0
    swarmexec v1.2.0 — manage Docker contexts from the client
    
    New `swarmexec context` command group (alias `ctx`): create, ls, use, rm.
    It writes docker's own on-disk context store, so contexts created here are
    interchangeable with the docker CLI — and you no longer need docker
    installed even to create one.
    
    - context create <name> --docker-host <ssh://|tcp://|unix://|npipe://> [--description] [--use]
    - context ls [--json]   context use <name>   context rm <name>… [-f]
    
    Pure local file operations; no wire-protocol change, a running agent stays
    compatible. The /docs page documents the new command.
    
    Also: first release to run the deploy-site CI trigger (from "added trigger").
  • v1.1.5

    protected Release: swarmexec v1.1.5
    swarmexec v1.1.5 — TUI search: show how to leave it
    
    The interactive search bar now surfaces its exit keys: while the search
    field has focus the footer shows "type to filter · Enter keep filter &
    exit · Esc clear & exit", and the empty field carries a placeholder.
    Esc/Enter already worked — this only makes them discoverable.
    
    No API or wire-protocol change; a running agent stays compatible.
    
    (This tag also rebuilds the site image, which now carries the /docs
    client documentation page and a fixed container healthcheck — both
    site-only changes already on main.)
  • v1.1.4

    protected Release: swarmexec v1.1.4
    swarmexec v1.1.4 — agent image defaults to Docker Hub
    
    `swarmexec init` now deploys the agent from Docker Hub by default:
    docker.io/logleio/swarmexec-agent:latest, a public image, so init needs no
    `docker login`. Releases are still mirrored to the GitLab registry, and
    SWARMEXEC_AGENT_IMAGE / --image override the source (pin a version or use
    the mirror).
    
    Agent detection follows the rename: label-first (swarmexec.role=agent),
    with an image-name fallback that now matches both the Docker Hub name and
    the legacy GitLab name, so a cluster mid-migration is recognized either
    way. The deploy manifests carry the role label too.
    
    No API or wire-protocol change; a running agent stays compatible.
  • v1.1.3

    protected Release: swarmexec v1.1.3
    swarmexec v1.1.3 — canonical URLs moved to the cs-public namespace
    
    The repository moved from gitlab.logle.io/internal-tools/swarm-remote-exec
    to .../cs-public/swarm-remote-exec, and the container registry path moved
    with it. This release repoints the canonical references.
    
    - init: `swarmexec init` now deploys the agent from
      registry.logle.io/cs-public/swarm-remote-exec/agent by default.
    - deploy manifests, NOTICE, README, site and Docker Hub description now
      point at the cs-public namespace.
    
    No API or wire-protocol change; a v1.1.x agent stays compatible. GitLab
    still redirects the old paths, so an existing deployment keeps working
    until it is next re-deployed.
  • v1.1.2

    protected Release: swarmexec v1.1.2
    moved to public
  • v1.1.1

    protected Release: swarmexec v1.1.1
    swarmexec v1.1.1 — port-forward UI polish
    
    Client-side only; no wire-protocol change, so a v1.1.0 agent stays
    compatible and does not need redeploying.
    
    - ui: the tree marker now shows local→remote (e.g. "19090→3002"), so the
      container port a forward lands on is visible on the main view, not only
      in the Forwards tab.
    - ui: the forward-detail overlay is left-aligned (it reused a modal that
      centered each line, shearing the key/value block).
    - ui/cli: surface how to stop a forward — the CLI prints "press Ctrl-C to
      stop", and the detail overlay shows "d stop · Esc close" and accepts d.
  • v1.1.0

    protected Release: swarmexec v1.1.0
    swarmexec v1.1.0 — port forwarding
    
    Port forwarding: bind a local port and reach a port inside a container
    anywhere in the swarm, without publishing it on the cluster. Available as
    `swarmexec port-forward [local:]remote` and from the TUI with `p`, plus a
    Forwards tab (3) to manage running forwards.
    
    The agent reaches the target by joining its network namespace via a
    sidecar from its own image — it generally shares no network with the
    target. See DESIGN-port-forward.md for the constraint and the
    measurements.
    
    Wire protocol: adds the PortForward RPC (CONTRACT.md §3.2). Additive, so
    the proto version stays swarmexec/v1 and older clients keep working. A
    NEW client against an agent older than this release reports "agent is
    older than this client — update it with `swarmexec init --force`", so
    roll the agent out before relying on forwards.
    
    Also in this release:
    - Relicensed from proprietary to Apache-2.0, with NOTICE and a
      CONTRIBUTING.md requiring DCO sign-off.
    - fix(resolve): dial the leader's real address instead of its hostname.
    - fix(ui): restore vim movement in the overlay lists.
    - Landing page for swarm-exec.logle.io, hardened as a non-root container.
  • v1.0.29

    protected
    v1.0.29
    
    - docs(dockerhub): link the GitLab repository from the Hub overview
      (re-syncs the Docker Hub description via the release pipeline).
  • v1.0.28

    protected Release: swarmexec v1.0.28
    v1.0.28
    
    - ci: mirror the agent image to Docker Hub on release
      (docker.io/<ns>/swarmexec-agent:<version> + :latest for stable) and sync
      the Hub repo description from dockerhub/overview.md.
  • v1.0.27

    protected Release: swarmexec v1.0.27
    v1.0.27
    
    - fix(ui): volume selection now matches the displayed (sorted) order, so
      delete/nodes/'i' act on the highlighted volume; add an animated
      size-loading spinner on the SIZE header. Client-only.