Skip to content

v0.16.5 — Sinopia Design, voice input, ask a human, signed releases

Choose a tag to compare

@github-actions github-actions released this 28 Oct 05:18
· 53 commits to main since this release

New

  • Update notice for self-hosted runtimes. A standalone runtime built from a release checks the project's GitHub
    releases at start and every 12 hours, and shows a quiet "new version" notice with a link to the notes. It sends
    nothing but standard request headers. Turn it off with RUNTIME_UPDATE_CHECK=0.
  • Signed GitHub releases and a multi-arch image. A vX.Y.Z tag publishes archives for linux and macOS (amd64,
    arm64) with checksums.txt signed keyless with cosign (checksums.txt.sigstore.json) and a build provenance
    attestation, plus ghcr.io/ly-solutions/harnessly for linux/amd64 and linux/arm64 (X.Y.Z, X.Y, latest, and
    the -with-agents variants), signed and attested. Verification commands are in docs/deploy.md.
  • Sinopia Design. A design space for prototypes, sites and presentations, kept as plain folders on your machine.
    The board engine is bring-your-own: run harnessly design engine fetch on a machine with Claude Code logged in to
    your own account. See docs/design-engine.md.
  • Voice input. A microphone in the message field with built-in recognition (whisper.cpp). The model downloads on
    first use; audio stays on the machine. Needs ffmpeg (included in the Docker images). See docs/voice.md.
  • Ask a human. harnessly ask and harnessly ask approve put a question or an approval in a Telegram chat with
    buttons; the person answers in Telegram or on the page. Contacts and approvers are set in the People section of
    Settings, Notifications.

Changed

  • The Docker quick start is now docker run ... ghcr.io/ly-solutions/harnessly:latest (no local build). The README
    and docs/deploy.md start with Docker, release binary and source quick starts.
  • The hub is documented for self-hosting: spaces, invitations, sign-in by email code, passkey, GitHub, Yandex ID or
    OIDC, and machines opened at <id>.<machines domain> when HUB_RUNTIME_DOMAIN is set. The hub and its machine
    image are still built locally from this repository (docker compose -f compose.hub.yaml up -d --build).

Upgrade notes

Nothing updates itself; how you update is how you installed (docs/deploy.md).

  • Docker: pull the new image and recreate the container. The home volume keeps your password, workspaces and logins.

    docker pull ghcr.io/ly-solutions/harnessly:latest
    docker rm -f harnessly
    docker run -d --name harnessly -p 127.0.0.1:8022:8022 -v harnessly-home:/home/agent ghcr.io/ly-solutions/harnessly:latest

    With a pinned tag, put the new version in both places. With compose: docker compose pull && docker compose up -d.

  • Binary: download and verify the new archive, replace runtime (and agent, harnessly if you use them) and
    restart. The data in ~/.harnessly is kept. Under systemd the restart keeps tmux and the agents running.

  • From source: git pull && make run (or make install and restart the service).

/api/health reports the running version. Machines carried by a hub are updated through the hub.

Install

Docker: docker pull ghcr.io/ly-solutions/harnessly:0.16.5 (the image is latest too, and with-agents
adds Claude Code and Codex). Binaries: take the archive of your system below, harnessly_0.16.5_<os>_<arch>.tar.gz
(it holds harnessly, runtime and agent). How to run, verify and update:
docs/deploy.md.