squad-kit 0.4.0 → 0.6.1

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.6.1] — 2026-04-26
11
+
12
+ ### Bug fixes
13
+
14
+ - Azure DevOps console tracker search was failing on first load and on text
15
+ search with HTTP 400. WIQL queries now require the team project (`@project`)
16
+ in the WHERE clause; HTTP 400 responses include a clearer hint about
17
+ org/project or WIQL scoping.
18
+
19
+ ## [0.6.0] — 2026-04-29
20
+
21
+ ### Why this release
22
+
23
+ squad-kit 0.5.0 shipped the console end-to-end. Real users found the visual layer hostile for an admin/console surface — too marketing-y, glow orbs everywhere, dialog positioning glitches under our overflow rules — so 0.6.0 is a redesign-only release. Zero CLI behaviour changes, zero API contract changes. The console adopts a Vercel/Geist-inspired palette: flat near-black surfaces, white text, accent green reserved for status (live planner dot, focus rings, active sidebar, success badges). Every dialog is now portal-rendered and centred reliably. The signature Vercel/Linear move — Cmd+K command palette — is in.
24
+
25
+ ### Added
26
+
27
+ - console-ui: Cmd+K command palette (powered by `cmdk`) — searches stories, plans, and actions; Linear-style chord shortcuts (`g s` for Stories, `g p` for Plans, `n s` for new story, `?` for the cheatsheet, etc.).
28
+ - console-ui: portal-rendered Dialog primitive with focus trap, body scroll lock, ESC + backdrop close, focus restore. Replaces the native `<dialog>` element (and fixes its positioning bugs).
29
+ - console-ui: Toast system (`useToast()`) with bottom-right stack, tone-coloured icons, auto-dismiss, manual dismiss, optional inline action.
30
+ - console-ui: Confirm provider (`useConfirm()`) — promise-based ergonomics for destructive actions.
31
+ - console-ui: Callout component for inline alerts (default / info / success / warning / danger). Replaces every ad-hoc tone block sprinkled through pages.
32
+ - console-ui: Density toggle (Comfortable / Compact) in the topbar; persists to `localStorage`, applies via `[data-density]` on `<html>`.
33
+ - console-ui: Breadcrumbs in the topbar, derived from the route match tree.
34
+ - console-ui: New primitives — `Page`, `Spinner`, `IconButton`, `Tooltip`, `Kbd`, `Field`. All density-aware.
35
+ - console-ui: Internal design playground at `/__design` for primitive sanity checks.
36
+ - console-ui: `lucide-react` for icons; sidebar letter-icons (`D / S / P …`) replaced with proper Lucide icons.
37
+
38
+ ### Changed
39
+
40
+ - console-ui: complete design-token rewrite — Geist-inspired graphite scale (12 steps from `--gray-1` to `--gray-12`), accent green reserved for status only. The marketing-site palette stays on the marketing site; the console diverges. CSS variable names that pages already used (`--color-bg`, `--color-surface`, `--color-text`, `--color-accent`, etc.) keep working — their values changed.
41
+ - console-ui: layout shell rewritten — sidebar is sectioned (Workspace / Run / Settings) with Lucide icons, project switcher moved into the sidebar header, topbar shows breadcrumbs + density toggle + Cmd+K hint. The decorative `grid-bg` and `glow-orb` divs were removed from the working surface.
42
+ - console-ui: every page rewritten through the new `<Page>` wrapper. Inline tone classes (`bg-emerald-…`, `bg-red-…`, etc.) replaced with `<Badge>`, `<Callout>`, and `<Toast>`. Destructive actions go through `useConfirm()`.
43
+ - console-ui: charts read CSS variables instead of hard-coded hex codes; near-monochrome palette with green only for the most-recent / success series.
44
+ - console-ui: shimmer Skeleton replaces the static `animate-pulse` block.
45
+ - console-ui: Markdown viewer adopts a near-monochrome prism theme matching the new tokens.
46
+
47
+ ### Fixed
48
+
49
+ - console-ui: dialog positioning bugs caused by the native `<dialog>` element interacting with our layout's overflow rules. Now portal-rendered and reliably centred.
50
+
51
+ ### Migration
52
+
53
+ No breaking changes for CLI users. The `.squad/` file formats, command flags, planner output, tracker integration, and config schema are byte-identical to 0.5.0. If you've installed `squad-kit@0.5.0` globally and run `squad console`, simply `npm i -g squad-kit@0.6.0` and your next `squad console` opens the new look. No `.squad/config.yaml` changes.
54
+
55
+ ### Internal
56
+
57
+ - console-ui: `cmdk`, `lucide-react` added to `console-ui/package.json` (consumed at build-time only; the CLI runtime dependency tree is unchanged).
58
+ - console-ui: extensive primitive coverage with vitest — tests grew by ~25 cases across `Button`, `Badge`, `Spinner`, `Field`, `Page`, `Dialog`, `Toast`, `Callout`, `Confirm`, `Breadcrumbs`, `useDensity`, `CommandPalette`, `useGlobalShortcuts`.
59
+
60
+ ## [0.5.0] — 2026-04-25
61
+
62
+ ### Why this release
63
+
64
+ squad-kit 0.4.0 made the planner reliable and the partial-plan recovery flow first-class. 0.5.0 makes the whole product **shareable**: a local-first, dark-modern web console that exposes every CLI capability with a UI a teammate can use without learning the commands.
65
+
66
+ The console isn't a hosted dashboard. It binds to `127.0.0.1`, gates every API request behind a per-session token, and reads/writes the same `.squad/` files the CLI already uses. Open it with `squad console`, share a screenshot of a streaming planning run on Slack, close the tab, keep working in the terminal.
67
+
68
+ ### Added
69
+
70
+ - `squad console` — open `http://127.0.0.1:4571` (configurable) for a dashboard, stories CRUD, plans browser with diff, live planner streaming via SSE, visual editors for `config.yaml` and `secrets.yaml`, tracker issue search and import, graphical `squad doctor`. Token-gated and loopback-only.
71
+ - Persistent run history in `.squad/runs/<runId>.json` (last 20 retained). Dashboard reads from it for cache-hit ratio, token spend sparkline, and run-duration bars.
72
+ - `~/.squad/recent-projects.json` — per-user list of project roots you've opened the console against; surfaces in the topbar dropdown.
73
+ - Internal: `PlannerEventBus` + `runPlanner({ events, runId, abort })` lets multiple consumers share one run; CLI rendering becomes a bus subscriber.
74
+ - Internal: `core/story-mutations.ts` (`createStoryRecord`, `deleteStoryRecord`, `createStoryRecordFromIssue`) is now the single implementation behind the CLI new-story / rm-story commands and the console.
75
+ - Internal: `commands/doctor-engine.ts` extracts `gatherContext` and `runAllChecks` so the doctor logic is reusable from the API.
76
+ - Internal: `TrackerClient.searchIssues` for Jira (REST `/search`) and Azure (WIQL).
77
+ - Build: `pnpm size:guard` — fails CI if the published tarball exceeds 2.5 MB unpacked. Wired into `prepublishOnly`.
78
+
79
+ ### Changed
80
+
81
+ - `pnpm build` now runs the SPA build (`pnpm -C console-ui build`) before the CLI build (`tsup`) and verifies `dist/console-ui/index.html` was emitted.
82
+ - The npm tarball gains a `dist/console-ui/` tree (~700–900 KB gzipped).
83
+
84
+ ### Migration
85
+
86
+ No breaking changes. CLI commands behave byte-identically. The `.squad/runs/` directory and `~/.squad/recent-projects.json` are added on first console run; `.squad/runs/` is gitignored automatically (managed block).
87
+
10
88
  ## [0.4.0] — 2026-04-24
11
89
 
12
90
  ### Added
@@ -216,7 +294,9 @@ First public release.
216
294
  - Plan-generation meta-prompt (`generate-plan.md`), intake template (`intake.md`), and plan skeleton reference (`story-skeleton.md`).
217
295
  - Documentation: `docs/philosophy.md`, `docs/getting-started.md`, `docs/customization.md`, `docs/vs-spec-kit.md`.
218
296
 
219
- [Unreleased]: https://github.com/AzmSquad/squad-kit/compare/v0.3.0...HEAD
297
+ [Unreleased]: https://github.com/AzmSquad/squad-kit/compare/v0.6.0...HEAD
298
+ [0.6.0]: https://github.com/AzmSquad/squad-kit/releases/tag/v0.6.0
299
+ [0.5.0]: https://github.com/AzmSquad/squad-kit/releases/tag/v0.5.0
220
300
  [0.3.0]: https://github.com/AzmSquad/Squad-Kit/releases/tag/v0.3.0
221
301
  [0.2.2]: https://github.com/AzmSquad/squad-kit/compare/v0.2.1...v0.2.2
222
302
  [0.2.1]: https://github.com/AzmSquad/squad-kit/compare/v0.2.0...v0.2.1
package/README.md CHANGED
@@ -13,12 +13,34 @@
13
13
 
14
14
  **Plan once, execute cheap.** A 3-step SDD-style workflow CLI for AI-assisted coding: **raw story → good plan → implementation**. Your expensive model plans once. A cheap model executes many times. Squad-kit owns the folder conventions, the plan meta-prompt, and the agent slash-commands so the token cost goes where it pays off. Deeper product notes live on **[squad-kit.com](https://squad-kit.com)** and in [`docs/`](docs/philosophy.md).
15
15
 
16
+ - **Visual console** — `squad console` opens a local, dark-modern web UI for stories, plans, live planner runs, config, secrets, tracker, and doctor. Loopback-only, token-gated. v0.6.0 redesigned the console with a near-monochrome Vercel/Geist palette, a Cmd+K command palette, Linear-style chord shortcuts (`g s`, `g p`, `?`), a portal-rendered dialog system, and a density toggle. Full tour: [`docs/console.md`](docs/console.md).
17
+
18
+ ![Squad console dashboard](docs/images/console/dashboard.png)
19
+
16
20
  ```
17
21
  .squad/
18
22
  ├── stories/<feature>/<id>/ # intake + attachments (one per story)
19
- └── plans/<feature>/ # NN-story-<slug>.md (one per executable plan)
23
+ └── plans/<feature>/ # NN-story-<id>.md (one per executable plan)
20
24
  ```
21
25
 
26
+ ## What's new in 0.6.0
27
+
28
+ - **Console redesign** — Geist-style flat dark UI, Cmd+K command palette, global keyboard shortcuts, portal dialogs, density toggle. Same CLI and `.squad/` on disk; no migration. See [`docs/console.md`](docs/console.md).
29
+
30
+ ## What's new in 0.5.0
31
+
32
+ - **`squad console`** — local web UI on `127.0.0.1:4571` for the whole workflow (dashboard with run charts, stories, plans + diff, live Generate SSE, config/secrets editors, tracker search/import, graphical doctor). See [`docs/console.md`](docs/console.md).
33
+ - **Run history** — last 20 planner runs under `.squad/runs/` power dashboard charts; **recent projects** list in `~/.squad/recent-projects.json` for quick handoff between repos.
34
+ - **`pnpm size:guard`** — publish tarball must stay under 2.5 MB unpacked.
35
+
36
+ ## What's new in 0.4.0
37
+
38
+ - **`squad new-plan --api` limits UX.** When a budget or cap stops the planner, the CLI asks before more API spend. Stop saves a `*.partial.md` with a clear status flag; exit code **2** when the run did not finish cleanly.
39
+ - **`planner.maxOutputTokens`** in merged config (default **16384** tokens per model round).
40
+ - **Shorter plan filenames** — new plans use the story folder id (`NN-story-<id-slug>.md`), not a long title slug; the overview table still shows the title.
41
+ - **Richer intakes** when `squad new-story` fetches Jira / Azure work items (more fields wired into the template).
42
+ - **`squad list`** reads `<!-- squad-kit: … -->` metadata from the first matching line near the top of a plan file, not only line 1.
43
+
22
44
  ## What's new in 0.3.0
23
45
 
24
46
  - **Prompt caching** across Anthropic, OpenAI, and Google — ~70% fewer billed input tokens on
@@ -99,6 +121,7 @@ Configuration, credential edits, and non-interactive flags: see [`docs/customiza
99
121
  | `squad doctor [--fix] [--json]` | Full health check; `--fix` applies non-destructive repairs. |
100
122
  | `squad migrate [--dry-run] [-y]` | One-shot 0.1.x → 0.2.0 structural migrations. Destructive. |
101
123
  | `squad upgrade [--check] [-y]` | Check npm and install a newer squad-kit release. |
124
+ | `squad console [--port n] [--no-open]` | Start the loopback web console; see [`docs/console.md`](docs/console.md). |
102
125
 
103
126
  Deeper option lists: `squad <command> --help` and the `docs/` pages above.
104
127
 
@@ -164,7 +187,7 @@ Both aim at spec-driven development. They make different bets.
164
187
  | Commands | `init`, `new-story`, `new-plan`, `status`, `doctor`, `migrate`, `upgrade`, `list`, `rm`, `tracker link`, `config` | `constitution`, `specify`, `clarify`, `plan`, `tasks`, `analyze`, `checklist`, `implement` |
165
188
  | `/implement` turn starts with | one plan file (~5–15 KB) | 5–7 command templates + cross-artifact reads (~15–25 KB) |
166
189
  | Model-tier awareness | Built into the philosophy (planner ≠ executor) | Not prescribed |
167
- | Generated artifacts per story | `intake.md`, `NN-story-<slug>.md`, overview row | `spec.md`, `plan.md`, `data-model.md`, `contracts/`, `research.md`, `quickstart.md`, `tasks.md` |
190
+ | Generated artifacts per story | `intake.md`, `NN-story-<id>.md`, overview row | `spec.md`, `plan.md`, `data-model.md`, `contracts/`, `research.md`, `quickstart.md`, `tasks.md` |
168
191
  | Customization | Prompts ship with the CLI (fork squad-kit to change them). | Template override stack with presets/extensions |
169
192
  | Runtime | Node + TypeScript, npm-distributable | Python + `uv` |
170
193
  | Scope | Intentionally small | Broad, with safety nets (`clarify`, `analyze`) |
@@ -178,7 +201,7 @@ See [`docs/philosophy.md`](docs/philosophy.md) for the token math and [`docs/vs-
178
201
  - **Quality depends on the planning model.** squad-kit has no safety-net commands. Use a strong model for `new-plan`.
179
202
  - **Plans are project-coupled.** They reference real file paths. That is the point — do not expect portability between projects.
180
203
  - **Global `NN` can collide on parallel branches.** Rebase-and-renumber is the resolution. Documented in [`docs/customization.md`](docs/customization.md).
181
- - **Anthropic Tier 1 + Opus** shares a tight input-token-per-minute bucket. **0.3.0** enables prompt caching by default so typical multi-turn plans stay viable; see [Prompt caching](docs/customization.md#prompt-caching) in the customization docs.
204
+ - **Anthropic Tier 1 + Opus** shares a tight input-token-per-minute bucket. **0.3.0** added prompt caching (on by default) so typical multi-turn plans stay viable; see [Prompt caching](docs/customization.md#prompt-caching) in the customization docs.
182
205
 
183
206
  ## Non-goals for 0.2
184
207
 
@@ -186,7 +209,7 @@ We ship lean on purpose. Current non-goals:
186
209
 
187
210
  - OpenAI-compatible generic endpoint (local models, OpenRouter, etc.); [Direct planner (optional)](#direct-planner-optional) covers hosted Anthropic, OpenAI, and Google
188
211
  - MCP server
189
- - `squad implement` (targeted for 0.3)
212
+ - `squad implement` (future release)
190
213
  - `/clarify`, `/analyze`, constitution-equivalent
191
214
  - Telemetry
192
215