@stackbone/cli 0.3.0 → 0.3.2

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,91 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.3.2] - 2026-08-10
11
+
12
+ ### Added
13
+
14
+ - **`stackbone link` refuses a box the control plane could not work with, before
15
+ it writes anything.** The command registered whatever answered the URL, so a
16
+ container too old to be registered from the browser could still be linked from
17
+ the terminal without a word — and the failure surfaced later, on the first
18
+ screen that needed something the box does not speak, with a deployment row on
19
+ file to explain it. `link` now reads the box's public handshake
20
+ (`GET <url>/api/contract`, no credential) right after it resolves the agent and
21
+ before it verifies `--secret`, and refuses with the same sentence the browser
22
+ wizard prints. A box that never answers, one that answers with something that
23
+ is not a handshake, and one that is simply too old each fail in their own
24
+ words. Nothing is written on refusal: no deployment, no local project file.
25
+
26
+ ### Changed
27
+
28
+ - **The agent protocol the box reports goes from 14 to 15, `stackbone dev`
29
+ included.** The box now permits the `stackbone-signature` request header on a
30
+ cross-origin preflight, which is what lets a browser sign a challenge against
31
+ it. Nothing on the wire changes shape and no capability moves — the number is
32
+ the change, and it is what a caller reads to know the box has it. The origin
33
+ allowlist is untouched: one more permitted header is not one more permitted
34
+ origin.
35
+ - **`stackbone package` says how a managed Redis URL is written.** The generated
36
+ `.env` and README carried `redis://host:6379`, which no managed provider
37
+ accepts: they all hand out a password, some require TLS, and a password
38
+ containing `/`, `+`, `=` or `@` has to be percent-encoded or the URL does not
39
+ parse. All three are now spelled out where the operator reads them, next to the
40
+ note that the agent PINGs Redis before starting and stops with the reason if it
41
+ cannot.
42
+
43
+ ## [0.3.1] - 2026-08-06
44
+
45
+ ### Added
46
+
47
+ - **`stackbone dev` links a project that arrived without a link.** `.stackbone/`
48
+ is gitignored — by the very block `init` and `link` write — so a project
49
+ cloned from someone else's repository has none, and there was no clean way to
50
+ get one: `dev` refused and pointed at `stackbone init`, which registers a
51
+ _new_ agent and scaffolds its own `package.json` over the project you were
52
+ handed, or at `stackbone link`, which registers an already-deployed box and so
53
+ requires its URL, HMAC secret and image tag. Neither describes "I was given
54
+ this project and want to run it".
55
+
56
+ Now `dev` lists the agents your organization owns, lets you pick one or create
57
+ a new one named after the folder, writes the link, gitignores it, and carries
58
+ on booting. Non-interactive runs (`--json`, `--yes`, CI, no terminal) still
59
+ fail rather than guessing, with a message naming the options that apply.
60
+
61
+ ## [0.3.0] - 2026-08-06
62
+
63
+ ### Added
64
+
65
+ - **`stackbone package` turns a project into a folder someone else can run.**
66
+ It compiles the workspace and writes a two-line Dockerfile over the published
67
+ Stackbone runtime base, a `docker-compose.yml` that also brings up a Postgres
68
+ and a Redis, an `.env` carrying a freshly generated `STACKBONE_SECRET_KEY`,
69
+ and a README written for whoever receives it. On the far end it is two
70
+ commands: `docker compose up -d`, then a health check. Building the image is
71
+ one `COPY` over a base that already carries the server and its dependencies,
72
+ so it takes seconds and needs neither the Stackbone monorepo nor an install.
73
+
74
+ The command always compiles rather than packaging whatever is sitting in
75
+ `dist/`: the folder gets run by someone else, days later, and there is nobody
76
+ left to notice it was built from yesterday's code.
77
+
78
+ `--offline` also saves the image into the folder (around 150 MB) for a
79
+ network that cannot reach a registry. That variant emits no build
80
+ instructions, since the image arrives by loading the archive.
81
+
82
+ Two things the generated files say that nothing said before: **the database
83
+ needs the `pgvector` extension** — without it the first boot applies most of
84
+ the schema and then stops, which reads like a bug in the agent rather than a
85
+ missing extension — and the agent serves on **8080** unless `PORT` says
86
+ otherwise, with `/live` as the health check a managed host should use.
87
+
88
+ ### Changed
89
+
90
+ - **`stackbone build` no longer has to be followed by hand-written deployment
91
+ files.** It still emits just the workspace bundle, for anyone who already
92
+ owns their image and their deployment; `stackbone package` is now the route
93
+ to take when you do not.
94
+
10
95
  ## [0.2.10] - 2026-08-02
11
96
 
12
97
  ### Added