@vitrinka/cli 3.10.0 → 4.0.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.
Files changed (2) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/package.json +7 -7
package/CHANGELOG.md CHANGED
@@ -3,6 +3,91 @@
3
3
  `vitrinka update` prints the sections newer than your previous version after
4
4
  updating — keep entries short and user-facing.
5
5
 
6
+ ## 4.0.0
7
+
8
+ One `--json` shape for ordinary commands, including help, version and doctor.
9
+ An agent reads `ok`, then `data` or `diagnostics`, then `next`.
10
+
11
+ ### Changed (breaking)
12
+ - **`--json` is an envelope**: ordinary commands print
13
+ `{v: 1, ok, verb, data, diagnostics, next}` on stdout, success and failure
14
+ alike. What a command printed before is now its `data`; a failure carries
15
+ one or more `diagnostics` (`code` · `severity` · `detail` · `why` · `fix`
16
+ · `http_status`) plus `exit_code`, and `next` lists `{do, cmd}` steps.
17
+ Scripts reading a top-level field (`.url`, `.slug`, `.error`) read
18
+ `.data.url` / `.diagnostics[0].detail` now.
19
+ - **Misuse is a coded diagnostic, exit 2** — an unknown command, a wrong
20
+ argument count or a bad flag value answers `unknown_command` /
21
+ `bad_argument` with the corrected invocation in `fix`. An unknown
22
+ subcommand no longer prints the group's help page and exits 0.
23
+ - **Every failure carries a `code`** from one closed vocabulary shared with
24
+ the server (`not_signed_in`, `unreachable`, `not_found`,
25
+ `gateway_unavailable`, …); an error with no better class is `failed`.
26
+ A raw library error never reaches you as styled prose under `--json`.
27
+
28
+ ### Added
29
+ - A bare group under `--json` (`vitrinka task --json`) lists its commands
30
+ as `data.commands` instead of printing help.
31
+ - The server's own error `code`, `detail` and `fix` are read into the
32
+ diagnostic when the reply carries them.
33
+ - REST errors, including authentication and routing failures, carry a code
34
+ and recovery instructions. MCP exposes the same object in `structuredContent`.
35
+ - `doctor --json` emits one failure with check results. Permission failures
36
+ do not suggest repeated login; malformed JSON bodies cannot silently mutate data.
37
+ - Protocol/stream exceptions retain their output: MCP, extension host,
38
+ child commands via `run`, `listen`, continuous `work watch`, raw `auth token`,
39
+ completion scripts and interactive UI.
40
+ - Go source builds use module `github.com/henderson-tech/vitrinka`; update
41
+ custom import paths and `-ldflags -X` references when building from source.
42
+
43
+ ## 3.11.0
44
+
45
+ The task is the handoff: a session picks a task up from one bounded view,
46
+ files what it spots the moment it sees it, and hands back through one door
47
+ whose printed block is the hand-back. Every AI coding harness can listen.
48
+
49
+ ### Added
50
+ - **`vitrinka task pickup [id|url]`** — the server-composed pickup: what the
51
+ task is about, the last hand-back, the branch (and whether it exists on
52
+ origin), what to read first, who is on it, the open children in rank order
53
+ and what was deliberately not loaded. MCP: `get_task {view: "pickup"}`.
54
+ - **`vitrinka task handback [id]`** — one atomic door: next steps and
55
+ omissions become ranked children, the summary becomes the next version of
56
+ the task's `handoff` attachment, PR/board refs and status land, the parent
57
+ epic's `next_action` moves, and the printed block is the hand-back to paste
58
+ verbatim. `-` reads the exact REST body from stdin. MCP: `hand_back`.
59
+ - **`vitrinka task spot <title>`** — file a defect or follow-up under the
60
+ bound task (else the project's rolling *Found during implementation* epic)
61
+ the moment you see it; `--production` adds the might-affect-production
62
+ label. MCP: `spot`.
63
+ - **`vitrinka task start`** with no id binds the checkout's `vt-<id>` branch.
64
+ - **Hooks**: `vitrinka project setup` offers the three Claude Code hooks
65
+ interactively and shows the exact `settings.json` entries — SessionStart
66
+ prints the pickup, SessionEnd writes the git residue into the run, and a
67
+ Stop gate asks for `hand_back` on a hand-back turn. `vitrinka install`
68
+ keeps registering them.
69
+ - Two built-in rules move status by themselves: a run starting marks the
70
+ task in progress, an opened PR marks it in review (`merged-pr-completes`
71
+ stays).
72
+ - **`vitrinka listen --harness <name>`** — host any harness (Codex, Gemini,
73
+ OpenCode, Cursor, …) over the Agent Client Protocol and feed it the scope's
74
+ board work; **`work watch --exec <harness>`** is the headless resume rung.
75
+ `install` provisions the adapters behind consent; `doctor` prints the
76
+ `listen·` and `acp·` rows.
77
+ - **`vitrinka search <text>`** — the ⌘K palette from the terminal: tasks,
78
+ pages, boards, tags, cards, sessions and shots in one call; **`vitrinka
79
+ resolve <url>`** names what a pasted app URL points at, in any workspace.
80
+ - **`vitrinka project fold <name> --into <home>`** (`fold-plan` for the dry
81
+ run) folds a stray project name into its real home and leaves an alias;
82
+ `project transfer` retires the source name.
83
+ - Skills: `pickup`, `spot` and `handoff` (module `pm`); `listen` carries the
84
+ ONE listening ladder every finishing skill points at.
85
+
86
+ ### Changed
87
+ - A task or epic URL in a prompt means "pickup first" for every MCP client;
88
+ the full tree is never loaded up front.
89
+ - Task deep links are `/p/<project>/t/<id>`; the `/t/<id>` short form is gone.
90
+
6
91
  ## 3.10.0
7
92
 
8
93
  One verb per testing lane: run your suite, or explore by hand, and vitrinka
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitrinka/cli",
3
- "version": "3.10.0",
3
+ "version": "4.0.0",
4
4
  "description": "vitrinka CLI — capture and publish artifact sets, drive the annotation-board work queue. Thin npm launcher for the single-binary Go CLI.",
5
5
  "bin": {
6
6
  "vitrinka": "bin/vitrinka.js"
@@ -15,12 +15,12 @@
15
15
  "node": ">=18"
16
16
  },
17
17
  "optionalDependencies": {
18
- "@vitrinka/cli-darwin-arm64": "3.10.0",
19
- "@vitrinka/cli-darwin-x64": "3.10.0",
20
- "@vitrinka/cli-linux-arm64": "3.10.0",
21
- "@vitrinka/cli-linux-x64": "3.10.0",
22
- "@vitrinka/cli-win32-arm64": "3.10.0",
23
- "@vitrinka/cli-win32-x64": "3.10.0"
18
+ "@vitrinka/cli-darwin-arm64": "4.0.0",
19
+ "@vitrinka/cli-darwin-x64": "4.0.0",
20
+ "@vitrinka/cli-linux-arm64": "4.0.0",
21
+ "@vitrinka/cli-linux-x64": "4.0.0",
22
+ "@vitrinka/cli-win32-arm64": "4.0.0",
23
+ "@vitrinka/cli-win32-x64": "4.0.0"
24
24
  },
25
25
  "keywords": [
26
26
  "vitrinka",