tandem-editor 0.2.11 → 0.2.12

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
@@ -1,117 +1,130 @@
1
- # Changelog
2
-
3
- All notable changes to Tandem will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [0.2.11] - 2026-04-06
9
-
10
- ### Added
11
-
12
- - Auto-reload documents when files change on diskTandem detects external edits (e.g., Claude's Edit tool) via `fs.watch`, reloads content, and preserves existing annotations (#175)
13
- - File watcher module with 500ms debounce and self-write suppression (prevents reload loops when Tandem saves)
14
- - Toast notification when a document is reloaded from disk
15
- - Runtime warning when `onDocSwapped` callback is missing during Hocuspocus doc swap (defensive guard for #178 audit)
16
- - 28 new tests: observer reattachment, CTRL_ROOM lifecycle, buffer cap, file watcher debounce/suppress, annotation-preserving reload
17
-
18
- ### Fixed
19
-
20
- - Dead CRDT `relRange` handling — `refreshRange` now strips broken CRDT anchors and re-anchors from flat offsets instead of leaving annotations permanently stuck with non-functional RelativePositions (#175)
21
- - Buffer cap test was previously a no-op (empty loop body) — now actually exercises the event queue buffer (#178)
22
-
23
- ### Changed
24
-
25
- - CLAUDE.md gotcha for Hocuspocus doc replacement updated to document the automatic `onDocSwapped` callback lifecycle (#178)
26
-
27
- ## [0.2.10] - 2026-04-05
28
-
29
- ### Added
30
-
31
- - Resizable side panel — drag to resize between 200–600px, width persists in localStorage
32
- - Accessibility: ARIA labels on annotation highlights (type-specific), annotation cards (`role="listitem"`, `aria-current`), annotation list (`role="list"`), review mode button (`aria-pressed`), live region for pending count and review progress
33
-
34
- ### Fixed
35
-
36
- - Flaky session tests — each test file now uses an isolated temp directory via `vi.mock`, eliminating cross-file race conditions (#177)
37
- - Session file writes use atomic rename with retry on Windows EPERM/EACCES (#173)
38
-
39
- ### Changed
40
-
41
- - `atomicWrite()` extracted as shared helper in session manager — consolidates duplicate write-tmp-rename logic with exponential backoff retry
42
-
43
- ## [0.2.9] - 2026-04-05
44
-
45
- ### Fixed
46
-
47
- - Changelog tab no longer disappears after upgrade — version check and sample/welcome.md now open before servers start, preventing CRDT merge races with stale browser tabs
48
- - Tutorial annotation injection errors now get their own log message instead of being misattributed as file-open failures
49
-
50
- ## [0.2.8] - 2026-04-05
51
-
52
- ### Added
53
-
54
- - CHANGELOG.md opens as the active tab on first startup after an npm update
55
- - `checkVersionChange` helper tracks version transitions via `last-seen-version` file
56
- - CHANGELOG.md now ships in the npm package
57
-
58
- ## [0.2.7] - 2026-04-05
59
-
60
- ### Fixed
61
-
62
- - Force-reload (`tandem_open` with `force: true`) now clears Y.Doc in-place instead of destroying the Hocuspocus room — sidebar, observers, and connections survive
63
- - TOCTOU fix: session deletion moved after successful reload transaction
64
- - Observer ownership table corrected in architecture docs
65
-
66
- ### Added
67
-
68
- - 4 new tests for force-reload (annotation clearing, awareness clearing, .txt reload, metadata)
69
-
70
- ## [0.2.6] - 2026-04-05
71
-
72
- ### Fixed
73
-
74
- - Demo script rewritten to be self-referential for recording
75
- - Observer ownership documentation added to architecture.md
76
-
77
- ## [0.2.5] - 2026-04-05
78
-
79
- ### Fixed
80
-
81
- - `tandem setup` Claude Code MCP config path updated
82
-
83
- ## [0.2.4] - 2026-04-05
84
-
85
- ### Fixed
86
-
87
- - Security audit findings (DNS rebinding, CORS, input validation)
88
-
89
- ## [0.2.3] - 2026-04-05
90
-
91
- ### Fixed
92
-
93
- - `tandem setup` now writes Claude Code MCP config to `~/.claude.json` instead of `~/.claude/mcp_settings.json`, which Claude Code no longer reads
94
-
95
- ## [0.2.2] - 2025-04-05
96
-
97
- ### Fixed
98
-
99
- - Silent failure review findings
100
-
101
- ## [0.2.1] - 2025-04-05
102
-
103
- ### Fixed
104
-
105
- - Full security audit — 25 findings across 7 categories (#172)
106
-
107
- ## [0.2.0] - 2025-04-04
108
-
109
- ### Added
110
-
111
- - Initial public release on npm as `tandem-editor`
112
- - 30 MCP tools for collaborative document editing
113
- - Multi-document tabs with CRDT-anchored annotations
114
- - Chat sidebar with real-time channel push
115
- - Support for .md, .docx, .txt, .html files
116
- - `tandem` CLI with `setup` and `start` commands
117
- - Claude Code skill auto-installation
1
+ # Changelog
2
+
3
+ All notable changes to Tandem will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.2.12] - 2026-04-06
9
+
10
+ ### Added
11
+
12
+ - Undo/redo toolbar buttons powered by Y.js UndoManagertracks document edits with proper CRDT-aware undo scoping (#189, #210)
13
+ - Adjustable editor content width toggle switch between comfortable and full-width layouts, preference persists in localStorage (#185, #205)
14
+ - SVG icons for unordered list, ordered list, and blockquote toolbar buttons, replacing plain text labels (#194)
15
+ - Automated npm publishing via GitHub Actions with OIDC trusted publisher (tokenless)
16
+
17
+ ### Fixed
18
+
19
+ - Guard all localStorage access with try-catch for private/disabled browser storage modes; reset scroll position on annotation filter clear (#212, #202)
20
+
21
+ ## [0.2.11] - 2026-04-06
22
+
23
+ ### Added
24
+
25
+ - Auto-reload documents when files change on disk Tandem detects external edits (e.g., Claude's Edit tool) via `fs.watch`, reloads content, and preserves existing annotations (#175)
26
+ - File watcher module with 500ms debounce and self-write suppression (prevents reload loops when Tandem saves)
27
+ - Toast notification when a document is reloaded from disk
28
+ - Runtime warning when `onDocSwapped` callback is missing during Hocuspocus doc swap (defensive guard for #178 audit)
29
+ - 28 new tests: observer reattachment, CTRL_ROOM lifecycle, buffer cap, file watcher debounce/suppress, annotation-preserving reload
30
+
31
+ ### Fixed
32
+
33
+ - Dead CRDT `relRange` handling — `refreshRange` now strips broken CRDT anchors and re-anchors from flat offsets instead of leaving annotations permanently stuck with non-functional RelativePositions (#175)
34
+ - Buffer cap test was previously a no-op (empty loop body) — now actually exercises the event queue buffer (#178)
35
+
36
+ ### Changed
37
+
38
+ - CLAUDE.md gotcha for Hocuspocus doc replacement updated to document the automatic `onDocSwapped` callback lifecycle (#178)
39
+
40
+ ## [0.2.10] - 2026-04-05
41
+
42
+ ### Added
43
+
44
+ - Resizable side panel — drag to resize between 200–600px, width persists in localStorage
45
+ - Accessibility: ARIA labels on annotation highlights (type-specific), annotation cards (`role="listitem"`, `aria-current`), annotation list (`role="list"`), review mode button (`aria-pressed`), live region for pending count and review progress
46
+
47
+ ### Fixed
48
+
49
+ - Flaky session tests — each test file now uses an isolated temp directory via `vi.mock`, eliminating cross-file race conditions (#177)
50
+ - Session file writes use atomic rename with retry on Windows EPERM/EACCES (#173)
51
+
52
+ ### Changed
53
+
54
+ - `atomicWrite()` extracted as shared helper in session manager consolidates duplicate write-tmp-rename logic with exponential backoff retry
55
+
56
+ ## [0.2.9] - 2026-04-05
57
+
58
+ ### Fixed
59
+
60
+ - Changelog tab no longer disappears after upgrade — version check and sample/welcome.md now open before servers start, preventing CRDT merge races with stale browser tabs
61
+ - Tutorial annotation injection errors now get their own log message instead of being misattributed as file-open failures
62
+
63
+ ## [0.2.8] - 2026-04-05
64
+
65
+ ### Added
66
+
67
+ - CHANGELOG.md opens as the active tab on first startup after an npm update
68
+ - `checkVersionChange` helper tracks version transitions via `last-seen-version` file
69
+ - CHANGELOG.md now ships in the npm package
70
+
71
+ ## [0.2.7] - 2026-04-05
72
+
73
+ ### Fixed
74
+
75
+ - Force-reload (`tandem_open` with `force: true`) now clears Y.Doc in-place instead of destroying the Hocuspocus room — sidebar, observers, and connections survive
76
+ - TOCTOU fix: session deletion moved after successful reload transaction
77
+ - Observer ownership table corrected in architecture docs
78
+
79
+ ### Added
80
+
81
+ - 4 new tests for force-reload (annotation clearing, awareness clearing, .txt reload, metadata)
82
+
83
+ ## [0.2.6] - 2026-04-05
84
+
85
+ ### Fixed
86
+
87
+ - Demo script rewritten to be self-referential for recording
88
+ - Observer ownership documentation added to architecture.md
89
+
90
+ ## [0.2.5] - 2026-04-05
91
+
92
+ ### Fixed
93
+
94
+ - `tandem setup` Claude Code MCP config path updated
95
+
96
+ ## [0.2.4] - 2026-04-05
97
+
98
+ ### Fixed
99
+
100
+ - Security audit findings (DNS rebinding, CORS, input validation)
101
+
102
+ ## [0.2.3] - 2026-04-05
103
+
104
+ ### Fixed
105
+
106
+ - `tandem setup` now writes Claude Code MCP config to `~/.claude.json` instead of `~/.claude/mcp_settings.json`, which Claude Code no longer reads
107
+
108
+ ## [0.2.2] - 2025-04-05
109
+
110
+ ### Fixed
111
+
112
+ - Silent failure review findings
113
+
114
+ ## [0.2.1] - 2025-04-05
115
+
116
+ ### Fixed
117
+
118
+ - Full security audit — 25 findings across 7 categories (#172)
119
+
120
+ ## [0.2.0] - 2025-04-04
121
+
122
+ ### Added
123
+
124
+ - Initial public release on npm as `tandem-editor`
125
+ - 30 MCP tools for collaborative document editing
126
+ - Multi-document tabs with CRDT-anchored annotations
127
+ - Chat sidebar with real-time channel push
128
+ - Support for .md, .docx, .txt, .html files
129
+ - `tandem` CLI with `setup` and `start` commands
130
+ - Claude Code skill auto-installation