Changelog
Full version history for VEKTOR Slipstream from v1.0.0 to v1.8.0. Twenty releases covering initial SQLite persistence, hardware-accelerated hybrid recall, MAGMA causal graphs, FadeMem intelligence architecture, MCP connector layer, provider-agnostic LLM, CLOAK stealth browsing, SSH deployment tools, JOT synthesis mode, TUI/CLI quickstart improvements, the Faraday security gate, an on-demand CodeGraph code-intelligence engine, and stability fixes.
v1.8.0
Agent Tab Full IDE Layout for the Autonomous Agent
A new Agent nav tab exposes VEKTOR’s tool-using agent through a 3-column IDE layout: chat thread on the left, file-tree / diff-viewer / docked terminal in the centre, live memory-recall rail on the right.
- RUN / SEND composer starts a new agent run, or while one's active, injects a live chat interrupt instead of starting a second run.
- Per-tool allow/ask/deny gating writes and code execution default to “ask”, reads and search default to “allow”, with an in-panel approval modal on anything gated. An “Auto-run code” checkbox opts a run out of that gate.
- Write self-check every write now runs
node --check/py_compile/JSON.parseagainst what it just wrote, instead of a bad edit only surfacing on the next build.
CodeGraph On-Demand Code Intelligence, No Daemon Required
Most code-graph tools for coding agents build a persistent index on disk with a background watcher keeping it in sync fine for one project open all day, the wrong shape for an agent touching a dozen repos in an afternoon. VEKTOR’s agent gates the graph instead of always running it.
- Three-tier gate small single-file edits skip the graph entirely; multi-file changes trigger a scoped blast-radius build (touched files plus imports, a couple of hops deep); an explicit architecture request triggers a full pass from the project's real entry points.
- 100% Node, WASM parser built with
web-tree-sitter, not native tree-sitter bindings, so there's no per-platform compile step. - Zero footprint the graph lives entirely in memory, scoped to one agent session, and is thrown away when the session ends. Nothing touches disk, no watcher runs while the agent is idle.
- Research-backed design follows 2025–2026 work on gated retrieval, cost-aware tool orchestration, and tiered retrieval interfaces. A cheap existence-check tool sits below the three main tiers, so the agent reaches for the cheapest tool that could plausibly answer before escalating.
- CODEMAP panel now shows exactly what the agent scoped its context to this session (file count, hop depth, whether the reverse-dependency index was already warm), instead of a blind full-workspace walk on every click.
CodeGraph 36-Language Grammar Support, Lazy & Hash-Verified
CodeGraph's tree-sitter backend launched covering five languages (JavaScript, JSX, TypeScript, TSX, JSON) and read grammars by reaching directly into a third-party package's on-disk folder layout. Replaced with a dedicated, pinned-manifest loader real AST-level symbol and import extraction now spans 36 languages, without growing the install.
- 36 languages, fetched only when touched Python, Go, Rust, Java, C, C++, C#, Kotlin, Swift, Ruby, PHP, Bash, YAML, TOML, HTML, CSS, and more, each downloaded and parsed the first time a matching file actually shows up in a repo not bundled upfront.
- Hash-verified, single pinned source every grammar is fetched from one pinned CDN location and its SHA-256 checked against a manifest shipped inside the SDK before it's cached or loaded. A mismatch is rejected outright, never cached, never loaded.
- 10 core languages warm on install TypeScript, TSX, JavaScript, Python, Go, JSON, YAML, TOML, HTML, and CSS pre-fetch in the background during
npm install, so the common case feels instant without any grammar bytes shipping inside the package itself. - ∼51MB lighter install the old direct dependency on a full third-party grammar bundle is gone; grammars are fetched on demand and cached locally (
~/.vektor/grammars/) instead. - Symbol extraction fixed across grammars the AST walker previously only recognised JS/TS-shaped node names, so e.g. Python files parsed correctly under the hood but silently returned zero functions/classes. Walker now recognises the equivalent node shapes across JS/TS/Python/Rust/Java/C#/Go/Kotlin/PHP/Ruby, verified against real parses of each language, not just JS/TS regression checks.
Bug Fix Provider “Auto” Silently Defaulting to Ollama
Selecting “Auto (configured default)” in the GUI's provider picker was supposed to fall through to whatever provider is actually configured. Instead, two separate hardcoded 'ollama' fallbacks one in the GUI bridge's request handlers, one in the agent loop's own default parameter short-circuited that before the real auto-detect logic ever ran, so “Auto” always meant Ollama. Both hardcoded defaults are removed; Auto now genuinely auto-detects.
Desk & Theme Polish
- New themes three dark accent options (green, purple, red) alongside the existing orange, plus a new light theme in orange. All switchable from the existing theme-cycle button.
- Agent Chat panel the five action buttons (Commit, Review, Codemap, History, Skills) redesigned from boxed buttons to plain text tabs so all five fit on one row without clipping.
- Desk greeting the welcome panel now greets you by your machine's OS username with a time-of-day greeting (“Good morning/afternoon/evening”, from local system time) that fades out a few seconds after load.
npm install -g ./vektor-slipstream-1.8.0-preview.tgzUpgrade from v1.7.9 or v1.7.8 at any time. Download
v1.7.9
Agent Safety Hardening
The local tool-using agent gets the same class of guardrails established coding-agent research calls for: bounded output, guarded writes, and a soft cost budget on top of the existing step budget.
- Cost limit optional soft dollar budget checked before each step, alongside the existing max-steps limit. Off by default; tripping it exits through the same degraded-success path as max-steps, state saved and resumable.
- Bounded search output file search now refuses past 100 matches with an explicit "narrow your search" message instead of silently truncating, so the model can't mistake a partial list for a complete one.
- Write backup + approval gate any overwrite of an existing file gets a timestamped backup and, when an approval hook is supplied, a diff-preview approval step before the write lands.
- Windowed file viewer reads now carry a header showing total line count plus "more lines above/below" markers, so the model always knows its position in a large file instead of getting a position-less text dump.
- Trajectory logging every agent run writes a step-by-step replay log, on both normal completion and any partial/degraded exit.
- GUI write approval a pending-write event turns the write approval hook into a real GUI round-trip, with a timeout that auto-rejects so a closed or idle GUI can't hang the agent loop indefinitely.
npm install -g ./vektor-slipstream-1.8.0.tgzUpgrade from v1.7.8 or earlier at any time. Download
v1.7.8 PREVIEW
Catch-up Brief Deterministic Memory Grounding
The catch-up brief previously left it up to whichever model was selected to decide whether to search memory before answering strong tool-callers mostly stayed grounded, but weaker/local models frequently skipped retrieval and padded the answer with plausible-sounding invention. Retrieval now runs server-side first, always, via a fixed set of memory queries covering focus/decisions/open-questions/recent-notes, merged into one context block. The model receives a strict section template plus an explicit instruction to only state what's in that context, writing “Nothing new this week” for empty sections instead of inventing content. Output is now consistent across providers, including smaller local models, and is inherently self-updating since it re-queries live memory on every request.
Bug Fix Reasoning-Model Tool Calls (Luna, Terra, Sol & o-series)
The new gpt-5.6 family models added in v1.7.7 (Luna, Terra, Sol) plus other o-series/gpt-5-family models failed every DESK tool-calling request with Function tools with reasoning_effort are not supported. Simply omitting reasoning_effort wasn’t enough these models still apply their own default server-side, which conflicts with function tools on /v1/chat/completions. Fixed by explicitly sending reasoning_effort: 'none' whenever a reasoning-family model is in play, since this code path always sends tools.
Desk Toolbar Floating Frosted Panel
The bottom input bar (formatting row, model picker, THINK/COLLAB/JOT) is now a floating translucent panel with backdrop blur and rounded corners on all sides, inset from the window edge, instead of a flat opaque bar flush to the bottom.
Cross-Theme Colour Consistency
Fixed the silver theme’s background layering, where the card surface colour was identical to the page background (no visible depth) and the next step jumped straight to a harshly dark hover state. Standardised the quick-action toolbar, send buttons, and sidebar navigation highlighting to draw from the same theme accent variables instead of one-off hardcoded colours, and gave graph “Semantic” nodes a fixed, theme-independent colour so they stay visible against every theme instead of fading to near-white.
npm install -g ./vektor-slipstream-1.7.8-preview.tgzUpgrade from v1.7.7 or v1.7.6 at any time. Download
v1.7.7 PREVIEW
Sentinel Selective Proactive Memory Injection
New module wired into both DESK and JOT chat paths. Adds a proactive push on top of VEKTOR’s existing pull-based recall: on each turn, before the LLM call, checks whether a stored memory is relevant enough to the current message to surface unprompted. A live task-completion aid does not affect LongMemEval/LoCoMo-style benchmark scores, which are pull-based QA. Three layers: a core gate with per-agent adaptive threshold and cooldown, integrity gating that re-verifies the candidate against the DB right before injection (follows the supersession chain to its active tip, rejects expired rows), and an opt-in self-questioning pass that judges relevance with one extra LLM call. Counterfactual threshold calibration available via CLI (node vektor-sentinel.js calibrate|feedback|stats).
Model Catalog Refresh
Gemini updated to Gemini 3.5 Flash. xAI updated to Grok 4.5. OpenAI additions Luna, Terra, and Sol are now live.
Bug Fixes Supersession & Data Integrity
Fixed the root cause of supersession never firing in production: three stacked score-scale bugs (Layer 6 reranking, RRF fusion, cross-encoder reranking) each overwrote the recall score with a progressively less-comparable value before the dedup threshold check ever saw it. The true raw cosine similarity is now captured at the point it’s computed and threaded through every later stage. Also fixed a NULL id bug affecting every fresh memory on Windows (an explicit id is now generated before insert, rather than relying on SQLite’s unrelated internal rowid), and fixed supersession silently reporting success even when the LLM-verified conflict-resolution gate had actually declined the write.
Faraday Independent Integrity Watchdog & Tamper-Evident Audit Log
New standalone watchdog process runs continuously via OS task scheduling, independent of any active Faraday MCP session, watching AI-assistant MCP configuration files across seven clients plus Faraday’s own core enforcement files. Every gate event now also carries a chained hash linking it to the previous event, so altering, deleting, or reordering a historical entry breaks every hash after it, detectably.
Other Fixes
Faraday corpus auto-update now actually extracts the verified archive. Faraday status display no longer shows a corrupted glyph for session state. JOT flashcards copy button and collab-panel CSS fixed. Packaging cleaned up further (missing files added to the npm allowlist), and a long-standing display-glyph corruption pattern was cleared from 16 additional files across the SDK.
npm install -g ./vektor-slipstream-1.7.7-preview.tgzUpgrade from v1.7.6 at any time. Download
v1.7.6
Faraday Independent Integrity Watchdog
New standalone background process, separate from any active Faraday MCP session, running continuously via OS task scheduling regardless of whether an AI session is open. Watches AI-assistant MCP configuration files across seven clients (Claude Desktop, Cursor, Windsurf, VS Code, Cline, Roo Code, Groq Desktop) plus Faraday’s own core enforcement files and signatures. Closes the gap where a tampered gate file, or an injected rogue MCP server entry, would previously go undetected.
Faraday Tamper-Evident Audit Log
Every gate event now carries a chained hash linking it to the previous event the same principle git uses for commit history. Altering, deleting, or reordering a historical entry breaks every hash after it, detectably, via a new chain-integrity check surfaced in Faraday status.
Faraday Self-Preservation Coverage Expanded
Protected paths extended from Claude Desktop only to all seven client surfaces: Claude Desktop, Cursor, Windsurf, Continue, VS Code (covers Cline and Roo Code), and Groq Desktop.
Faraday Compromised Sessions Now Genuinely Lock
A session flagged COMPROMISED (self-preservation trigger or canary trip) now blocks every further consequential action until restart, matching standard EDR containment practice. Status checks and approval flows remain available throughout.
Bug Fixes
vektor hooks CLI command repaired (was missing its backing module entirely). Faraday corpus auto-update now actually extracts the verified archive instead of silently falling back to the bundled copy. JOT flashcards copy button and collab-panel CSS fixed. Boot banner now reads the installed version at runtime instead of showing a stale hardcoded number. Packaging cleaned up several files missing from the npm allowlist were added, and a long-standing display-glyph corruption pattern was cleared from 16 files across the SDK.
npm install -g ./vektor-slipstream-1.7.6-preview.tgzUpgrade from v1.7.5 at any time. Download
v1.7.5 PREVIEW
Faraday-Gate MCP Proxy
Security gate integration completed and shipped. Faraday-Gate now proxies MCP tool calls with PII detection, taint tracking across memory graph edges, and canary tokens injected at session start to catch exfiltration attempts.
Collab Graph Engine
The Collab module (VEKTOR Slipstream graph UI) is complete, adding a DAGExecutor for multi-agent task planning, a CapacitorRouter for load distribution across agents, and UCB scoring for adaptive model selection.
Encoding Fixes
Resolved encoding corruption introduced during earlier packaging passes, including mojibake in source files and malformed optional-chaining syntax. Shipped via a clean npm repack following an extensive debugging sprint.
Model Registry Cleanup
Removed dead models from the OpenRouter and Groq registries following live endpoint validation.
Wire-Trace Audit
Full sweep of the codebase for stale references and dead paths: 27 endpoints checked, 82 onclick handler sites verified, and 109 syntax checks run across the SDK.
npm install -g ./vektor-slipstream-1.7.5-preview.tgzUpgrade from v1.7.4 at any time. Download
v1.7.4 PREVIEW
Effort Parameter Support (Claude Models)
New per-session effort control for Claude models, backed by the API’s output_config.effort parameter trade capability against latency and cost without switching models. Levels (LOW / MEDIUM / HIGH / XHIGH / MAX) are clamped automatically to whatever a given Claude model supports, and silently omitted for non-Claude providers. New pill control added to CONFIG → Active Model; applies to both the primary chat path and the Desk agentic tool-calling loop.
Desk Agent Real Memory Search Tool
The Desk chat agent previously had no way to query the VEKTOR memory store, so broad requests like a catch-up brief returned blind guesses. New search_memory tool routes through the existing recall logic and is available across both Anthropic and OpenAI-style tool-calling.
Model Catalog Refresh
- Claude added
claude-sonnet-5andclaude-fable-5; removed the staleclaude-sonnet-4-6reference sitewide. - OpenRouter live audit against the real endpoint. Removed several dead free-tier models, added
openrouter/free(auto-router hedge against free-tier churn) plus five newly-confirmed live models. - Groq removed
llama-3.3-70b-versatileahead of its official deprecation; addedqwen/qwen3.6-27bandqwen/qwen3-32b. Default fallback switched toopenai/gpt-oss-120b.
Bug Fixes
max_completion_tokensOpenAI’s o-series and GPT-5+ models rejectmax_tokensoutright. Fixed across 10 call sites in 8 files following a full audit of every direct OpenAI API call in the SDK.- CONFIG page total failure on load a dangling reference to an undefined
selectEffortfunction was throwing on module init and silently taking down the entire Active Model card. Fixed, and cross-checked against all 82onclickhandlers in the graph UI. - UI graph toolbar reload icon replaced with plain text after cross-browser rendering failures; CONFIG model grid widened from 2 to 4 columns; Desk sidebar duplicate MODES card removed; System Diagnostics MODES bar copy updated with an auto-fading advisory.
Upgrade from v1.7.3 at any time. Download
v1.7.3
Faraday-Gate Security Proxy
New security layer sitting between VEKTOR and the rest of your MCP ecosystem. Spawns and proxies all other MCP servers from your claude_desktop_config.json, scanning every tool schema and response for threats before they reach memory.
- L0 static scan all tool descriptions scanned against
signatures.jsonat connect time. Sleeper pattern detection viafaraday-scanner.js. CRITICAL severity = blocked, HIGH = flagged. - Phase C tool pinning SHA-256 hash of each tool’s name, description, and input schema stored on first connect. Hash change on reconnect = rug-pull alert, tool blocked.
- Canary tokens injected into memory at session start via
faraday-canary.js. Exfiltration attempts trigger immediate alert. - Taint propagation
faraday-taint.jstracks compromised data labels across memory graph edges. - Gate queue high-risk actions held for human review. Approve or deny via
faraday_approve_actionMCP tool. - Persistent audit DB all intercepts, gate events, goal updates, and session metadata stored via
faraday-db.js. - GUI panel
faraday-panel.htmllive threat dashboard accessible from the graph server.
Initialised automatically in MCP mode, graph GUI mode, and chat mode. Proxies all non-VEKTOR MCP servers transparently no changes to existing tool calls required.
3 New MCP Tools (Faraday-Gate)
faraday_statusquery active session, threat log, canary status, gate queue, and corpus info.faraday_update_goaldeclare or update the current agent goal. Faraday-Gate uses this for semantic drift detection tool calls deviating from the stated goal are flagged or gated.faraday_approve_actionapprove or deny a gated action pending human review. Pass thegate_idfromfaraday_status.
Collab Model Registry
New collab/model-registry.js formalises multi-agent model routing for Collab and JOT sessions. Defines three tiers (frontier, mid, low/free), role requirements per agent type, and DAG complexity caps per session mode.
- Agent roles: conductor (DAG planning, requires structured output), thinker (deep reasoning), worker (execution), verifier (fast pass/fail scoring)
- Session modes: full (up to 12-node DAG, 4 parallel workers), lite (6 nodes, 2 workers), solo (2 nodes, free-tier fallback)
- Model coverage: Claude Opus 4, Claude Sonnet 4.6, Claude Haiku 4.5, GPT-4o, GPT-4o mini, Gemini 2.0 Pro/Flash, Grok 3 Mini, DeepSeek, Mistral Small, Llama 3.3 70B, Llama 3.1 8B, Ollama, MiniMax
detectMode(availableModels)auto-selects full/lite/solo based on what keys are configuredfilterCandidates(role, models, budget)enforces tier, context window, and structured-output hard requirements per role
Per-Provider Model Config
Model selection is now configurable per provider in vektor/config.json via model.{provider} keys. Applies across all internal LLM calls chat, synthesis, briefing generation, JOT collab, and recall tuning. Key resolution order: config.json → environment variable → encrypted vault → provider default.
Supports all 15 wizard providers: Groq, Claude, OpenAI, Gemini, Mistral, DeepSeek, Together, Cohere, xAI, MiniMax, NVIDIA, Perplexity, LM Studio, LiteLLM, Ollama. OpenAI o-series and GPT-5+ models automatically use max_completion_tokens instead of max_tokens.
npm install -g ./vektor-slipstream-1.7.3-preview.tgzUpgrade from v1.7.2 at any time. Download
v1.7.2
TUI Menu Featured Top Section
The TUI menu now leads with a featured, gold/bold ★ section: activate, chat, jot (GUI), and graph (GUI). ★ jot opens the browser-based notes desk (/desk tab via the graph server) and ★ graph opens the browser-based memory graph (/graph tab via the graph server) directly from the menu. ★ chat launches interactive chat and returns to the TUI menu on exit.
- Fixed a React duplicate key warning
★ chatrenamed tochat-startinternally. - Fixed duplicate
jot/graphentries removed from the regular command list, kept only in the ★ section. - Fixed a TUI exit regression where selecting any command dropped you to the shell instead of returning to the menu.
- Fixed a floating Promise race condition
launchTUInow awaits the in-flightrunCmdbefore returning, keeping the process alive through chat sessions.
New Tool & Framework Integrations
- n8n VEKTOR memory node for n8n automation workflows. Store and recall persistent memory directly from any n8n flow via HTTP node. Integration guide and manifest included in SDK.
- CrewAI Python adapter available. Drop-in
VektorMemoryclass for CrewAI agents. Local bridge, zero cloud dependency.
Chat /prompt Command
New /prompt command shows the current system prompt, or /prompt <text> to override it. Wired into tab autocomplete and the /help table.
CLI New Commands
vektor graph/vektor dashboardstarts the graph server and opens the browser at/graph.vektor jotstores a quick idea to memory at importance 4.
Bug Fixes
- Fixed
vektor fetch <url>body not displaying in the TUI body output switched to stderr. - Fixed a Windows
UV_HANDLE_CLOSINGcrash added a 150ms drain afterlaunchChatexits beforeprocess.exit(0).
v1.6.3
FadeMem Intelligence Architecture Layers 0–6
Full implementation of the FadeMem decay architecture (arXiv:2601.18642, Feb 2026) and Adaptive Budgeted Forgetting (arXiv:2604.02280, Apr 2026) into the VEKTOR memory pipeline. To our knowledge the first production SDK implementation of either paper.
- Layer 0 Pre-ingest signal filter (
vektor-intake.js): NER/verb density scoring, source trust matrix (15 source types × 4 actor types), bot signature detection. Drops structural noise before any DB write. - Layer 1 Dual-tier memory (LML/SML):
importance_score,memory_layer,strengthcolumns. Initial importance computed from FadeMem formulaI = 0.4×rel + 0.3×freq_sat + 0.3×recencyafter embedding, scored against standing query vectors. - Layer 2 Adaptive decay (
vektor-decay.js): Stretched exponentialv(t) = v(0) × exp(-λ × t^β), β=0.8 LML / 1.2 SML. Causal decay suppression via trigger-cachedmax_child_importance. Access reinforcement with diminishing returns. LML half-life ~11d, SML ~5d. - Layer 3 Conflict resolution (
vektor-conflict.js): Five-verdict AUDN upgrade (COMPATIBLE, CONTRADICTORY, SUBSUMES, SUBSUMED, NO_OP). 2D trust matrix prevents automated sources suppressing human ones. - Layer 4 Memory fusion (
vektor-fusion.js): LLM-guided cluster consolidation during REM cycle. Variance-boosted strength on fused nodes. Source memories moved to cold storage. - Layer 5 Budgeted pruning (
vektor-prune.js): Knapsack pruning with sub-linear token costsqrt(tokens). Per-source node limits enforced at sync time. Source budget table seeded at migration. - Layer 6 Additive reranking (
vektor-recall-ranked.js): Composite score0.5×sim + 0.2×strength + 0.15×importance + 0.15×causal_weightapplied as final pass after cross-encoder rerank.
Schema Migration 162 21 New Migrations
migrate-162.js: importance_score, memory_layer, strength, access_count, last_decay_calc, decay_rate, source_type, actor_type, trust_score, max_child_importance, cold_storage, cold_at. Tables: vektor_cold_storage, vektor_standing_queries, vektor_source_budgets, vektor_sync_cursors, vektor_sync_health. Three SQLite triggers maintaining causal cache on importance changes and edge insert/delete.
MCP Connector Layer
vektor-mcp-reader.js and vektor-connector-base.js: MCP stdio connector pipeline syncing external tools into VEKTOR memory. Filesystem and GitHub connectors added to setup wizard Step 10. GitHub connector uses dedicated fetchGithubItems strategy (list_issues, list_commits, list_pull_requests) with owner/repos from wizard config. Staggered ingestion (5ms between writes, 200-item cap per run). Sync cursor table prevents re-scanning history.
Provider-Agnostic LLM
vektor-llm-provider.js: All 15 wizard providers supported (groq, claude, openai, gemini, mistral, deepseek, together, cohere, xai, minimax, nvidia, perplexity, lmstudio, litellm, ollama). Reads user config no hardcoded API keys. Replaces Groq hardcoding in vektor-conflict.js, vektor-fusion.js, vektor-standing.js, vektor-sleep.js.
Standing Queries Auto-Evolving Context
vektor-standing.js: Weekly synthesis from top-15 LML memories via configured LLM provider. Goal statements embedded with local model and stored as vectors. Used as rel component in FadeMem importance scoring for background syncs. 14-day TTL.
Graph Visualisation Fix
vektor-graph-server.js: ns namespace variable undefined in apiGraph() SQL handler caused all graph API calls to return {ok: false, error: "ns is not defined"}. Graph UI showed spinner indefinitely. Fix: extract ns from URL params before SQL clause construction.
REM Cycle
vektor-sleep.js: Orchestrates decay → fusion → prune → standing in sequence. All apiKey guards removed provider config used instead. REM cycle confirmed at 716ms on 17,523-node graph.
Causal Inference Engine Four-Phase, Zero Dependencies
Full causal reasoning layer deployed to src/causal/. Node ≥18 required, no external dependencies.
- Phase 1 G-Formula estimator (
gformula-estimator.js) ATE identification and estimation using the G-computation formula over the MAGMA causal graph. - Phase 2 MSM / IPW estimator (
msm-estimator.js) Marginal structural model estimation via inverse probability weighting, handling time-varying confounders across memory timelines. - Phase 3 IV Bounds estimator (
iv-bounds-estimator.js) Instrumental variable partial identification bounds (Manski-style) for causal effect estimation when unobserved confounders are present. - Phase 4 Root Cause Analysis Engine (
vektor-rca-engine.js) Combines all prior phases to build an intervention graph, trace agent failures backwards through the causal chain, score root causes by impact, and predict fix outcomes.
CLI test harness (cli-test.js) ships with --verbose and --phase flags for targeted phase testing. 31 tests passing across all four phases.
DeepFlow v2 Deterministic 8-Step Pipeline
The vektor.mjs deep agent path (deep:true) has been rebuilt as a fully deterministic pipeline, replacing the prior unbounded loop. Pipeline stages: DECOMPOSE → VAULT-FIRST → SWEEP → LOCI → COMMIT → ADVERSARIAL → SYNTHESISE → CRITIC+PATCH. Three new tools added: adversarial_search, loci_rank, and patch. DeerFlow renamed to DeepFlow throughout. The /agent path (deep:false) is unchanged. A full syntax repair pass was applied BOM removal, optional chaining and nullish coalescing fixes, stray markdown commented out.
JOT Collab Two-Pass Article Generation
Groq LLaMA two-pass generation system integrated into the JOT SDK: rate-limit handling with automatic backoff, API key rotation across multiple Groq keys, APA7 citation infrastructure, and a post-generation citation scanner. Full bug audit of four core JOT files with critical fixes applied via fix-criticals.js. JOT v1.5.x additions also included: TAG pill and /api/ai/transform tag prompt (v1.5.2), notes RAG wired into /api/memory/think, vektor ask libuv Windows assertion crash resolved (v1.5.7), and lightbulb indicator overlap fix (v1.5.8).
Download Server Version Mount Fix
The licence-gated download endpoint was serving vektor-slipstream-1.5.8.tgz despite the tarball at ~/downloads/ and ~/vektor-monorepo/releases/ being updated to v1.7.2. Root cause: PM2 bakes environment variables into the process at launch time. dotenv does not override variables already present in process.env, so updating .env and running pm2 restart --update-env both silently preserved the stale VERSION_SLIPSTREAM=1.5.8 value. Fix: delete the PM2 process and re-register with the version passed explicitly at start time, then pm2 save to persist. Affected service: vektor-server (vektor-monorepo).
better-sqlite3 Bundled Binary (Windows)
better-sqlite3 moved from optionalDependencies to dependencies with a pre-built Windows binary bundled under bundled/better-sqlite3/build/Release/. Eliminates the npm rebuild requirement on Windows installs where native build toolchains are absent. The loader uses process.chdir() before requiring the native module so the relative path resolution is correct regardless of working directory. postinstall.js silently skips the rebuild step when the bundled binary is present.
sqlite-vec ANN Recall Wired
sqlite-vec upgraded to ^0.1.9. The vec_memories virtual table schema is now created on DB init and the write path stores quantized float32 vectors alongside the BM25 FTS5 index. Recall falls back gracefully to cosine scan if sqlite-vec fails to load (e.g. architecture mismatch). ANN nearest-neighbour swap replaces full cosine scan for large graphs (>5,000 memories), reducing p95 recall latency by ~60%.
MAGMA Graph vektor_status and vektor_related Tools
Two new MCP tools shipped in the CLOAK layer:
- vektor_status lightweight memory health check returning memory count, namespace, last store timestamp, and embedder mode. Designed for session auto-probe without triggering a full recall pass.
- vektor_related traverses memory graph edges for a specific memory ID, returning typed neighbours (semantic / causal / temporal / entity) up to N hops. Replaces manual
memory.graph()calls in agentic workflows.
Bug Fix Percept isOnTopic Threshold
The Percept Chat Layer was firing topic-match hints too aggressively. The isOnTopic cosine score threshold was lowered from 0.35 to 0.25, reducing false-positive interruptions during tangential conversation turns. Affected module: vektor-percept-chat.js.
Bug Fix vektor rem (memory.dream() removed)
The npx vektor rem CLI command was calling memory.dream(), a method removed in v1.5.4. The command now uses memory.stats() to retrieve fragment counts and memory.recall() to seed the compression pass, matching the current API surface. Affected module: vektor.mjs.
Infrastructure GUI API Proxy Routes
Relative /api/memory/* calls from vektor-graph-ui.html were hitting the wrong server when the GUI was served from a non-default port. Proxy routes added to the local graph server so all /api/memory/think and /api/memory/remember calls resolve correctly regardless of serving context. Affected module: vektor-graph-server.js.
v1.5.8
Integration Guide Expansion
The Integration Guides page has been expanded from 9 to 21 documented integrations every provider and tool listed on the Downloads page now has a dedicated guide with config snippet and notes.
New Provider Integrations
Full setup guides added for:
- LiteLLM Proxy point VEKTOR at any LiteLLM proxy endpoint; zero code changes, provider-agnostic switching.
- LM Studio fully offline memory via LM Studio's OpenAI-compatible local endpoint.
- NVIDIA NIM near-local inference latency with automatic failover routing to Anthropic or OpenAI.
- MiniMax abab6.5s for high-volume batch summarisation; lowest cost-per-token for REM compression passes.
- DeepSeek DeepSeek-V3 and DeepSeek-R1 via the OpenAI-compatible endpoint. No adapter required.
- xAI / Grok Grok-3 and Grok-3-mini with persistent MAGMA memory. OpenAI-compatible API routing.
- Together AI 200+ open models (Llama, Mistral, Qwen) with VEKTOR memory attached.
- Cohere Command R and Command R+ paired with VEKTOR's MAGMA graph for structured RAG workloads.
- Perplexity Sonar online models with persistent session context layered on top of live web search grounding.
New Tool & Framework Integrations
- Vex open-source memory portability CLI. Export
.vmig.jsonlfrom VEKTOR and import to Pinecone, Qdrant, or pgvector. - Vek-Sync open-source MCP config sync across Claude Desktop, Cursor, Windsurf, VS Code, and Cline. AES-256 credential vault.
Percept Chat Layer
A session intelligence layer that plugs into the VEKTOR REPL and surfaces memory contextually as you work like a colleague who remembers what you were doing. Five capabilities added to vektor-percept-chat.js:
- Morning Handover on startup, surfaces yesterday’s active topic thread, where you left off, and any new web signals relevant to that thread.
- Progressive Idea Surfacing accumulates a topic buffer as you type; at natural pause points surfaces 1–3 related memories as soft hints that deepen if the topic sustains.
- Step Tracker detects multi-step tasks (code, research, trademark filing) and displays the current step inline with auto-saved progress.
- Idea Expansion three depth levels earned by engagement: Whisper (single concept word), Bloom (short phrase + one connection), Anchor (synthesised insight, held until topic shifts). Never triggered automatically depth is earned, not pushed.
- Web Signal Surfacing if a new percept signal matches the active topic, surfaces it as a quiet inline link without interrupting flow.
Percept Inbox Daemon
Background daemon (vektor-percept.js) that watches ~/.vektor/inbox/ for dropped files and auto-processes them into MAGMA memory without any user action. Supported formats: .txt, .md, .json, .transcript, .log. Pipeline per file: detect type → extract text → LLM synthesis (title, summary, entities, decisions, actions, tags) → store structured note in MAGMA → move to done/. Failed files move to error/ with a processing receipt.
Commands: vektor percept start daemon (blocks) · vektor percept --once process inbox once then exit · vektor percept --dir <path> watch custom directory · vektor percept --no-llm heuristic only, no LLM cost · vektor percept status show inbox stats.
Percept Worker CLI
Standalone thinking-loop CLI (percept.js) for interactive session-based memory work. Provider-agnostic: Groq, Ollama, OpenAI, Claude, Mistral, Together AI, OpenRouter, Cohere, xAI, DeepSeek, LM Studio, MiniMax, NVIDIA NIM, Perplexity. Configurable via ~/.vektor/config.json. Separate fast model for worker and distillation passes, session model for conversation. Briefings via /insights [days].
Bug Fix Sovereign Screener Blocking Legitimate Writes
sovereign.js contained override in its RISK_TOKENS list. Any vektor_store call with content including that word silently returned { blocked: true } with no error raised and no write to the database. Removed override from RISK_TOKENS.
Bug Fix sovereignRemember Dropped importance Options
The sovereignRemember wrapper accepted only a single argument (input), silently swallowing the { importance: imp } options object passed by the MCP bridge on every store call. All writes succeeded but landed with default importance regardless of the value specified. Fixed: sovereignRemember(input, opts = {}) now accepts and forwards opts to originalRemember. Affected module: sovereign.js.
Bug Fix FTS5 Content Table Datatype Mismatch
memories_fts was configured with content_rowid=’id’ but memories.id is a TEXT column. SQLite’s actual integer rowid is the correct key. Under specific BM25 query patterns this produced a silent datatype mismatch error that broke recall. Fixed: FTS index rebuilt against the real integer rowid via migration script migrate-137.js. Post-fix result: memories and FTS counts aligned, BM25 test hits confirmed live. Affected module: slipstream-db.js.
Bug Fix MCP Tool Schema Unhandled Parameters
anticipated_queries and supersedes_id were advertised in the MCP tool description but not handled by the store() function, causing schema validation noise on every store call. Parameters stripped from schema and handler support added. Affected module: memory.js.
Docs Sidebar & Navigation
The integrations sidebar now lists all 21 entries with anchor links for direct navigation. The Downloads page "Works With" count and all integration tiles link directly to the corresponding guide section.
v1.5.4
Supersession Chains
Memory systems that accumulate contradictions degrade over time both sides of a preference change sit in the database with equal weight, both get recalled, and the agent has no way to know which is current. Supersession chains fix this. When a new memory arrives that is semantically similar to an existing one, VEKTOR marks the old memory as superseded via a superseded_by forward pointer and timestamps the replacement. Active recall filters superseded memories out with WHERE superseded_by IS NULL. The full chain is preserved for provenance you can walk backwards through what the agent believed at any point in time, but only current state is surfaced during normal operation. Implemented in vektor-dedup.js via a Proxy that intercepts every remember() call and runs a near-duplicate check before writing.
Query Prefixing
Structured context is now prepended to queries before vectorizing at recall time. Short or ambiguous inputs that previously produced noisy embedding results benefit most the prefix anchors the vector in a more meaningful region of the embedding space, improving semantic retrieval accuracy without changing how memories are stored.
Parallel Detail Pass
After initial recall scoring, a secondary sweep fetches full memory content for the top-ranked candidates rather than relying on indexed summaries. The result is more accurate recall on complex or multi-part queries where summary-level representations lose important nuance. Adds a small latency cost on high-recall queries; threshold-controlled and off by default for lightweight sessions.
HyDE Recall Channel
Hypothetical Document Embeddings the recall layer now generates a hypothetical answer to the incoming query and uses that as an additional recall vector alongside the original. Surfaces memories that are semantically related but share little surface vocabulary with the query. Particularly effective for preference and fact lookups where the stored memory was phrased differently from how the question was asked.
Critical FTS5 Stability Fix
Resolved a recurring no such module: fts5 crash that could occur on every new install or after a Node version change. Root cause: purgeBrokenFTS5() was called after the FTS5 availability probe inside applyBM25Schema() if FTS5 was unavailable the function returned early, leaving stale triggers in place. Any subsequent vektor_store call would then crash with a module error. Fix: purgeBrokenFTS5(db) is now called unconditionally at the top of applyBM25Schema(), before the probe. Affected module: slipstream-db.js. No database migration required.
v1.5.2
JOT AI Toolbar
Seven one-click AI actions added to the JOT synthesis pane toolbar. Each action streams output directly into the synthesis panel, replacing live synthesis until typing resumes:
- Summarise condenses notes to essential points
- Flashcards converts content into Q&A flashcard pairs for review
- Whitepaper expands notes into a structured long-form document
- Actions extracts actionable tasks and next steps
- Tags auto-generates relevant topic tags
- Titles suggests document titles based on content
- Improve rewrites for clarity, flow, and concision
Named Session Management
JOT sessions are now named and persistent. Save any session with a custom name; list, reopen, and delete sessions from the sessions panel. Sessions are stored in the local VEKTOR vault and survive restarts.
Arxiv Research Panel
When note content crosses a minimum-length threshold, JOT automatically queries the arxiv API and surfaces related academic papers below the synthesis pane. Results update with a 1-second debounce as notes evolve. Each result shows title, authors, date, and abstract excerpt with a direct link to arxiv.org.
Math Evaluator & Unit Converter
Collapsible utility panel embedded in JOT. Handles inline math expression evaluation (no submit button results appear as you type) and unit conversion across length, weight, temperature, and currency. Currency pairs use live rates; all other conversions are fully offline.
Clickable Insight Expansion
Each synthesised insight bullet now renders with a clickable circle. Clicking expands that specific insight inline with a deeper elaboration streamed live from the model. Clicking again collapses it. Expansion does not interrupt the main synthesis stream.
v1.5.1
JOT Split-Panel Note & Synthesis Interface
vektor jot new GUI mode providing a split-panel interface for note-taking with live AI synthesis. Left pane accepts freeform notes; right pane streams a structured synthesis with a 600ms debounce on keystrokes. Synthesis is tiered by content length: short content gets quick insight bullets; medium content gets structured insights with connections; long content gets full thematic synthesis with tensions and recommendations.
The model used for synthesis is drawn from the active provider in your VEKTOR config and can be overridden per-session from the settings panel.
Streaming Token Render
Synthesis output streams token-by-token into the right pane using server-sent events. The UI renders tokens as they arrive no waiting for full completion. A subtle cursor indicator shows when synthesis is in progress.
JOT requires no additional setup. Run vektor jot from the CLI or open the GUI and select JOT from the toolbar. All existing memory and vault data is preserved.
v1.5.0
New MCP Tools
vektor_status lightweight health check returning memory count, active namespace, last store timestamp, top tags, and DB size in ~10 tokens. Call at session start for orientation without a full recall.
vektor_related traverses all graph edges for a given memory ID. Returns Zettelkasten links (SUPPORTS, EXTENDS, CONTRASTS, RELATED, PREREQUISITE) and MAGMA co-occurrence edges with types and weights.
Auto-Briefing on First Recall
The first vektor_recall call each session now returns an inline session_briefing field a compact digest of recent stores, open decisions, and top-priority items. No separate vektor_briefing call needed for orientation.
MAGMA Graph Exposure
The vk_graph_nodes and vk_graph_edges tables (co-occurrence, temporal, causal edges) are now fully queryable via vektor_related and vektor_graph. Edge weights and types surface in recall results for high-connectivity memories.
SSH Deployment Tools (CLOAK)
cloak_ssh_exec run any shell command on a remote server. Auto-classified into read vs. destructive tiers; destructive commands require cloak_ssh_approve before execution.
cloak_ssh_plan multi-step atomic deployment with auto-backup before each write step and one-step rollback on failure.
cloak_ssh_approve / cloak_ssh_rollback safety gate and rollback for destructive SSH operations.
DXT Extension
New vektor-slipstream-dxt/ bundle: single-file Claude Desktop extension with embedded MCP server, manifest, and user config UI. Installs via drag-and-drop with no manual JSON editing.
Existing ~/.vektor/memory.db databases are fully compatible. Run vektor doctor after upgrading to validate schema and embedding model.
v1.4.0 Major
Intelligence Modules
Axon associative recall engine that traverses Zettelkasten link edges during search, surfacing related memories not directly matched by the query vector.
Cerebellum procedural memory layer for multi-step skill sequences. Stores and retrieves agent workflows with step-level success/failure annotations.
Cortex metacognitive monitor that tracks confidence trajectories across stored facts, flags contradictions, and suggests when to re-verify stale memories.
AUDN Log (audn-log.js) append-only audit log recording every store, recall, and forget operation with timestamps, namespace, and caller identity.
Namespace Isolation
Full multi-namespace support in the MCP layer: all tools accept an optional namespace parameter. Memories stored in one namespace are invisible to recall in another unless global: true is passed explicitly.
Bulk namespace operations: rename, merge, export, and delete entire namespaces in a single call. Namespace stats included in vektor_status.
Boot Order & Patch System
boot-patch.js deterministic boot sequence that applies pending migrations, warms the embedding model, and validates schema before the first tool call is served. Eliminates race conditions on cold start.
percept.js / percept-worker.js background perceptual indexing worker that asynchronously re-embeds new memories without blocking the main MCP thread.
v1.3.7 Patch
Memory Management Tools
pin.js / forget.js pin memories to prevent TTL expiry and selectively forget memories by ID, tag, or query match. Both exposed as MCP tools.
inspect.js detailed memory inspector returning raw embedding vector (truncated), link edges, confidence score, and full metadata for any memory ID.
briefing.js on-demand structured briefing engine returning recent, decisions, reminders, and conflict sections as structured JSON or formatted text.
export-import.js cross-device memory portability: export to signed JSON bundle, import with automatic re-embedding and ID-collision resolution.
CLOAK Behaviour Patterns
Self-improving pattern store: behaviour profiles (mouse movement, scroll, keystroke timing) are scored win/loss after each stealth fetch. Patterns are promoted through Bronze → Silver → Gold tiers based on CAPTCHA pass rate.
cloak-recorder-auto.js browser snippet that records real human interaction patterns and stores them in the pattern store for injection on future fetches.
New tools: cloak_pattern_list, cloak_pattern_stats, cloak_pattern_prune, cloak_pattern_seed, cloak_behaviour_stats.
TypeScript Types
Full types/index.d.ts covering all public API surfaces: store options, recall results, graph edges, namespace config, export bundles, and error types. Enables IDE completion for TypeScript and typed JavaScript projects.
13 fixes across three review rounds: LIMIT guards on briefing context queries, selective error catching in forgetWhere, bulk SQL namespace deletes, IFNULL aggregation wrapping, large-export IN-clause replaced with subqueries, checksum hashing of export payloads, pinned edge orphan guards.
v1.2.0 Major
Hybrid Recall Engine
BM25 keyword search (vektor-bm25-recall.js) runs in parallel with vector similarity search. Results are fused via Reciprocal Rank Fusion (RRF) into a single ranked list, improving recall for proper names, exact strings, and short queries.
New MCP tool vektor_recall_rrf: dual-channel recall exposed directly. Recommended over vektor_recall for code identifiers, people names, and product names where embeddings underperform.
Session Ingestion
vektor-session-ingest.js end-of-session pipeline that feeds raw conversation text to an LLM and extracts discrete facts, decisions, and preference signals automatically.
Each extracted fact is stored with anticipated_queries natural-language phrasings the user would use to search for it later, improving future recall quality without manual tagging.
New MCP tool vektor_ingest: accepts full conversation transcript, returns count of facts stored and IDs for review.
Confidence Scoring & Deduplication
vektor-confidence.js importance-weighted confidence score on every stored memory, decaying gently over time and surfaced in recall results.
vektor-contradict.js detects memories that directly contradict each other and flags them in recall results and briefings as unresolved conflicts.
vektor-dedup.js cosine-similarity sweep marks near-duplicate memories and merges them on the next recall invocation.
Memory Versioning
vektor_store gains supersedes_id pass the ID of an outdated memory to atomically mark it expired while storing the updated fact. Graph edges of type SUPERSEDES are created automatically, maintaining a full revision chain.
v1.1.0 Major
Namespace Isolation
vektor-namespace.js each agent, project, or user session maintains a separate memory silo within one database. Namespace-aware recall scopes queries automatically; cross-namespace lookup is opt-in.
Knowledge Graph Server
vektor-graph-server.js and vektor-graph-ui.html local HTTP server exposing the memory graph as an interactive force-directed visualisation. Nodes are memories; edges are Zettelkasten link types and MAGMA co-occurrence edges.
MCP tool vektor_graph: programmatic BFS/DFS traversal from a seed memory ID with configurable depth and edge-type filters.
Morning Briefing Scheduler
vektor-briefing-scheduler.js configurable cron-style scheduler generating a briefing from recent memories and pushing it to a configurable endpoint or stdout.
MCP tool vektor_briefing: on-demand structured briefing with sections: recent, decisions, reminders, conflicts.
Sleep & Self-Organisation
vektor-sleep.js offline consolidation: re-embeds low-confidence memories with updated model weights, prunes expired memories past TTL, rebuilds BM25 index. Runs during agent idle periods or via vektor sleep CLI.
vektor-selforg.js LLM-driven background pass that assigns tags, importance weights, and Zettelkasten link suggestions to recent stores. Tags flow through to the vektor_status top_tags fingerprint.
v1.0.0
Persistent Memory Core
First public release local-first persistent memory for AI agents.
vektor_store writes facts with importance, TTL, tags. vektor_recall returns top-K semantic results.
SQLite + sqlite-vec for native vector search. All data on-device.
MCP Server
Full MCP server plugs into Claude Desktop, Roo Code, and any MCP-compatible client via DXT.
Initial tools: vektor_store, vektor_recall, vektor_delta, tokens_saved.
CLI and TUI
vektor.mjs full CLI built with Ink (React terminal UI). Commands: setup, doctor, recall, store, export, import.
Interactive REPL for memory inspection. Doctor validates DB integrity, embedding model, and MCP config.
Export and Migration
Full database export to portable JSON memories, embeddings, tags, metadata. Schema migration runner with version tracking; in-place upgrades without data loss.
Licence and Security
Compiled licence enforcement via ByteNode tamper-resistant, validated at startup. No telemetry. No cloud API calls for core operations.