Repository navigation
0.1.3 - 2026-09-17
Release Notes
Added
-
hamstik org use <slug>andhamstik project use <key>now auto-create a
config profile on-the-fly whenHAMSTIK_TOKENis set but no stored
credential or config profile exists. The CLI callsGET /api/v1/meto
populate the new profile (host + identity), then validates the requested
organization or project through the API before persisting it as the
default. This matches the existing env-token auth flow used by other
commands and eliminates the previous "no active profile" error for
headless or ephemeral setups (org,project). -
hamstik work await <KEY>polls until a Work Item reaches a server-reported
condition (repeatable--status,--timeoutup to 1h with exponential
backoff, human-readable and--jsonoutput). (CLI-25) -
Global configuration commands (CLI-6):
hamstik config path|list|get|set|unset
manages safe, non-secret defaults in~/.config/hamstik/config.toml
(editor,pager,output,git_branch_template,profile,
organization,project).setrejects credential-like values (use
hamstik credentialor the OS keyring), andget/set/unsetexpose
stable{ key, value }or{ path }JSON envelopes. Unknown keys and
unsupported schema versions fail deterministically with exit code 10. -
Opt-in live Public API v1 acceptance suite (CLI-6):
cargo test --test live_acceptance -- --test-threads=1 --ignoreddrives the
realhamstikbinary against a dedicated test Organization/Project over
documented/api/v1routes. Gated behindHAMSTIK_TOKEN,HAMSTIK_HOST,
HAMSTIK_ACCEPTANCE_ORG, andHAMSTIK_ACCEPTANCE_PROJECT(plus
HAMSTIK_ACCEPTANCE_MUTATIONS=truefor writes) and#[ignore]d, so offline
cargo testonly compiles it. A read-only smoke scenario proves auth, TLS,
context, and the read routes; a mutation scenario exercises the full
lifecycle — idempotent create/replay, edit, a real ETag conflict, status
transitions, labels, comments, links, watchers, byte-for-byte attachment
round-trip, sprints, and bulk create/update/transition — cleaning up every
Work Item it created (delete, archive fallback) without masking the primary
failure. All created resources carry a run-uniqueacc-<unix-ts>-<pid>
marker; labels and sprints (undocumented delete routes) are the only
residue. Runbook:crates/hamstik-cli/tests/live_acceptance/README.md;
a manualworkflow_dispatchjob (.github/workflows/live-acceptance.yml)
runs it against a configured test deployment when repository
variables/secrets opt in. -
Doctor support bundle (CLI-6):
hamstik doctor --bundle <path>produces a
versioned ZIP bundle (bundleVersion: 1) containing a redacted
doctor-report.json,context-explain.json,cli-info.json,
api-compatibility.json,config-metadata.json, and
bundle-manifest.json. The bundle never contains PAT values, Authorization
headers, credential-store contents, token-bearing environment variables, or
credential-bearing proxy URLs. It is compatible with--local-only; remote
checks are safely skipped when the flag is active. Automated redaction unit
tests verify all bundle sections are secret-free. -
Work Item context bundle (CLI-21):
hamstik work context <KEY>returns a
one-invocation, data-only read bundle for a Work Item — metadata,
description, server-reported links, labels, recent comments, recent
activity, and the authenticated user's watcher state — composed entirely
from Public API v1 reads.--jsonemits a stable, deterministic envelope
(bundleVersion: 1);--format markdownrenders the same content
readably;--comments N,--activity N, and--compactbound the
output size, and every clipped or omitted section carries an explicit
marker (nothing is silently truncated). The bundle is data, not
instructions: no workflow meaning is computed client-side, and the
command is strictly read-only. -
Public API v1 passthrough (CLI-20):
hamstik api request /api/v1/...
and the shorthandhamstik api /api/v1/...call any documented Public
API v1 route through the official CLI, in the spirit ofgh api—
including server routes newer than the installed CLI (the OpenAPI
snapshot is never an allowlist). GET is the default;--method
POST/PATCH/PUT/DELETE,--body-file -|<file>,--field key=value,
--query key=value, and allowlisted--headeroverrides
(Accept,Content-Type,If-Match—Authorizationand any
credential-bearing header are rejected) reuse the typed commands'
transport: profile auth, TLS/CA bundle, retries withRetry-After
handling, automatic idempotency keys for POST/DELETE reused across
internal retries, request-ID preservation, redacted diagnostics, and
stable exit codes.--dry-runpreviews the exact request with the
versioned preview envelope;--jsonemits
{ method, path, data, meta? }withmetacarryingrequestId,
etag,idempotencyReplayed,location, and the rate-limit snapshot. -
Canonical Agent Skill installation and validation (CLI-3): the new
hamstik agent skill installwrites the skill bundled into the binary
(skills/hamstik/SKILL.md) into an Agent
Skills discovery location — the current project's portable
.agents/skills/hamstik/directory by default, the user-level portable
location with--global(override withHAMSTIK_SKILL_HOME). Re-running
an install is idempotent when the installed file is identical; a locally
modified installed skill is never silently overwritten —--forceis
required for replacement.hamstik agent skill checkvalidates frontmatter
CLI-version compatibility plus every referenced command path and option
against this binary's livehamstik commands --jsonmanifest, for the
installed skill by default (project location, then global) or an explicit
file path (CI use); failures exit nonzero.
Fixed
- Network diagnostics are now classified from the concrete transport error
source chain (DNS, connection, timeout, TLS) instead of pattern-matching
the rendered error text, so a library rewording can no longer silently
degradedoctorand error output to the genericnetworkstage. hamstik org useandhamstik project usenow make the auto-created profile
the active profile when they create it under an ephemeralHAMSTIK_TOKEN.
Previously the default organization/project was written into a profile that
profile selection never chose, sodoctorand every command reported
"organization not selected" even though the config contained the default.- Auto-created profiles now seed the user's default organization from
GET /api/v1/me(matchingauth login), and configuration write failures
duringorg use/project usereport the configuration error class (exit 10)
instead of a generic internal error.
Install hamstik-cli 0.1.3
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/blackboardstudios/hamstik-cli/releases/download/v0.1.3/hamstik-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/blackboardstudios/hamstik-cli/releases/download/v0.1.3/hamstik-cli-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install blackboardstudios/hamstik/hamstikDownload hamstik-cli 0.1.3
| File | Platform | Checksum |
|---|---|---|
| hamstik-cli-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| hamstik-cli-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| hamstik-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| hamstik-cli-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| hamstik-cli-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |