Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 0 additions & 15 deletions config/post-update-migrations.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,6 @@
"If Threadnote reported any original files were still being processed, rerun the printed threadnote forget <uri> command later."
],
"requiresLegacyHandoffs": true
},
{
"id": "ov-semantic-poison-hotfix-2734",
"introducedIn": "1.4.3",
"title": "Patch OpenViking against the semantic-queue poison loop (#2734)",
"description": [
"OpenViking 0.4.x can deadlock its semantic queue: a memory file reindexed with mode=semantic_and_vectors enqueues a directory-level semantic message whose URI is a file; the processor lists it, fails, and the message re-enqueues forever (it is AGFS-persisted, so it survives a server restart).",
"This patches the installed OpenViking to skip non-directory/missing memory URIs (upstream fix PR #2735) and restarts the server so any stuck message drains on the next dequeue.",
"It is a no-op when the installed OpenViking already includes the fix, a backup of the original file is kept, and the patched file is compile-checked before it is written."
],
"commandArgs": ["repair-semantic-queue", "--apply"],
"instructions": [
"If the semantic queue was stuck it should now drain. Verify with: ov observer queue",
"This is a temporary local patch; it is superseded automatically once Threadnote pins an OpenViking release that includes the fix. Re-run manually any time with: threadnote repair-semantic-queue --apply"
]
}
]
}
4 changes: 2 additions & 2 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1147,7 +1147,7 @@ <h3 style="margin-bottom: 0.5rem">1. Install threadnote</h3>
<span class="out">--user`, which fails on PEP 668 setups.</span>
<span class="out">Install uv now? [Y/n] </span><span class="out-strong">Y</span>
<span class="out">Installing uv via Homebrew…</span>
<span class="out-strong">OK openviking 0.4.4 ready · server healthy</span></pre>
<span class="out-strong">OK openviking 0.4.5 ready · server healthy</span></pre>
</div>
<p class="muted" style="margin-top: 0.75rem; font-size: 0.9rem">
Or manually: <code>npm install -g threadnote && threadnote install</code>. On a fresh macOS / modern
Expand Down Expand Up @@ -1651,7 +1651,7 @@ <h2>Try it on your machine in 90 seconds.</h2>
</div>

<p class="colophon">
threadnote · AGPL-3.0-or-later · built on OpenViking 0.4.4 · use <span class="kbd">↑</span>
threadnote · AGPL-3.0-or-later · built on OpenViking 0.4.5 · use <span class="kbd">↑</span>
<span class="kbd">↓</span> / <span class="kbd">j</span> <span class="kbd">k</span> to navigate
</p>
</div>
Expand Down
20 changes: 9 additions & 11 deletions docs/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,28 +102,26 @@ Symptom: agents hang or `remember`/`handoff` get very slow, and `~/.openviking/l
RuntimeError: Failed to list memory directory viking://user/.../memories/.../<name>.md: Directory not found
```

A memory _file_ got enqueued for directory-level semantic processing; OpenViking's `_process_memory_directory` lists
it, fails, and the message re-enqueues forever. The entry is AGFS-persisted, so it survives a server restart. Check the
queue — a non-zero `Errors`/`Requeued` on the `Semantic` row is the signature:
A memory _file_ got enqueued for directory-level semantic processing; older OpenViking releases listed it as a
directory, failed, and re-enqueued the message forever. The entry is AGFS-persisted, so it survives a server restart.
Check the queue — a non-zero `Errors`/`Requeued` on the `Semantic` row is the signature:

```bash
ov observer queue
```

Fix it by patching the installed OpenViking and restarting the server:
This is fixed upstream in OpenViking 0.4.5. Update Threadnote so it upgrades the pinned OpenViking install and restarts
the server:

```bash
threadnote repair-semantic-queue --apply
threadnote update
```

It skips non-directory/missing memory URIs (OpenViking PR #2735), keeps a `.threadnote-bak`, compile-checks the patched
file before writing, and is a no-op once the installed OpenViking already includes the fix. This is a **temporary local
patch** — `threadnote update` also offers it as a post-update step, and it is superseded automatically once Threadnote
pins an OpenViking release containing the fix. To revert manually:
If Threadnote is already current but OpenViking is still older than 0.4.5, force a reinstall of the pinned OpenViking
tool:

```bash
mv <printed-path>.threadnote-bak <printed-path>
threadnote stop && threadnote start
threadnote install --force
```

## Port Already In Use
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "threadnote",
"version": "1.4.3",
"version": "1.4.4",
"type": "commonjs",
"main": "dist/threadnote.cjs",
"description": "Shared local context and handoffs for development agents",
Expand Down
2 changes: 1 addition & 1 deletion src/constants.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
export const DEFAULT_HOST = '127.0.0.1';
export const DEFAULT_PORT = 1933;
export const DEFAULT_OPENVIKING_VERSION = '0.4.4';
export const DEFAULT_OPENVIKING_VERSION = '0.4.5';
// CPython minor the OpenViking tool is pinned to. openviking[local-embed] pulls
// in llama-cpp-python, whose prebuilt wheels (PyPI is sdist-only; wheels live on
// the abetlen community index) top out at 3.12 as of 2026. On newer interpreters
Expand Down
248 changes: 0 additions & 248 deletions src/semantic_queue_repair.ts

This file was deleted.

13 changes: 0 additions & 13 deletions src/threadnote.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import type {
RecallOptions,
RememberOptions,
RepairOptions,
RepairSemanticQueueOptions,
SeedOptions,
ShareInstallArtifactsOptions,
ShareInitOptions,
Expand Down Expand Up @@ -78,7 +77,6 @@ import {
runShareUnpublish,
} from './share.js';
import {parsePackageManager, runDoctor, runInstall, runRepair, runStart, runStop, runUninstall} from './lifecycle.js';
import {runRepairSemanticQueue} from './semantic_queue_repair.js';
import {maybeNotifyUpdate, parseUpdateRuntime, runPostUpdate, runUpdate} from './update.js';
import {runVersion} from './version_command.js';
import {runManage} from './manager.js';
Expand Down Expand Up @@ -352,17 +350,6 @@ async function main(): Promise<void> {
await runMigrateLifecycle(getRuntimeConfig(program), options);
});

program
// Temporary bridge for the OpenViking semantic-queue poison loop (#2734);
// remove once the pinned OpenViking includes upstream PR #2735.
.command('repair-semantic-queue')
.description('Patch the installed OpenViking to drain/avoid the semantic-queue poison loop (#2734)')
.option('--apply', 'Apply the patch and restart the server; without this, prints a dry run')
.option('--dry-run', 'Print what would change without patching or restarting')
.action(async (options: RepairSemanticQueueOptions) => {
await runRepairSemanticQueue(getRuntimeConfig(program), options);
});

program
.command('recall')
.description('Search shared OpenViking context')
Expand Down
Loading
Loading