vantage-md 0.6.1 → 0.7.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 ADDED
@@ -0,0 +1,211 @@
1
+ # Changelog
2
+
3
+ What changed in each release of Vantage, newest first.
4
+
5
+ Releases before 0.7.0 are summarized one section per minor line — `0.6.x`,
6
+ `0.5.x` — rather than one per patch release. The per-patch detail is in the
7
+ commit log.
8
+
9
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
10
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
11
+
12
+ ## [0.7.0] - 2026-09-23
13
+
14
+ Vantage now supports color themes and bookmarks, and reads per-project settings
15
+ from `.vantage.toml`.
16
+
17
+ ### Added
18
+
19
+ **Color themes.** Pick a palette under **Colors** in the settings menu. Six come
20
+ with Vantage: Catppuccin, Gruvbox, Lila, Nord, Solarized, and Tokyo Night, each
21
+ with its own light and dark variants, alongside the default look, now called
22
+ Slate.
23
+
24
+ To write your own, put a CSS file in `~/.config/vantage/themes/`. It shows up in
25
+ the menu on the next page load, with no restart. Set `theme = "gruvbox"` in your
26
+ config to start every browser in one. A project can suggest a theme in its
27
+ `.vantage.toml`, and your own choice always wins. A theme with no dark colors is
28
+ listed as "(light only)". Every built-in theme keeps its text at 3:1 contrast or
29
+ better in both modes, checked in a real browser; your own themes aren't checked.
30
+ Review mode's comment colors and printing still ignore the theme. See
31
+ [Color Themes](userguide/guides/themes.md).
32
+
33
+ **Bookmarks.** Click the star next to a document's name to bookmark it. Folders
34
+ work too. Bookmarks appear in a **Starred** section above the file tree. They're
35
+ stored in `~/.local/share/vantage/starred/` instead of in your browser, so they
36
+ survive a restart and show up in every tab. If a bookmarked file disappears, the
37
+ entry stays put and offers to remove itself when you open it.
38
+
39
+ A project can also list the documents worth reading first in its `.vantage.toml`,
40
+ and you can list files you always want starred in your own config. Those entries
41
+ are marked with a pin and name the file that added them. See
42
+ [Starred](userguide/features.md#starred).
43
+
44
+ **Open questions in the contents panel.** A document's open questions now appear
45
+ in the table of contents, under the heading they sit below, with a count next to
46
+ **Contents**. `💬 3` means three are waiting on a decision; `💬 1 ✅ 2` means one
47
+ is open and two are answered. Click one to jump to it. See
48
+ [Table of Contents](userguide/features.md#table-of-contents).
49
+
50
+ ### Changed
51
+
52
+ Settings now follow you between tabs. Before, a second tab read most settings
53
+ once when it loaded and then drifted, so changing the theme in one tab left the
54
+ other on the old one. `Shift+D` had the same problem inside a single tab: it
55
+ changed the page without updating the settings menu. The sidebar and its width,
56
+ the tree filters, the project sort order, light/dark, and the color theme all
57
+ stay in sync now.
58
+
59
+ Review mode is a deliberate exception. Two tabs are usually on different
60
+ documents, and picking up a toggle from another tab would close the review pane
61
+ while you're partway through a comment.
62
+
63
+ ### Fixed
64
+
65
+ - The file pickers (`t`, `Shift+T`, `Shift+R`, `Shift+P`) reload their list every
66
+ time they open, and a picker that's already open keeps up with the filesystem.
67
+ Before, a file created after the page loaded was unfindable until you
68
+ reloaded.
69
+ - A modified file's icon was too faint to read in the file tree in light mode.
70
+ - A document that fails to load no longer moves you off the one you're reading,
71
+ and the error names the file you actually asked for.
72
+ - A slow response for a document you've already navigated away from is thrown
73
+ away instead of replacing what you're reading.
74
+ - `vantage-check check --config <a directory>` now says
75
+ `docs is a directory, not a config file` and exits 2, instead of printing a
76
+ stack trace.
77
+
78
+ ### Contributors
79
+
80
+ Thanks to [@nichiflu](https://github.com/nichiflu) for the initial color-theme
81
+ implementation.
82
+
83
+ ### Works well with
84
+
85
+ [matt-craft](https://github.com/mschulkind-oss/matt-craft) is out — the skills I use to
86
+ write the documents I then read in Vantage: design notes that carry their open
87
+ questions, roadmaps, research rounds, user stories, and one for Vantage's own Markdown
88
+ conventions. It is not part of Vantage and Vantage does not need it. If you write your
89
+ own documents your own way, nothing here changes for you.
90
+
91
+ ## 0.6.x
92
+
93
+ _0.6.0 – 0.6.2, September 2026._
94
+
95
+ Long documents have a table of contents. The list button beside the breadcrumb
96
+ shows the document's headings in the left margin, and the list stays put while
97
+ you scroll. The button beside it lets the text fill the pane. The reading band
98
+ moved to the left edge too, so the file list, the contents, and the text sit
99
+ together.
100
+
101
+ - Serving a git repository no longer makes the browser reload itself once a
102
+ second. Vantage's own `git status` calls rewrote `.git/index`, and the watcher
103
+ read that as your edit.
104
+ - A repository cloned under one of your `source_dirs` shows up within thirty
105
+ seconds, with no restart. One whose directory goes away is dropped, then
106
+ picked back up when it returns. See
107
+ [Daemon Mode](userguide/guides/daemon-mode.md).
108
+ - A port you name is bound exactly or startup fails. Only the default 8000 walks
109
+ to the next free port, and it tells you which one it took.
110
+ - Images on adjacent lines render on one row, the way GitHub lays them out. A
111
+ README's badges used to stack into a column.
112
+ - `vantage-check` splits a run across worker threads by default, and the report
113
+ reads the same either way.
114
+
115
+ ### Contributors
116
+
117
+ Thanks to Eduardo Hidalgo ([@edus44](https://github.com/edus44)) for the table
118
+ of contents, the Vantage favicon, and fixes to port selection and spurious
119
+ browser reloads.
120
+
121
+ ## 0.5.x
122
+
123
+ _0.5.0 – 0.5.10, May to September 2026._
124
+
125
+ Vantage stopped being a Python server and became one Go binary. The viewer and
126
+ the shortcuts are the same; installing it is not. You install it with `brew
127
+ install`, `uvx vantage-md ~/notes`, or a platform archive from a release.
128
+ `vantage serve` opens your browser, and `--no-open` stops it.
129
+
130
+ - `vantage-check` is new. It runs your documents through the viewer's own
131
+ pipeline and reports dead links, dead anchors, broken mermaid diagrams, and
132
+ style problems. See [vantage-check](userguide/guides/vantage-check.md).
133
+ - You can mark a document up with `<!-- vantage: … -->` comments that GitHub
134
+ ignores and Vantage reads: a status chip beside a heading, collapsible
135
+ sections, emphasis, and badges. GitHub's alert blocks render too.
136
+ - Review mode was rebuilt. A comment anchors to a whole block, replies thread, a
137
+ rail shows where the comments are, and you can answer an open question in one
138
+ click. Agents reply through a `.vantage/` directory. See
139
+ [The `.vantage/` directory](userguide/guides/review-inbox.md).
140
+ - The "What's New" popup, the changed-document highlight, and the jj history
141
+ viewer were removed.
142
+ - `.vantageignore` and `~/.config/vantage/ignore` keep files out of the tree, and
143
+ the sidebar has a drag handle that remembers its width.
144
+
145
+ ## 0.4.x
146
+
147
+ _0.4.0 – 0.4.2, April 2026._
148
+
149
+ Installing Vantage got short. `uvx vantage-md ~/notes` started the server and
150
+ opened your browser at the directory you named, and naming a file landed on that
151
+ file with the sidebar already expanded. There was a Homebrew formula as well.
152
+ macOS became a platform Vantage was tested on.
153
+
154
+ - Review mode became per file. Turning it on for one document no longer followed
155
+ you to the next, and the toggle survived a reload even before you had written a
156
+ comment.
157
+ - Hovering any paragraph in review mode put a button in the gutter, so you could
158
+ comment on a whole block without selecting text first.
159
+ - You could edit a comment in place, from the document or from the sidebar.
160
+ Resolved comments collapsed into one indicator instead of asking to be
161
+ dismissed one at a time.
162
+ - A comment you had just written was sometimes marked "Outdated" immediately.
163
+ - `log_level` in the config, `VANTAGE_LOG_LEVEL` in the environment. The watcher
164
+ reported your inotify limits at startup and warned near the ceiling, which is
165
+ the usual reason live reload stops working.
166
+
167
+ ## 0.3.x
168
+
169
+ _0.3.0 – 0.3.8, April 2026._
170
+
171
+ This is the line that added review mode. You turned it on for a document,
172
+ selected some text, and left a comment. The server stored the comments, so they
173
+ survived a restart. When the text under a comment changed, the comment turned
174
+ amber and said "Outdated". Every save while review mode was on snapshotted the
175
+ previous version, so you could step back through revisions and see which
176
+ paragraphs had changed. One button copied every comment as Markdown quotes, with
177
+ line numbers and surrounding context, ready to paste to an agent.
178
+
179
+ - Opening a project no longer waited for its file tree. The document rendered
180
+ first and the sidebar filled in behind it.
181
+ - Headings got hover anchors, and `#L42` or `#L42-L50` in the URL scrolled to
182
+ those source lines and highlighted them.
183
+ - You could collapse the sidebar to give the document the window, and reveal
184
+ hidden or gitignored files with new toggles.
185
+ - TOML frontmatter between `+++` fences was parsed and shown, with taxonomies and
186
+ extra fields as tag pills.
187
+ - A red banner with a timer appeared when the page lost its connection, so a
188
+ document that had stopped live-reloading said so.
189
+
190
+ ## 0.2.x and earlier
191
+
192
+ _0.0.1 – 0.2.0, February to March 2026._
193
+
194
+ Where Vantage started. It served the Markdown in your git repositories over a
195
+ local port and reloaded the page when you saved: GitHub-flavored Markdown,
196
+ syntax highlighting, KaTeX math, mermaid diagrams you could click to zoom,
197
+ commit history and diffs, a fuzzy file picker on `t`, dark mode on `Shift+D`,
198
+ vim-style scrolling, and a print stylesheet. It could also export a static site
199
+ to host on Cloudflare Pages or S3. The server was written in Python then.
200
+
201
+ - `Shift+T` searched files across every project, `P` switched projects, `r` and
202
+ `Shift+R` found recently modified files, and `y` copied the current file's
203
+ absolute path.
204
+ - `source_dirs` in the config found every git repository under a directory, so
205
+ you did not have to list them one by one.
206
+ - The project picker became a full page, with repository names, relative
207
+ timestamps, and a toggle between alphabetical and recent order.
208
+ - A "What's New" popup showed the changelog the first time you opened a new
209
+ version. You could turn it off in settings. Vantage dropped it in 0.5.
210
+ - A jj history and evolution viewer sat beside the git one, for Jujutsu
211
+ repositories. That went in 0.5 too.
package/README.md CHANGED
@@ -76,7 +76,7 @@ The React component includes mermaid diagram rendering (lazy-loaded), frontmatte
76
76
  ### Your own processor, Vantage's chain
77
77
 
78
78
  `buildPipeline` returns the exact remark and rehype lists `renderMarkdown` and
79
- the React viewer use, in the exact order — including the sanitiser schema, and
79
+ the React viewer use, in the exact order — including the sanitizer schema, and
80
80
  `rehypeSlug` after it, which is what keeps generated heading ids free of
81
81
  `rehype-sanitize`'s `user-content-` prefix. Use it rather than assembling the
82
82
  chain yourself; that is how a document ends up rendering differently in two
@@ -118,7 +118,7 @@ if all you want is `data-source-line`.
118
118
 
119
119
  | Entry point | Description |
120
120
  |-------------|-------------|
121
- | `vantage-md` | `renderMarkdown`, `buildPipeline`, `buildRemarkPlugins`, `rehypeSourceLines`, `scrollToLineAnchor`, `parseLineAnchor`, `parseFrontmatter`, `readVantageFrontmatter`, `sanitizeSchema` |
121
+ | `vantage-md` | `renderMarkdown`, `buildPipeline`, `buildRemarkPlugins`, `rehypeSourceLines`, `scrollToLineAnchor`, `parseLineAnchor`, `parseFrontmatter`, `readVantageFrontmatter`, `sanitizeSchema`, `COLOR_THEME_ATTRIBUTE`, `COLOR_THEME_SOURCE_ATTRIBUTE`, `currentColorTheme` |
122
122
  | `vantage-md/react` | `MarkdownViewer`, `useLineAnchor`, `MermaidDiagram`, `FrontmatterDisplay`, `DocumentStatusChip` + all core exports |
123
123
  | `vantage-md/styles` | Line-anchor highlight CSS, plus the theme layer for the `data-vantage-*` directive attributes and the chrome chips (light + dark mode) |
124
124
 
@@ -132,6 +132,7 @@ if all you want is `data-source-line`.
132
132
  - **Frontmatter** — YAML (`---`) and TOML (`+++`) parsing. A reserved `vantage:` key carries file-scoped chrome: `status-chip: true` makes `FrontmatterDisplay` render the document's `status:` as a chip above the metadata card, and the reserved key itself is never shown as a metadata row
133
133
  - **Sanitization** — XSS-safe with allowlisted KaTeX/MathML elements
134
134
  - **Dark mode** — all styles support `.dark` class
135
+ - **Color themes** — `MermaidDiagram` follows a host page's color theme. While `<html>` carries `data-vantage-theme` (`COLOR_THEME_ATTRIBUTE`), diagram colors are read from the page's `--color-slate-*` variables instead of the built-in hex, and diagrams redraw when it or `data-vantage-theme-source` (`COLOR_THEME_SOURCE_ATTRIBUTE`: `built-in` or `user`, which tells a user theme apart from the built-in it replaces under the same id) changes. `currentColorTheme()` reads the first. A page that sets neither renders exactly as before
135
136
 
136
137
  ## License
137
138