@stackbone/cli 0.3.4 → 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,117 @@ 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
+
53
+ ## [0.3.5] - 2026-08-27
54
+
55
+ ### Added
56
+
57
+ - **`stackbone dev` boots a workspace that declares nothing of the creator's
58
+ yet.** A workspace from `stackbone init --with empty` used to be refused
59
+ outright. It now boots and prints a notice naming what is missing, so the
60
+ control surface, the box API reference and the emulator are all reachable
61
+ before the first workflow exists (PLA-775).
62
+
63
+ - **`prompts publish`, `prompts unpublish` and `prompts remove-version`.**
64
+ Writing a prompt and choosing which version runs are two separate steps now.
65
+ `publish --version <n>` points the agent at an existing version without
66
+ copying its text forward; `unpublish` takes that pointer away;
67
+ `remove-version` deletes one stored version.
68
+
69
+ - **A prompt belongs to a workflow or an agent, not to the workspace.** Every
70
+ `prompts` verb takes owner flags naming which workflow or deep agent holds the
71
+ key, so two agents can carry the same key without colliding.
72
+
73
+ - **The build inventories the prompt keys the creator's code asks for.** The
74
+ scan reads the source with an AST rather than running it, and records each
75
+ catalogue lookup: the key, the variable names handed over, and the workflow or
76
+ deep agent whose source made the call. A key written in Studio that no line of
77
+ code reads, and a key read by code that nothing ever wrote, are both visible
78
+ from the inventory.
79
+
80
+ - **The boot output names the box's own API reference.** `dev` prints where the
81
+ box serves its OpenAPI document and Scalar reference alongside the rest of the
82
+ banner (PLA-857).
83
+
84
+ - **`link` says where each installation resolves.** A box registered against a
85
+ deployment now shows its target in the listing instead of reading as
86
+ unregistered, and the box is told which installation its deployment resolves
87
+ through.
88
+
89
+ ### Fixed
90
+
91
+ - **`dev` ends the session on one Ctrl-C, whatever the teardown does.** A
92
+ teardown step that never settled used to leave the session alive past the
93
+ first interrupt.
94
+
95
+ - **The workflow validator sidecar loads inside the image.** It is bundled
96
+ self-contained, so `/start` validation no longer depends on files the image
97
+ does not carry. When it still cannot load, validation falls back to a
98
+ structural check rather than accepting anything (PLA-394).
99
+
100
+ - **`link --url` is no longer offered as the remedy for a local-dev install.**
101
+ It never applied to one.
102
+
103
+ - **A deployment link that was just registered says it cannot be reached yet**,
104
+ instead of reading as though the box were already live.
105
+
106
+ - **Agent ids are pointed at where they come from**, not at the local emulator.
107
+
108
+ - **Packaging a box tells the operator where its telemetry goes** (PLA-744).
109
+
110
+ - **The scaffolded `.gitignore` also ignores a `node_modules` symlink.**
111
+
112
+ - **The dev watcher specs no longer flake on macOS.**
113
+
114
+ ### Removed
115
+
116
+ - **BREAKING: `prompts rollback` is gone.** It copied an older version's text
117
+ forward into a new version. `prompts publish --version <n>` replaces it by
118
+ moving the pointer to the version that already exists, leaving no duplicate
119
+ text behind.
120
+
10
121
  ## [0.3.4] - 2026-08-19
11
122
 
12
123
  ### Added