@lovinka/vitrinka 1.17.0 → 1.20.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,64 @@
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.20.0 — 2026-07-23
7
+
8
+ ### Changed
9
+ - All output now lives under one `.vitrinka/` home in the target repo:
10
+ `.vitrinka/screenshots/` (was `.screenshots/`), `.vitrinka/artifacts/<slug>/`
11
+ (was `.artifacts/`), plus `.vitrinka/scratch/<topic>/` as the sanctioned spot
12
+ for ad-hoc session output. Legacy roots auto-migrate the first time a command
13
+ touches them; explicit `--root`/`--from` paths are respected as given.
14
+
15
+ ### Added
16
+ - `vitrinka tidy [--yes] [--all]` — report-first sweep of legacy roots and
17
+ shot-shaped repo-root litter (`.screenshots-<topic>/`, loose `shot-*.png`)
18
+ into `.vitrinka/`; `--all` also moves loose images and `.aud_*` text litter.
19
+ Git-tracked files are never touched.
20
+ - Plugin skills `/vitrinka:annotations` + `/vitrinka:answers` — manual MCP
21
+ fallback drains for when a "Send to Claude" dispatch doesn't reach the
22
+ session (annotation work queue / durable question answers).
23
+
24
+ ## 1.19.0 — 2026-07-23
25
+
26
+ ### Added
27
+ - `vitrinka setup-project` — the repo onboarding wizard (clack-styled TUI, the
28
+ pkg's first runtime deps: `@clack/prompts` + `picocolors`). One front door for
29
+ everything a repo needs before the editor and board @ autocomplete work:
30
+ machine-install gate (offers `install` inline when the machine isn't
31
+ onboarded), project name + registry record, file/route index push (verified),
32
+ component-index with auto-detected candidate dirs, desktop-app check, and an
33
+ optional hello board. Status-first and idempotent — re-runs refresh the cheap
34
+ bits and only prompt for what's missing; `--yes`/non-TTY takes every default.
35
+ - `edit` and `status` print a one-line hint toward `vitrinka setup-project`
36
+ while the repo has never been indexed.
37
+
38
+ ## 1.18.0 — 2026-07-21
39
+
40
+ ### Added
41
+ - `vitrinka edit [path]` — focus the resident Vitrinka.app editor on a file or
42
+ project via the `vitrinka://edit?path=…` deep link (`--print` emits only the
43
+ URL; when the app isn't installed it prints an install hint). The instant
44
+ editor's CLI entry point.
45
+ - Automatic project registry: `edit`, `status`, `watch`, and `board-from-set`
46
+ now record `{project → main-worktree path}` to
47
+ `~/.config/vitrinka/projects.json` as a side effect, so the desktop editor
48
+ auto-discovers your live checkouts with zero extra UX. Best-effort — a write
49
+ failure never breaks the command.
50
+ - `compose_board` accepts kind `"artifact"` — a sandboxed self-contained HTML
51
+ card straight from a compose batch: `{html}` full document or
52
+ `{body, runtime: "tw4"}` markup-only (server inlines the Tailwind v4
53
+ runtime; dramatically cheaper). Up to 8 MiB inline.
54
+
55
+ ### Changed
56
+ - `compose_board`'s card schema is slim: the tool description now carries the
57
+ kind index + quick shapes only; per-kind payload contracts live in the
58
+ vitrinka plugin skills (the publish skill's `references/card-kinds.md` is
59
+ the index). Unknown kinds still 400 with the full allowed list.
60
+ - `vitrinka import` (and `POST /import`) replies with a compact per-card
61
+ summary (`{id, elemNo, kind, title, counts, section?}`); pass `--verbose`
62
+ (API: `?verbose=1`) for the full card JSON.
63
+
6
64
  ## 1.17.0 — 2026-07-20
7
65
 
8
66
  ### 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