@lovinka/vitrinka 1.17.0 → 1.18.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 CHANGED
@@ -3,6 +3,34 @@
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
+ ## Unreleased
7
+
8
+ ## 1.18.0 — 2026-07-21
9
+
10
+ ### Added
11
+ - `vitrinka edit [path]` — focus the resident Vitrinka.app editor on a file or
12
+ project via the `vitrinka://edit?path=…` deep link (`--print` emits only the
13
+ URL; when the app isn't installed it prints an install hint). The instant
14
+ editor's CLI entry point.
15
+ - Automatic project registry: `edit`, `status`, `watch`, and `board-from-set`
16
+ now record `{project → main-worktree path}` to
17
+ `~/.config/vitrinka/projects.json` as a side effect, so the desktop editor
18
+ auto-discovers your live checkouts with zero extra UX. Best-effort — a write
19
+ failure never breaks the command.
20
+ - `compose_board` accepts kind `"artifact"` — a sandboxed self-contained HTML
21
+ card straight from a compose batch: `{html}` full document or
22
+ `{body, runtime: "tw4"}` markup-only (server inlines the Tailwind v4
23
+ runtime; dramatically cheaper). Up to 8 MiB inline.
24
+
25
+ ### Changed
26
+ - `compose_board`'s card schema is slim: the tool description now carries the
27
+ kind index + quick shapes only; per-kind payload contracts live in the
28
+ vitrinka plugin skills (the publish skill's `references/card-kinds.md` is
29
+ the index). Unknown kinds still 400 with the full allowed list.
30
+ - `vitrinka import` (and `POST /import`) replies with a compact per-card
31
+ summary (`{id, elemNo, kind, title, counts, section?}`); pass `--verbose`
32
+ (API: `?verbose=1`) for the full card JSON.
33
+
6
34
  ## 1.17.0 — 2026-07-20
7
35
 
8
36
  ### Added
package/README.md CHANGED
@@ -52,19 +52,6 @@ to wire the **Claude Code UI** — re-runnable standalone as `vitrinka install-c
52
52
  renders a clickable **🧷 board** badge in Claude Code's footer whenever a
53
53
  `/boards/` URL appears in the conversation (clickable in every terminal;
54
54
  needs Claude Code ≥ 2.1.176).
55
- - **Statusline segment** — `~/.claude/vitrinka-statusline.sh` wraps your existing
56
- statusline command (recorded on its `VITRINKA_ORIG=` line) and appends a
57
- `🧷 <board-url>` segment when the session's `.screenshots/.vitrinka` descriptor
58
- exists (plain-text URL — Claude Code strips OSC 8 from statusline output, and
59
- terminals cmd+click-linkify visible URLs themselves); with no statusline configured it renders a minimal
60
- `dir │ branch │ 🧷 board │ model` line itself. Needs `jq`; degrades to
61
- pass-through without it, and never double-renders a board segment your own
62
- statusline already prints.
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
55
  - **App badge** (only when Vitrinka.app is installed) — a second
69
56
  `footerLinksRegexes` entry that renders **⧉ app** next to the board badge;
70
57
  its `vitrinka://` deep link opens the same board in the desktop app
@@ -77,11 +64,23 @@ to wire the **Claude Code UI** — re-runnable standalone as `vitrinka install-c
77
64
  flag file instead of probing `/Applications` themselves — `vitrinka open` uses
78
65
  it to open boards in the app (pass `--browser` to force the browser).
79
66
 
67
+ **Instant editor** — `vitrinka edit [path]` focuses the resident app on a file or
68
+ project via the `vitrinka://edit?path=…` deep link (`--print` emits only the URL).
69
+ Whenever a command already knows the repo — `edit`, `status`, `watch`,
70
+ `board-from-set` — it records `{project → main-worktree path}` to
71
+ `~/.config/vitrinka/projects.json`, so the desktop editor auto-discovers your live
72
+ checkouts with no extra step (it enumerates worktrees itself via `git worktree list`).
73
+
80
74
  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`.
75
+ drop the `footerLinksRegexes` entries whose pattern contains `/boards/` from
76
+ `~/.claude/settings.json` (or run `vitrinka uninstall`).
77
+
78
+ The old **statusline segment** and **session-start board-link hook** were
79
+ retired (docs/specs/2026-07-20-menubar-tray-decisions.md): active-board
80
+ visibility now lives in the desktop app's **menu bar tray** (`apps/desktop`),
81
+ which shows the boards with a live listener lease on this machine. `vitrinka
82
+ install`/`update`/`uninstall` clean the legacy wrapper + hook off existing
83
+ installs and restore your original `statusLine.command`.
85
84
 
86
85
  For Claude Desktop or any other MCP client, add the equivalent entry by hand:
87
86