@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.
- package/CHANGELOG.md +85 -0
- 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
|
+
"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": "
|
|
19
|
-
"@vitrinka/cli-darwin-x64": "
|
|
20
|
-
"@vitrinka/cli-linux-arm64": "
|
|
21
|
-
"@vitrinka/cli-linux-x64": "
|
|
22
|
-
"@vitrinka/cli-win32-arm64": "
|
|
23
|
-
"@vitrinka/cli-win32-x64": "
|
|
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",
|