chore(voyage): release v5.0.3 — annotation UX matches the claude-code-100x reference
The operator pointed at ~/repos/claude-code-100x/claude-code-100x/build-site.js
as the annotation reference from the start. v4.2/v4.3 built a bespoke
playground instead. v5.0.0 deleted it. v5.0.1 pointed at /playground
document-critique (Claude-leads, wrong direction). v5.0.2 was operator-led
but too thin (line-click + freeform note, no intent). v5.0.3 finally
matches the reference.
scripts/annotate.mjs rewritten:
- Markdown rendered as proper article HTML (h1/p/li/ul/table/blockquote/pre)
instead of line-numbered raw lines.
- Pencil-toggle annotation mode in the topbar, default ON.
- Select text OR click any element → form popover at cursor.
- Three intent buttons: Fiks (red) / Endre (orange) / Spørsmål (blue).
- Comment textarea. Save (Cmd+Enter), Cancel (Esc).
- Section context auto-detected from nearest h1/h2.
- Sidebar panel: annotations grouped by section, intent badges,
snippet quotes, delete buttons, click-to-scroll with flash highlight.
- Copy Prompt: structured markdown export with intent labels.
- localStorage persistence keyed on absolute artifact path
(voyage-annotate:v2: prefix to avoid colliding with v5.0.2 state).
Tests: 12 (up from 10), all passing. npm test: 518 / 516 pass / 0 fail / 2 skipped.
Reference: ~/repos/claude-code-100x/claude-code-100x/build-site.js
lines 1431–2255 (annotation UI section).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
8ea692bc60
commit
9ba8b682ef
11 changed files with 974 additions and 491 deletions
|
|
@ -4,6 +4,84 @@ All notable changes to this project will be documented in this file.
|
|||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||
|
||||
## v5.0.3 — 2026-05-13 — Annotation UX matches the claude-code-100x reference
|
||||
|
||||
**No new breaking changes beyond v5.0.0.** Forks consuming v5.0.2's
|
||||
annotation HTML keep working — the file path and entry point are
|
||||
unchanged. The internal localStorage key bumps from `voyage-annotate:` to
|
||||
`voyage-annotate:v2:` to avoid mixing the v5.0.2 shape (line-click,
|
||||
freeform notes) with the v5.0.3 shape (intent-tagged annotations).
|
||||
|
||||
### Why
|
||||
|
||||
v5.0.2 shipped a too-simple annotation surface: click a line, write a
|
||||
freeform note, save. The operator pointed at the existing
|
||||
`claude-code-100x/build-site.js` annotation system as the actual
|
||||
reference — pencil-toggle mode, text-selection capture, three intent
|
||||
categories (**Fiks** / **Endre** / **Spørsmål**), a popover form at the
|
||||
cursor, structured markdown export with intent labels. v5.0.3 brings
|
||||
`scripts/annotate.mjs` up to that pattern.
|
||||
|
||||
This reference had been mentioned by the operator early in the
|
||||
conversation; the iteration through v5.0.0 / v5.0.1 / v5.0.2 reflects me
|
||||
reading past it and trying alternatives instead of just matching it. The
|
||||
loss is real and is documented here in plain terms so future maintainers
|
||||
don't repeat it.
|
||||
|
||||
### Changed
|
||||
|
||||
- **`scripts/annotate.mjs`** — rewritten to match the
|
||||
`claude-code-100x/build-site.js` UX:
|
||||
- **Article rendering** — markdown is rendered to proper HTML elements
|
||||
(`<h1>`/`<p>`/`<ul>`/`<li>`/`<table>`/`<blockquote>`/`<pre>`), not as
|
||||
line-numbered raw lines. Document reads as a normal article.
|
||||
- **Annotatable elements** — every heading, paragraph, list item, table
|
||||
cell, blockquote, and code block gets a stable `data-anchor-id`.
|
||||
- **Pencil-toggle button** in the topbar — annotation mode default ON.
|
||||
Toggle OFF to read normally and follow links.
|
||||
- **Click any annotatable element** (in mode) → opens a form popover
|
||||
at the cursor with: section context (auto-detected from nearest
|
||||
h1/h2), anchored snippet (the exact selected substring via
|
||||
`window.getSelection()` if any text is highlighted, else the
|
||||
element's text content up to 200 chars), three intent buttons
|
||||
(**Fiks** / **Endre** / **Spørsmål**), comment textarea, Cancel +
|
||||
Save. Save is disabled until an intent is picked.
|
||||
- **Sidebar panel** — collapsed by default; "Show annotations" button
|
||||
in the topbar opens it. Annotations grouped by section, sorted by
|
||||
document order. Each card shows the intent badge (colored by
|
||||
category), the anchored snippet, the operator comment, and a delete
|
||||
button. Click a card to scroll the article to that element + flash
|
||||
highlight.
|
||||
- **Copy Prompt** — structured markdown:
|
||||
`### N. [Intent] Section: <section>` + `Quote: «<snippet>»` +
|
||||
`Comment: <text>`. Copies to clipboard.
|
||||
- **Clear all** — wipes every annotation for the current artifact
|
||||
(after confirm).
|
||||
- **Persistence** — `localStorage` key `voyage-annotate:v2:<abs path>`.
|
||||
Refresh/close/reopen the same HTML keeps every annotation.
|
||||
- **Toast feedback** for save / copy / clear.
|
||||
- **`tests/scripts/annotate.test.mjs`** — refreshed for the v5.0.3 shape:
|
||||
pins the three intent buttons (`data-intent="fiks"` / `"endre"` /
|
||||
`"spørsmål"`), form popover, selection capture, section auto-detect,
|
||||
`voyage-annotate:v2:` storage key prefix, `data-anchor-id` coverage,
|
||||
Copy Prompt + Clear all affordances, and the markdown renderer's
|
||||
heading / list / table / blockquote / code-fence output. 12 tests
|
||||
(up from 10), all passing.
|
||||
|
||||
### Notes
|
||||
|
||||
- The producing commands (`/trekbrief` Step 4g, `/trekplan` Phase 10,
|
||||
`/trekreview` Phase 8) call `scripts/annotate.mjs` the same way as in
|
||||
v5.0.2 — no change to their wiring beyond the build-output now being
|
||||
the v5.0.3 interactive surface.
|
||||
- `npm test`: 518 tests, 516 pass, 0 fail, 2 skipped (up from 516 — 2
|
||||
new annotate tests for hostile-content escape + renderMarkdown table/
|
||||
blockquote coverage).
|
||||
- Reference: `~/repos/claude-code-100x/claude-code-100x/build-site.js`
|
||||
lines 1431–2255 (annotation UI section).
|
||||
- Version bump 5.0.2 → 5.0.3 in `.claude-plugin/plugin.json`,
|
||||
`package.json`, `package-lock.json`, plugin `README.md` badge.
|
||||
|
||||
## v5.0.2 — 2026-05-13 — Operator-driven annotation HTML (the actual fix)
|
||||
|
||||
**No new breaking changes beyond v5.0.0.** Forks that consumed the v5.0.1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue