@stackbone/cli 0.5.4 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,69 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.6.0] - 2026-10-06
11
+
12
+ ### Added
13
+
14
+ - **A workflow's `export const description` reaches the Catalog.** The build
15
+ reads it next to `inputSchema`, `outputSchema` and `schedules`, and Studio's
16
+ Catalog card and entry header show it. No stage carried a workflow description
17
+ before, so every workflow card was blank. A value that is not a string is
18
+ ignored with a warning, never a failed build (PLA-1811).
19
+
20
+ - **`--agent` takes the agent slug.** Every surface that targets an
21
+ installation resolves `--agent astex-agent` to its installation id, the same
22
+ slug `agents list` prints first and `agents get` accepts. A slug with no agent
23
+ behind it says so and points at `agents list`, instead of the control plane's
24
+ "Internal server error" (PLA-1904).
25
+
26
+ - **`stackbone runs list --trigger <trigger>`.** Filters runs by what started
27
+ them, with the same vocabulary `runs get` prints (PLA-1717).
28
+
29
+ ### Changed
30
+
31
+ - **`stackbone dev` against a control plane on your machine opens no tunnel.**
32
+ When the control plane URL is loopback (`localhost`, `127.0.0.1`, `[::1]` or
33
+ a `*.localhost` name), the box registers its own `http://127.0.0.1:<port>`
34
+ URL on its local-dev installation and Studio's "Open Studio" link pins it.
35
+ No grant is minted and frpc does not start, so a local stack no longer needs
36
+ `STACKBONE_TUNNEL_TICKET_SIGNING_KEY`. Stopping the session clears the URL.
37
+ Any other control plane opens the tunnel as before (PLA-1989). The
38
+ "`frpc` is not installed" and `tunnel_relay_unhealthy` suggestions now say
39
+ the tunnel is mandatory against a deployed control plane, not everywhere
40
+ (PLA-1992).
41
+
42
+ - **A `stackbone dev` box behind the tunnel requires the identity token.** It
43
+ used to check no credential, so anyone holding the tunnel URL could reveal
44
+ secrets, run SQL and decide approvals. The box now verifies the control
45
+ plane's identity JWT, as a deployed box does, on REST, SSE, the vendor wires
46
+ (`/agui`, `/openai`, `/anthropic`) and `/mcp`. The CLI mints the token for its
47
+ own calls to the box (`secrets`, `db`, connector codegen) and Studio sends it
48
+ to the install's tunnel URL. `/`, `/api/contract` and health stay open.
49
+ Connector codegen refused with 401 or 403 leaves `connect.d.ts` untouched
50
+ (PLA-1864, PLA-1868, PLA-1869).
51
+
52
+ - **Workflow runs record the gate that started them.** A run's `trigger` is now
53
+ `manual`, `cron`, `event` (with the Connect link in `triggerRef`), `workflow`
54
+ for a parent workflow's child, or `platform` for the box's own errands, where
55
+ every workflow run used to read `workflow`. A start no gate stamped reads
56
+ `unknown`. `runs list` and `runs get` validate the trigger strictly, so a CLI
57
+ older than this release fails on a box that returns `platform` or `unknown`
58
+ (PLA-1717).
59
+
60
+ ### Fixed
61
+
62
+ - **A control plane with no tunnel configured says so.** `stackbone dev` used
63
+ to read it as a relay outage: three retries, then a pointer at
64
+ status.stackbone.ai for an outage that did not exist. The control plane now
65
+ answers `tunnel_not_configured`, and the CLI stops on the first one, with no
66
+ retry and no status page, and says that the control plane's operator has to
67
+ set the tunnel up. Exit code `1`, as for `tunnel_relay_unhealthy` (PLA-1991).
68
+
69
+ - **`stackbone logs --since 5` read the number as a date in 2001 and filtered
70
+ nothing.** A bare number is a duration with the unit forgotten; `--since`
71
+ and `--until` now reject it and suggest one, e.g. `5m` (PLA-1796).
72
+
10
73
  ## [0.5.4] - 2026-10-01
11
74
 
12
75
  ### Added
package/README.md CHANGED
@@ -2,20 +2,21 @@
2
2
 
3
3
  The CLI for [Stackbone](https://stackbone.ai): scaffold, run and deploy agents and workflows written in TypeScript, on Stackbone Cloud or your own infrastructure.
4
4
 
5
- > **Status:** `alpha`. The contract may break between releases. Pin a version or rely on the `alpha` dist-tag.
5
+ > **Status:** `alpha`. The contract may break between releases. Pin a version or stay on the `latest` dist-tag.
6
6
 
7
7
  ## Quick start
8
8
 
9
- No install required — invoke the CLI through `npx`:
9
+ Install the CLI once, globally. The same command updates it:
10
10
 
11
11
  ```bash
12
- npx @stackbone/cli login
13
- npx @stackbone/cli init my-workspace
14
- cd my-workspace && npm install
15
- npx @stackbone/cli dev
12
+ pnpm add -g @stackbone/cli@latest
13
+ stackbone login
14
+ stackbone init my-workspace
15
+ cd my-workspace
16
+ stackbone dev
16
17
  ```
17
18
 
18
- That's it. `init` scaffolds a new workspace shell (agents + workflows + coding-agent skills) and links it to your organization, so you sign in first; `dev` boots the whole workspace locally (Postgres, Redis, MinIO and Stackbone Studio at `http://localhost:4242`) so you can iterate before you deploy.
19
+ That's it. `init` scaffolds a new workspace shell (agents + workflows + coding-agent skills), installs its dependencies with `pnpm install` and links it to your organization, so you sign in first; `dev` boots the whole workspace locally (Postgres, Redis, MinIO and Stackbone Studio at `http://localhost:4242`) so you can iterate before you deploy.
19
20
 
20
21
  ## Commands
21
22