@lovinka/vitrinka 1.7.1 → 1.9.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 +45 -0
- package/README.md +22 -5
- package/dist/bin-mcp.js +6 -2
- package/dist/bin-mcp.js.map +1 -1
- package/dist/cli.js +302 -145
- package/dist/cli.js.map +1 -1
- package/dist/mcp.js +18 -6
- package/dist/mcp.js.map +1 -1
- package/package.json +4 -6
- package/skills/artifact/SKILL.md +0 -82
- package/skills/brainstorming/SKILL.md +0 -107
- package/skills/screenshot/SKILL.md +0 -108
- package/skills/screenshot/gallery.mjs +0 -6
- package/skills/vitrinka/cli.ts +0 -39
- package/skills/vitrinka/commands/listen.md +0 -10
- package/skills/vitrinka/listen/SKILL.md +0 -197
- package/skills/vitrinka/tests/_helpers.ts +0 -108
- package/skills/vitrinka/tests/derive.test.ts +0 -118
- package/skills/vitrinka/tests/dx.test.ts +0 -264
- package/skills/vitrinka/tests/embed.test.ts +0 -96
- package/skills/vitrinka/tests/index.test.ts +0 -250
- package/skills/vitrinka/tests/install-name.test.ts +0 -117
- package/skills/vitrinka/tests/manifest.test.ts +0 -98
- package/skills/vitrinka/tests/operator.test.ts +0 -119
- package/skills/vitrinka/tests/push.test.ts +0 -115
- package/skills/vitrinka/tests/scaffold.test.ts +0 -173
- package/skills/vitrinka/tests/shim.test.ts +0 -28
- package/skills/vitrinka/tests/snap.test.ts +0 -175
- package/skills/vitrinka/tests/watch.test.ts +0 -204
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,51 @@
|
|
|
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
|
+
## 1.8.3 — 2026-07-11
|
|
7
|
+
|
|
8
|
+
### Fixed
|
|
9
|
+
- Interactive prompts (`install`'s operator question, any `promptLine`) strip
|
|
10
|
+
ANSI escape sequences and control characters — arrow-key edits no longer
|
|
11
|
+
persist raw `ESC[D`/`ESC[C` bytes into the operator name (which every fresh
|
|
12
|
+
browser adopted as its board identity). `vitrinka operator <name>` sanitizes
|
|
13
|
+
the same way, and the server now rejects control characters with 422.
|
|
14
|
+
|
|
15
|
+
## 1.8.2 — 2026-07-11
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
- Desktop-app flag: `~/.config/vitrinka/desktop-app` is the one canonical
|
|
19
|
+
"is Vitrinka.app installed" answer (content = app path). Stamped by
|
|
20
|
+
`apps/desktop make install`, re-synced by `install-claude` and `doctor`.
|
|
21
|
+
- `install-claude` adds a second **⧉ app** footer badge (only when the app is
|
|
22
|
+
installed) whose `vitrinka://` deep link opens the board in Vitrinka.app.
|
|
23
|
+
- `vitrinka open` opens the board in Vitrinka.app when installed;
|
|
24
|
+
`--browser` forces the browser.
|
|
25
|
+
|
|
26
|
+
## 1.8.1 — 2026-07-11
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
- `install-claude` now also wires a `SessionStart` hook
|
|
30
|
+
(`~/.claude/hooks/vitrinka-board-link.sh`) that puts the repo's live board
|
|
31
|
+
URL into session context at start — the clickable 🧷 footer badge exists
|
|
32
|
+
from message one instead of waiting for a board URL to be mentioned.
|
|
33
|
+
`vitrinka doctor` reports (and `--fix` repairs) the hook; `uninstall`
|
|
34
|
+
removes it.
|
|
35
|
+
|
|
36
|
+
## 1.8.0 — 2026-07-11
|
|
37
|
+
|
|
38
|
+
### Changed
|
|
39
|
+
- Skills now distribute EXCLUSIVELY as the vitrinka plugin — for Claude Code
|
|
40
|
+
(`claude plugin install vitrinka@lovinka`) AND Codex (`codex plugin add
|
|
41
|
+
vitrinka`), both from the `LEFTEQ/vitrinka` marketplace. `vitrinka install`,
|
|
42
|
+
`doctor --fix` and `update` install/refresh the plugin in every runtime CLI
|
|
43
|
+
they find; the npm package no longer bundles the skills.
|
|
44
|
+
- Skills layout flattened: `listen` is a first-class skill
|
|
45
|
+
(`/vitrinka:listen` in Claude Code, `$listen` in Codex).
|
|
46
|
+
|
|
47
|
+
### Removed
|
|
48
|
+
- `vitrinka install-skills` — superseded by the plugin. `vitrinka uninstall`
|
|
49
|
+
still clears legacy `~/.claude/skills` copies from pre-plugin machines.
|
|
50
|
+
|
|
6
51
|
## 1.6.0 — 2026-07-08
|
|
7
52
|
|
|
8
53
|
### Added
|
package/README.md
CHANGED
|
@@ -60,11 +60,28 @@ to wire the **Claude Code UI** — re-runnable standalone as `vitrinka install-c
|
|
|
60
60
|
`dir │ branch │ 🧷 board │ model` line itself. Needs `jq`; degrades to
|
|
61
61
|
pass-through without it, and never double-renders a board segment your own
|
|
62
62
|
statusline already prints.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
- **Session-start board link** — `~/.claude/hooks/vitrinka-board-link.sh`, a
|
|
64
|
+
`SessionStart` hook that prints the repo's live board URL into session
|
|
65
|
+
context at start, so the clickable footer badge exists from message one
|
|
66
|
+
(the statusline URL isn't clickable in every terminal). Silent no-op in
|
|
67
|
+
repos without a `.screenshots/.vitrinka` descriptor; needs `jq`.
|
|
68
|
+
- **App badge** (only when Vitrinka.app is installed) — a second
|
|
69
|
+
`footerLinksRegexes` entry that renders **⧉ app** next to the board badge;
|
|
70
|
+
its `vitrinka://` deep link opens the same board in the desktop app
|
|
71
|
+
(which registers only the custom scheme — https stays in the browser).
|
|
72
|
+
|
|
73
|
+
**Desktop-app flag** — `~/.config/vitrinka/desktop-app` is the ONE canonical
|
|
74
|
+
"is Vitrinka.app installed here" answer (content = the app path). `apps/desktop`'s
|
|
75
|
+
`make install` stamps it; `install-claude` and `doctor` re-sync it to reality
|
|
76
|
+
(and add/remove the app badge accordingly). Skills and tools should test this
|
|
77
|
+
flag file instead of probing `/Applications` themselves — `vitrinka open` uses
|
|
78
|
+
it to open boards in the app (pass `--browser` to force the browser).
|
|
79
|
+
|
|
80
|
+
All steps are idempotent — re-runs detect the wiring and no-op. To remove:
|
|
81
|
+
delete `~/.claude/vitrinka-statusline.sh` and `~/.claude/hooks/vitrinka-board-link.sh`,
|
|
82
|
+
restore `statusLine.command` in `~/.claude/settings.json` to the `VITRINKA_ORIG`
|
|
83
|
+
value (or drop the key), and remove the `footerLinksRegexes` entry whose pattern
|
|
84
|
+
contains `/boards/` plus the `hooks.SessionStart` entry running `vitrinka-board-link`.
|
|
68
85
|
|
|
69
86
|
For Claude Desktop or any other MCP client, add the equivalent entry by hand:
|
|
70
87
|
|
package/dist/bin-mcp.js
CHANGED
|
@@ -13,14 +13,18 @@ const sub = process.argv[2];
|
|
|
13
13
|
if (sub === '--help' || sub === '-h') {
|
|
14
14
|
process.stdout.write('vitrinka-mcp — Model Context Protocol server for vitrinka\n\n' +
|
|
15
15
|
'USAGE\n' +
|
|
16
|
-
' vitrinka-mcp Start the MCP server over stdio (
|
|
16
|
+
' vitrinka-mcp Start the MCP server over stdio (DEPRECATED — see below).\n' +
|
|
17
17
|
' vitrinka-mcp work … Run the unattended annotation worker (--repo <dir>).\n\n' +
|
|
18
18
|
'ENV\n' +
|
|
19
19
|
' VITRINKA_BASE_URL default https://vitrinka.lovinka.com\n' +
|
|
20
20
|
' VITRINKA_TOKEN bearer token; falls back to ~/.config/vitrinka/token\n' +
|
|
21
21
|
' (required only by mutating tools; reads work without it)\n\n' +
|
|
22
|
+
'DEPRECATED: the stdio server is replaced by the remote streamable-HTTP\n' +
|
|
23
|
+
'endpoint the Go server hosts at /mcp — same tools, zero local processes.\n\n' +
|
|
22
24
|
'REGISTER (Claude Code, user scope)\n' +
|
|
23
|
-
' claude mcp add --scope user
|
|
25
|
+
' claude mcp add --scope user --transport http vitrinka \\\n' +
|
|
26
|
+
' https://vitrinka.lovinka.com/mcp \\\n' +
|
|
27
|
+
' --header "Authorization: Bearer $(cat ~/.config/vitrinka/token)"\n');
|
|
24
28
|
process.exit(0);
|
|
25
29
|
}
|
|
26
30
|
if (sub === 'work') {
|
package/dist/bin-mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin-mcp.js","sourceRoot":"","sources":["../src/bin-mcp.ts"],"names":[],"mappings":";AACA,gFAAgF;AAChF,8CAA8C;AAC9C,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,EAAE;AACF,gFAAgF;AAChF,0EAA0E;AAC1E,8CAA8C;AAE9C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAE5B,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;IACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+DAA+D;QAC7D,SAAS;QACT,
|
|
1
|
+
{"version":3,"file":"bin-mcp.js","sourceRoot":"","sources":["../src/bin-mcp.ts"],"names":[],"mappings":";AACA,gFAAgF;AAChF,8CAA8C;AAC9C,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,EAAE;AACF,gFAAgF;AAChF,0EAA0E;AAC1E,8CAA8C;AAE9C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAE5B,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;IACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+DAA+D;QAC7D,SAAS;QACT,uFAAuF;QACvF,oFAAoF;QACpF,OAAO;QACP,6DAA6D;QAC7D,6EAA6E;QAC7E,mFAAmF;QACnF,0EAA0E;QAC1E,8EAA8E;QAC9E,sCAAsC;QACtC,8DAA8D;QAC9D,2CAA2C;QAC3C,wEAAwE,CAC3E,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;IACnB,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;AAC5B,CAAC;KAAM,CAAC;IACN,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;AAC3B,CAAC"}
|