Skip to content

Improve daemon lifecycle management #307

@timflannagan

Description

@timflannagan

The root CLI implicitly manages a local registry daemon when targeting localhost:12121 (the default iirc), but it only auto-starts and presents the opportunity for version drift as new releases are cut from this project.

Let's say we have an older daemon-managed registry container already running in your env. I upgrade my CLI version that contains newer function that affects the registry server. This can fail locally and forces me to also manually manage the registry myself.

There are also no arctl commands to stop/restart/upgrade that local daemon, so recovery requires manual Docker intervention. This creates confusing behavior for a couple of reasons:

  • arctl appears to “own” the local registry lifecycle, but only partially
  • The CLI can be newer than the local server it auto-connects to
  • Commands fail with API 404s caused by server/CLI drift, without any actionable remediation in the UX

Noticed while testing #286 locally. Had an existing env, ran make build-cli and was unable to test the changes:

$ ./bin/arctl skill delete vue --version v0.0.1
Deleting skill vue version v0.0.1...
Error: failed to delete skill: unexpected status: 404 Not Found, {"detail":"Endpoint not found. See /docs for the API documentation.","status":404,"title":"Not Found"}
Usage:
  arctl skill delete <skill-name> [flags]

Flags:
  -h, --help             help for delete
      --version string   Specify the version to delete (required)

Global Flags:
      --registry-token string   Registry bearer token (overrides ARCTL_API_TOKEN)
      --registry-url string     Registry base URL (overrides ARCTL_API_BASE_URL; default http://localhost:12121)
  -v, --verbose                 Enable verbose output
$ ./bin/arctl version                                                          1 ↵
arctl version v0.2.1-9-gc6f42bf
Git commit: c6f42bf
Build date: 2026-03-10
Server version: 0.2.1
Server git commit: 4671b1e
Server build date: 2026-03-04

-------------------------------
Server version is newer than local version: 0.2.1 > v0.2.1-9-gc6f42bf
We recommend updating your CLI version

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions