@stackbone/cli 0.1.0-alpha.4 → 0.1.0-alpha.6

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,84 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.1.0-alpha.6] - 2026-05-18
11
+
12
+ ### Fixed
13
+
14
+ - Git Bash / MSYS / MinGW on Windows are no longer caught by the native
15
+ Windows guard. `isWindowsNative` now also inspects
16
+ `process.env.MSYSTEM` (`MINGW64`, `MINGW32`, `MSYS`), which Git for
17
+ Windows sets in every Git Bash session — including the one VS Code's
18
+ integrated terminal spawns. The banner and `unsupported_platform`
19
+ envelope still steer PowerShell / CMD users to WSL2, with Git Bash now
20
+ listed alongside as a supported alternative.
21
+
22
+ ## [0.1.0-alpha.5] - 2026-05-18
23
+
24
+ ### Added
25
+
26
+ - `stackbone docs <section>` content is now generated from the wiki
27
+ (`apps/wiki/public/content/docs/<section>/*.md`). A new
28
+ `cli:sync-docs` Nx target reads every markdown page, strips the
29
+ frontmatter, prepends the title as an H1 and emits
30
+ `apps/cli/src/docs/topics.generated.ts`; `cli:build` depends on it so
31
+ the bundled CLI can never drift from the wiki again. `docs <section>`
32
+ prints an auto-generated table of contents; `docs <section>/<slug>`
33
+ prints the page body. The inline `starters` / `connections`
34
+ placeholders are gone — once the corresponding wiki pages land they
35
+ surface automatically.
36
+ - Branded interactive surface. Clack's prompt glyphs (`◆`, `│`, `┌`,
37
+ `└`, spinner) are repainted to brand orange via a pnpm patch on
38
+ `@clack/prompts`, the boot banner picks up the same truecolor
39
+ accent, and every interactive command (`init`, `link`, `dev`,
40
+ `login`) now opens with a `◆◆◆ stackbone v<version> · <command>`
41
+ header. The `login` flow uses `note()` for the device code + URL,
42
+ `log.step()` for the browser hint and a `spinner()` for the polling
43
+ wait — replacing the raw `process.stdout` writes that read flat
44
+ against the rest of the clack session.
45
+
46
+ ### Changed
47
+
48
+ - **Breaking — `--api-url` flag removed.** Control-plane URL resolution
49
+ collapses to `STACKBONE_API_URL` → project config → global config.
50
+ The env var keeps working internally so the team can still point at
51
+ staging/prod, but it is no longer advertised in the wiki, the
52
+ embedded skill template or the README — external developers should
53
+ not need to think about it. HTTP, device-flow and dev-tunnel error
54
+ suggestions are updated to match.
55
+ - Native Windows shells (PowerShell, CMD, Git Bash) are now blocked at
56
+ startup. `process.platform === 'win32'` triggers a branded `◆◆◆`
57
+ banner pointing at issue #70 for the long-term Windows-support work,
58
+ routed through the canonical `StackboneCliError` envelope so
59
+ `--json` consumers see the same `{schema_version, error, exit_code}`
60
+ shape they get from every other failure. WSL is unaffected because
61
+ Node there reports `linux`.
62
+ - The truecolor ANSI palette is centralised in `core/ansi.ts` and
63
+ reused from the boot-banner, brand-header and platform-guard
64
+ formatters instead of three hand-copied `{ reset, bold, dim, accent }`
65
+ objects drifting in parallel.
66
+ - Internal cleanup: `parseResponse(schema, raw, context)` extracted to
67
+ `infra/http.ts` so every control-plane service shares one error
68
+ envelope for unexpected response shapes; `resolveDrizzleKitBin`
69
+ consolidated in `dev/drizzle-bin.ts`; UUID validation centralised in
70
+ `dev/uuid.ts`. `stackbone dev` only fetches the active organization
71
+ when the project is missing `localDevInstallationId` /
72
+ `organizationSlug`, and SIGINT teardown runs the tunnel-PATCH and
73
+ `session.stop()` via `Promise.allSettled` so a hung control-plane
74
+ call cannot block docker teardown. Independent filesystem writes in
75
+ `project.service` and `dev/compose.ts` now run in parallel.
76
+
77
+ ### Fixed
78
+
79
+ - `stackbone init` on a clean directory no longer errors with "Refusing
80
+ to overwrite agent.yaml". Every starter ships a placeholder manifest
81
+ that `writeStarterFiles` would write first, then
82
+ `writeAgentManifest` would refuse to overwrite. The new
83
+ `writeStarterProject` helper drops the placeholder, writes the rest
84
+ of the starter, and regenerates the manifest with the user-chosen
85
+ name; a flow-level test pins the contract so the two helpers cannot
86
+ re-diverge.
87
+
10
88
  ## [0.1.0-alpha.4] - 2026-05-18
11
89
 
12
90
  ### Changed