threadnote 0.7.11 → 1.0.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/README.md +2 -422
- package/dist/mcp_server.cjs +346 -76
- package/dist/threadnote.cjs +726 -288
- package/docs/index.html +74 -11
- package/docs/migration.md +1 -1
- package/docs/troubleshooting.md +6 -5
- package/docs/web-manager.png +0 -0
- package/manager/app.css +42 -1
- package/manager/app.js +144 -59
- package/package.json +1 -1
package/docs/index.html
CHANGED
|
@@ -765,6 +765,7 @@
|
|
|
765
765
|
<a href="#update" data-label="Update"><span>Update</span></a>
|
|
766
766
|
<a href="#lifecycle" data-label="Lifecycle"><span>Lifecycle</span></a>
|
|
767
767
|
<a href="#share" data-label="Share"><span>Share</span></a>
|
|
768
|
+
<a href="#manager" data-label="Web manager"><span>Manager</span></a>
|
|
768
769
|
<a href="#use-cases" data-label="Use cases"><span>Use cases</span></a>
|
|
769
770
|
<a href="#close" data-label="Get started"><span>Start</span></a>
|
|
770
771
|
</nav>
|
|
@@ -782,7 +783,7 @@
|
|
|
782
783
|
team-shared decisions — recallable from any session, on any agent, in any worktree.
|
|
783
784
|
</p>
|
|
784
785
|
<div class="cta-row">
|
|
785
|
-
<span class="pill"><span id="version-tag">v0.6.1</span> · local-first ·
|
|
786
|
+
<span class="pill"><span id="version-tag">v0.6.1</span> · local-first · GPL-3.0-or-later</span>
|
|
786
787
|
</div>
|
|
787
788
|
</div>
|
|
788
789
|
<div class="scroll-cue">scroll ↓ · <span class="kbd">↓</span> / <span class="kbd">j</span></div>
|
|
@@ -1097,14 +1098,14 @@
|
|
|
1097
1098
|
<div class="terminal-bar"><span></span><span></span><span></span></div>
|
|
1098
1099
|
<pre><span class="cmd">$ curl -fsSL https://raw.githubusercontent.com/Kashkovsky/threadnote/main/scripts/install.sh | sh</span>
|
|
1099
1100
|
|
|
1100
|
-
<span class="out">Installed threadnote@0.
|
|
1101
|
+
<span class="out">Installed threadnote@1.0.0</span>
|
|
1101
1102
|
<span class="out">Already exists: ~/.local/bin/threadnote</span>
|
|
1102
1103
|
<span class="out">OpenViking installs into Python; neither uv nor pipx is</span>
|
|
1103
1104
|
<span class="out">on PATH so threadnote would fall back to `pip install</span>
|
|
1104
1105
|
<span class="out">--user`, which fails on PEP 668 setups.</span>
|
|
1105
1106
|
<span class="out">Install uv now? [Y/n] </span><span class="out-strong">Y</span>
|
|
1106
1107
|
<span class="out">Installing uv via Homebrew…</span>
|
|
1107
|
-
<span class="out-strong">OK openviking 0.3.
|
|
1108
|
+
<span class="out-strong">OK openviking 0.3.24 ready · server healthy</span></pre>
|
|
1108
1109
|
</div>
|
|
1109
1110
|
<p class="muted" style="margin-top: 0.75rem; font-size: 0.9rem">
|
|
1110
1111
|
Or manually: <code>npm install -g threadnote && threadnote install</code>. On a fresh macOS / modern
|
|
@@ -1218,8 +1219,8 @@ projects:
|
|
|
1218
1219
|
<div class="terminal">
|
|
1219
1220
|
<div class="terminal-bar"><span></span><span></span><span></span></div>
|
|
1220
1221
|
<pre><span class="cmd">$ threadnote update</span>
|
|
1221
|
-
<span class="out">Latest: threadnote@0.
|
|
1222
|
-
<span class="out">Running: npm install -g threadnote@0.
|
|
1222
|
+
<span class="out">Latest: threadnote@1.0.0 (installed: 0.7.12)</span>
|
|
1223
|
+
<span class="out">Running: npm install -g threadnote@1.0.0</span>
|
|
1223
1224
|
<span class="out">Running: threadnote repair</span>
|
|
1224
1225
|
<span class="out-strong">All checks passed. Restart agents to reload MCP.</span></pre>
|
|
1225
1226
|
</div>
|
|
@@ -1400,10 +1401,72 @@ threadnote remember \
|
|
|
1400
1401
|
</div>
|
|
1401
1402
|
</section>
|
|
1402
1403
|
|
|
1403
|
-
<!-- 12.
|
|
1404
|
+
<!-- 12. WEB MANAGER -->
|
|
1405
|
+
<section id="manager" class="slide">
|
|
1406
|
+
<div class="slide-inner">
|
|
1407
|
+
<span class="slide-eyebrow">11 · Web manager</span>
|
|
1408
|
+
<h2>A local web UI for the whole memory store.</h2>
|
|
1409
|
+
<p class="lead">
|
|
1410
|
+
Prefer a UI to the CLI? <code>threadnote manage</code> serves a local React app on
|
|
1411
|
+
<code>127.0.0.1</code> with a per-session token. Browse the tree, edit Markdown, run health checks, and
|
|
1412
|
+
manage shares — everything it does, the CLI and MCP do too.
|
|
1413
|
+
</p>
|
|
1414
|
+
|
|
1415
|
+
<img
|
|
1416
|
+
src="web-manager.png"
|
|
1417
|
+
alt="Threadnote web manager — Health and Doctor view with the memory tree, Memory / Sharing / Health / Tools tabs, and Run Doctor / Start OpenViking / Repair controls"
|
|
1418
|
+
loading="lazy"
|
|
1419
|
+
style="
|
|
1420
|
+
width: 100%;
|
|
1421
|
+
height: auto;
|
|
1422
|
+
display: block;
|
|
1423
|
+
margin-top: 1.5rem;
|
|
1424
|
+
border: 1px solid var(--line);
|
|
1425
|
+
border-radius: var(--radius-lg);
|
|
1426
|
+
"
|
|
1427
|
+
/>
|
|
1428
|
+
|
|
1429
|
+
<div class="grid grid-2" style="margin-top: 1.5rem">
|
|
1430
|
+
<div class="card reveal">
|
|
1431
|
+
<span class="card-kicker">Memory</span>
|
|
1432
|
+
<h3>Browse & edit the tree</h3>
|
|
1433
|
+
<p>
|
|
1434
|
+
Resizable, filterable navigation. Markdown preview by default, raw edit on demand, and
|
|
1435
|
+
confirmation-gated bulk archive / publish / forget that never silently targets filtered-out files.
|
|
1436
|
+
</p>
|
|
1437
|
+
</div>
|
|
1438
|
+
<div class="card reveal">
|
|
1439
|
+
<span class="card-kicker">Health</span>
|
|
1440
|
+
<h3>Doctor on open</h3>
|
|
1441
|
+
<p>
|
|
1442
|
+
The default tab runs <code>doctor</code> automatically. Run Doctor, Start OpenViking, and Repair stream
|
|
1443
|
+
into a scrollable output pane — the view in the screenshot above.
|
|
1444
|
+
</p>
|
|
1445
|
+
</div>
|
|
1446
|
+
<div class="card reveal">
|
|
1447
|
+
<span class="card-kicker">Sharing</span>
|
|
1448
|
+
<h3>Team repos, no CLI</h3>
|
|
1449
|
+
<p>
|
|
1450
|
+
Status, publish, sync, rename, set-url, remove, and preserve-local — full parity with
|
|
1451
|
+
<code>threadnote share</code>.
|
|
1452
|
+
</p>
|
|
1453
|
+
</div>
|
|
1454
|
+
<div class="card reveal">
|
|
1455
|
+
<span class="card-kicker">Tools</span>
|
|
1456
|
+
<h3>Recall, compact, consolidate</h3>
|
|
1457
|
+
<p>
|
|
1458
|
+
Recall and read, scoped compaction dry-runs, import/export packs, seeding, and AI-assisted consolidation
|
|
1459
|
+
drafted by a local Codex or Claude CLI then applied on confirm.
|
|
1460
|
+
</p>
|
|
1461
|
+
</div>
|
|
1462
|
+
</div>
|
|
1463
|
+
</div>
|
|
1464
|
+
</section>
|
|
1465
|
+
|
|
1466
|
+
<!-- 13. USE CASES -->
|
|
1404
1467
|
<section id="use-cases" class="slide">
|
|
1405
1468
|
<div class="slide-inner">
|
|
1406
|
-
<span class="slide-eyebrow">
|
|
1469
|
+
<span class="slide-eyebrow">12 · Real-world use cases</span>
|
|
1407
1470
|
<h2>What you say. What the agent does.</h2>
|
|
1408
1471
|
<p class="lead">
|
|
1409
1472
|
You don't run threadnote commands yourself. You talk to your agent the way you already do; the agent calls
|
|
@@ -1495,10 +1558,10 @@ Stored: viking://user/you/memories/durable/projects/<repo>/release-process
|
|
|
1495
1558
|
</div>
|
|
1496
1559
|
</section>
|
|
1497
1560
|
|
|
1498
|
-
<!--
|
|
1561
|
+
<!-- 14. CLOSE -->
|
|
1499
1562
|
<section id="close" class="slide">
|
|
1500
1563
|
<div class="slide-inner">
|
|
1501
|
-
<span class="slide-eyebrow">
|
|
1564
|
+
<span class="slide-eyebrow">13 · Get started</span>
|
|
1502
1565
|
<h2>Try it on your machine in 90 seconds.</h2>
|
|
1503
1566
|
|
|
1504
1567
|
<pre style="margin-top: 1.5rem">
|
|
@@ -1522,8 +1585,8 @@ threadnote doctor --dry-run</code></pre>
|
|
|
1522
1585
|
</div>
|
|
1523
1586
|
|
|
1524
1587
|
<p class="colophon">
|
|
1525
|
-
threadnote ·
|
|
1526
|
-
<span class="kbd">j</span> <span class="kbd">k</span> to navigate
|
|
1588
|
+
threadnote · GPL-3.0-or-later · built on OpenViking 0.3.24 · use <span class="kbd">↑</span>
|
|
1589
|
+
<span class="kbd">↓</span> / <span class="kbd">j</span> <span class="kbd">k</span> to navigate
|
|
1527
1590
|
</p>
|
|
1528
1591
|
</div>
|
|
1529
1592
|
</section>
|
package/docs/migration.md
CHANGED
|
@@ -239,7 +239,7 @@ canonical instructions, active commands, active skills, MCP config, or anything
|
|
|
239
239
|
|
|
240
240
|
## Cutover Checklist
|
|
241
241
|
|
|
242
|
-
- `doctor --dry-run` reports a healthy OpenViking server.
|
|
242
|
+
- `doctor --dry-run` reports a healthy OpenViking server and no stale recall index warnings.
|
|
243
243
|
- `threadnote` works from a different repo or subdirectory.
|
|
244
244
|
- `mcp-install` has been applied for the agent the developer actually uses.
|
|
245
245
|
- `recall` returns seeded guidance.
|
package/docs/troubleshooting.md
CHANGED
|
@@ -120,8 +120,9 @@ threadnote start
|
|
|
120
120
|
|
|
121
121
|
## Claude MCP Fails While Health Is OK
|
|
122
122
|
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
Threadnote uses its bundled stdio MCP adapter by default, even when the installed OpenViking server exposes native
|
|
124
|
+
`/mcp`. The adapter adds Threadnote-specific tools and behavior such as shared-memory sync, exact recall fallback,
|
|
125
|
+
seeded-resource recall augmentation, and recall-index repair.
|
|
125
126
|
|
|
126
127
|
Use the default stdio adapter:
|
|
127
128
|
|
|
@@ -133,7 +134,7 @@ claude mcp list
|
|
|
133
134
|
`mcp-install claude` writes user-scoped Claude config by default. This is intentional: local-scoped config only applies
|
|
134
135
|
to one repo/project, and the `threadnote` shim runs the implementation from the checkout that installed it.
|
|
135
136
|
|
|
136
|
-
Only use `--native-http`
|
|
137
|
+
Only use `--native-http` when you intentionally want the raw OpenViking HTTP endpoint instead of Threadnote's adapter.
|
|
137
138
|
|
|
138
139
|
## Worktree Was Deleted
|
|
139
140
|
|
|
@@ -146,8 +147,8 @@ From any fresh checkout, run:
|
|
|
146
147
|
threadnote repair
|
|
147
148
|
```
|
|
148
149
|
|
|
149
|
-
`repair` reinstalls the `threadnote` shim, repairs generated config files, starts OpenViking if needed,
|
|
150
|
-
Codex/Claude/Cursor/Copilot MCP configs to point at the current checkout.
|
|
150
|
+
`repair` reinstalls the `threadnote` shim, repairs generated config files, starts OpenViking if needed, repairs stale
|
|
151
|
+
recall indexes, and rewrites Codex/Claude/Cursor/Copilot MCP configs to point at the current checkout.
|
|
151
152
|
|
|
152
153
|
## MCP Install Is Only Printing Commands
|
|
153
154
|
|
|
Binary file
|
package/manager/app.css
CHANGED
|
@@ -113,11 +113,12 @@ textarea {
|
|
|
113
113
|
.sidebar {
|
|
114
114
|
background: rgba(20, 20, 26, 0.94);
|
|
115
115
|
display: grid;
|
|
116
|
-
grid-template-rows: auto auto auto minmax(0, 1fr);
|
|
116
|
+
grid-template-rows: auto auto auto auto minmax(0, 1fr);
|
|
117
117
|
min-height: 0;
|
|
118
118
|
min-width: 0;
|
|
119
119
|
overflow: hidden;
|
|
120
120
|
padding: 16px;
|
|
121
|
+
row-gap: 0;
|
|
121
122
|
}
|
|
122
123
|
|
|
123
124
|
.sidebar-resizer {
|
|
@@ -241,6 +242,32 @@ body.is-resizing-sidebar * {
|
|
|
241
242
|
width: auto;
|
|
242
243
|
}
|
|
243
244
|
|
|
245
|
+
.nav-tree-tabs {
|
|
246
|
+
display: grid;
|
|
247
|
+
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
|
248
|
+
margin: 0 0 10px;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
.nav-tree-tabs button {
|
|
252
|
+
border-radius: 0;
|
|
253
|
+
min-width: 0;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
.nav-tree-tabs button:first-child {
|
|
257
|
+
border-radius: 6px 0 0 6px;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.nav-tree-tabs button:last-child {
|
|
261
|
+
border-left: 0;
|
|
262
|
+
border-radius: 0 6px 6px 0;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
.nav-tree-tabs button.is-active {
|
|
266
|
+
background: var(--accent-soft);
|
|
267
|
+
border-color: var(--accent-line);
|
|
268
|
+
color: var(--accent);
|
|
269
|
+
}
|
|
270
|
+
|
|
244
271
|
.tree {
|
|
245
272
|
min-height: 0;
|
|
246
273
|
overflow: auto;
|
|
@@ -251,6 +278,12 @@ body.is-resizing-sidebar * {
|
|
|
251
278
|
margin: 2px 0;
|
|
252
279
|
}
|
|
253
280
|
|
|
281
|
+
.tree-empty {
|
|
282
|
+
color: var(--muted);
|
|
283
|
+
font-size: 13px;
|
|
284
|
+
margin: 12px 4px;
|
|
285
|
+
}
|
|
286
|
+
|
|
254
287
|
.tree summary,
|
|
255
288
|
.tree-row {
|
|
256
289
|
align-items: center;
|
|
@@ -268,6 +301,14 @@ body.is-resizing-sidebar * {
|
|
|
268
301
|
list-style: none;
|
|
269
302
|
}
|
|
270
303
|
|
|
304
|
+
.tree summary.is-readonly {
|
|
305
|
+
grid-template-columns: 14px minmax(0, 1fr);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
.tree-row.is-readonly {
|
|
309
|
+
grid-template-columns: minmax(0, 1fr);
|
|
310
|
+
}
|
|
311
|
+
|
|
271
312
|
.tree summary::-webkit-details-marker {
|
|
272
313
|
display: none;
|
|
273
314
|
}
|