@stackbone/cli 0.3.5 → 0.4.0-alpha.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,49 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.4.0-alpha.0] - 2026-08-31
11
+
12
+ ### Added
13
+
14
+ - **`stackbone package --target byoc | self-host` picks which folder the command
15
+ writes.** It used to write one artifact, the two-service self-host stack.
16
+ `byoc` is the default and the historic folder — the agent alone, registered
17
+ from app.stackbone.ai — while `self-host` keeps the control plane and Studio
18
+ beside it. The exclusion is the point, not a convenience: a box that finds
19
+ `STUDIO_STANDALONE_TOKEN` on its boot env authenticates the operator by static
20
+ bearer and turns the browser identity gate off, so a BYOC folder carrying that
21
+ variable would be a box anyone holding one string could drive, with every
22
+ container still healthy. The BYOC inputs have no field to write it into
23
+ (PLA-1056).
24
+
25
+ - **The `self-host` target generates both application services.** The shipped
26
+ Compose started the control plane, Postgres, Redis and MinIO and no agent at
27
+ all, so nothing served the box-owned routes Studio needs. It now brings up the
28
+ control plane with the Studio SPA and the workspace image beside it, on
29
+ separate configurable host ports, sharing one database, one `HMAC_SECRET` and
30
+ one operator token, with health checks and real startup ordering. The control
31
+ plane addresses the box as `http://agent:8080`, its Compose service name
32
+ (PLA-1069).
33
+
34
+ ### Changed
35
+
36
+ - **The offline archives are named apart.** `agent-image.tar` carries one image
37
+ and never pulls a control plane; `stackbone-images.tar` carries both. A script
38
+ that hardcoded the single old name has to pick the one its target writes.
39
+
40
+ ### Fixed
41
+
42
+ - **A rejected payload prints the fields it names, not just the sentence.**
43
+ `stackbone secrets set` printed `Request body failed schema validation.` and
44
+ nothing else, because the per-field detail rides under `details.issues` and
45
+ the reader took only `message`. It now prints the server's sentence followed
46
+ by one ` - name: Required` line per offending field, three at most and then a
47
+ ` (+<n> more)` line. A refusal carrying no issues prints its sentence
48
+ byte-for-byte, and a malformed or non-JSON body still prints `HTTP <status>`.
49
+ A local `ZodError` renders through the same bound, so the CLI's own rejections
50
+ and the box's read alike. SSE and multipart inherit it through the same
51
+ function (PLA-1044).
52
+
10
53
  ## [0.3.5] - 2026-08-27
11
54
 
12
55
  ### Added