Releases: GottZ/ctx
ctx v0.26.0
v0.26.0 — MCP Remote Server + OAuth 2.1 PKCE + Client Management
MCP Streamable HTTP transport at /mcp, compatible with claude.ai and
Claude Code. Five tools: query (full retrieval pipeline with gravity
boost), store, search, get, recent (temporal listing).
OAuth 2.1 PKCE authorization flow for browser-based MCP clients:
- /.well-known/oauth-authorization-server metadata
- /authorize: HTML form, user authenticates with ctx API key
- /token: PKCE code exchange, issues Bearer token
Client registration system (ctx mcp add/list/delete) with per-client
credentials stored in context_oauth_clients (Migration 023). Each
integration gets its own client_id, revocable independently.
Auth middleware now accepts both X-Context-Key and Authorization: Bearer.
Query handler backfills pending embeddings inline before search.
CLI query output formatted by default (--json for raw).
Block IDs included in source references (CLI + MCP).
Also includes: dream_mode removed from MCP (admin-only via CLI),
recent tool for temporal queries, Claude Chat MCP feedback applied.
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v0.26.0Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v0.25.3
v0.25.3 — Query-time embedding backfill + model docs update
Query handler auto-backfills pending embeddings before RRF search.
Blocks stored via /api/store are immediately searchable on the next
query, without waiting for the scheduler backfill loop.
Race-safe: concurrent backfill by scheduler and query handler is
idempotent (StoreEmbedding is a plain UPDATE, last write wins).
Also updated "Context Store — Aktive Modelle" knowledge block to
reflect current per-pipeline model configuration (qwen3.5:27b for
Dream, llama.cpp sidecar for Dream embeds).
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v0.25.3Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v0.25.2
v0.25.2 — Dream stats fix, CLI polish, duration parsing
- Dream stats exclude snapshot blocks from total/checked counts,
consistent with PickBlock filter. Fixes misleading "unchecked" count. - Dream idle wait log promoted from DEBUG to INFO for observability.
- CLI: "tr" alias for dream throttle (ctx dr tr 20).
- CLI: bare integers accepted as seconds in duration args (20 = 20s).
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v0.25.2Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v0.25.1
v0.25.1 — Dream CLI subcommands + rename silent to throttled
New CLI commands for runtime dream mode control:
ctx dream enable — full throttle (back-to-back cycles)
ctx dream disable — off for maintenance/dev
ctx dream throttle — throttled mode (default 20s GPU cooldown)
ctx dream throttle 60s — throttled with custom interval
ctx dream (stats) now shows dream_mode and dream_interval inline.
Renamed "silent" to "throttled" across API, CLI, and internals for clarity.
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v0.25.1Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v0.25.0
v0.25.0 — Async embedding backfill, dream mode control, handler decoupling
Embedding generation decoupled from HTTP request path. Store, Manage, and
Ingest endpoints return immediately — scheduler backfill loop generates
embeddings asynchronously. Store latency drops from ~10s to ~30ms.
Dream mode runtime control via API (action "dream-mode"):
- on: full throttle, back-to-back cycles
- silent: GPU cooldown throttle between LLM calls (configurable, default 20s)
- off: dream disabled for maintenance
Idle wait configurable via CTX_DREAM_IDLE_WAIT env var (default 20s).
Dream audit log enriched with per-link details (target_id, relationship, confidence).
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v0.25.0Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v0.24.0
v0.24.0 — Dual-Protocol Wire Format + Dream Temporal Validation + CPU Embedding Sidecar
Dual-protocol inference: per-pipeline CTX_*_PROTOCOL env var selects
"ollama" (/api/chat, /api/embed — supports think, num_ctx) or
"openai" (/v1/chat/completions, /v1/embeddings — any provider).
Dream Temporal Validation: new pipeline step between PickBlock and
keyword extraction. Phase 1 (deterministic): re-extract dates, fix
missing dimensions. Phase 2 (LLM): extract explicit dates, detect
false positives (percentages, version numbers), return directional
references (past/future) without fabricating dates.
CPU Embedding Sidecar: Dream keyword embeddings can run on a separate
llama.cpp instance via CTX_DREAM_EMBED_HOST + CTX_DREAM_EMBED_PROTOCOL=openai.
Frees GPU for query-path embedding + synthesis. Verified live: llama-embed
receives POST /v1/embeddings from ctx container over internal Docker network.
Bug fixes:
- B02: ValidateTemporal no longer hallucinates dates (estimate removed)
- B03: EvaluateRelationships propagates parse errors (1-day retry vs 14-day)
- B04: ListMeta LIMIT 10000, composite index (Migration 022)
- B05: Health check pings all pipeline hosts (embed/chat/dream)
- B06: CTX_RATE_LIMIT_WRITE + CTX_RATE_LIMIT_READ env-configurable
- Dream embedNumCtx from config (was 0 causing 32k context load)
New eval: T04 LLM temporal fallback test. 47 total eval tests.
22 SQL migrations. 536+ Go test functions.
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v0.24.0Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v0.23.1
v0.23.1 — Remove OLLAMA_* backward compatibility
Clean break: all OLLAMA_* env vars removed from config, docker-compose,
and .env.example. Pre-1.0 — no backward compatibility needed.
Canonical env vars are now CTX_EMBED_, CTX_CHAT_, CTX_DREAM_*.
See .env.example for full reference with openssl secret generation
and cloud provider examples (Claude, Groq, Gemini).
Breaking: OLLAMA_* env vars no longer read. Migrate .env to CTX_*.
Tests: 536 Go unit tests, 16/16 test.sh, 46/46 eval.sh.
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v0.23.1Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v0.23.0
v0.23.0 — Per-Pipeline Provider Config + FTS Precision
Independent inference configuration for each pipeline (Embed, Synthesis, Dream).
Each pipeline has its own host, API key, model, think mode, and context size.
OLLAMA_* env vars still supported as fallback.
What's new:
- Per-pipeline ENV: CTX_EMBED_HOST/API_KEY/MODEL, CTX_CHAT_, CTX_DREAM_
- CTX_TIMEZONE for correct temporal resolution in non-UTC deployments
- FTS expansion stripped to ISO dates + YYYY-MM only (75% False-Positive-Rate
from weekday/month names empirically measured and eliminated) - 18/18 temporal matchers with isolated unit tests (536 Go test functions)
- Temporal eval category (3 new tests, 46/46 total)
- T09 DimensionWeights corrected for weekday disjunctions
- .project/ moved to private git submodule (GottZ/ctx-project)
- CLAUDE.md reduced to public minimum (51 lines)
Provider readiness:
All LLM/Embed functions accept apiKey parameter. Authorization Bearer header
is set when apiKey is non-empty — ready for Claude, Gemini, Groq, or any
OpenAI-compatible provider alongside local Ollama.
Tests: 536 Go unit tests, 16/16 test.sh, 46/46 eval.sh (0 regressions).
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v0.23.0Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v0.22.1
v0.22.1 — Configurable Embedding Context Size
OLLAMA_EMBED_NUM_CTX replaces the need for custom Ollama Modelfile
variants to control embedding model VRAM usage. Users can now set
context size via environment variable instead of maintaining a
separate model tag (e.g. qwen3-embedding:8b-ctx2k).
Setting OLLAMA_EMBED_NUM_CTX=2048 with the standard qwen3-embedding:8b
model reduces VRAM from 13.3 GB to 5.7 GB — identical to the previous
custom Modelfile approach, but portable and user-configurable.
New env var:
- OLLAMA_EMBED_NUM_CTX (0 = model default, omitted from request)
num_ctx is threaded through the embed package to all handlers
(query, store, manage, ingest). Dream keyword embeddings use the
model default (keywords are short, context size irrelevant).
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v0.22.1Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctxctx v0.22.0
v0.22.0 — Dual-Model Dream Architecture
Dream Mode can now use a separate, larger model for background
cross-referencing while synthesis stays on the fast model. Evaluated
10 Gemma models — qwen3.5 family remains unbeaten. qwen3.5:27b is the
only model to pass all 4 dream tests including causal relationship
detection.
Per-function LLM configuration:
- OLLAMA_DREAM_MODEL (separate model for dream evaluation)
- OLLAMA_DREAM_NUM_CTX / OLLAMA_CHAT_NUM_CTX (per-function context)
- OLLAMA_DREAM_THINK / OLLAMA_THINK (per-function think mode)
- Removed global ThinkMode — think *bool threaded through full chain
Continuous dream loop:
- Replaced 10s ticker with back-to-back processing
- 120s idle wait when no blocks available
- 2s yield to active queries (demand interruption)
- 10s pause on error to prevent tight loops
Gemma evaluation results (Session 21):
- 10 models tested (gemma3:4b/12b/27b, gemma3n:e2b/e4b,
gemma4:e2b/e4b/26b/31b, embeddinggemma) - Best Gemma for dream: gemma4:e2b (3/4), but only 80% synthesis KW
- Larger models consistently worse (gemma3:12b 0/4, gemma4:31b 0/4)
- gemma4:26b initially scored 0/4 due to markdown fence wrapping
(format:"json" not respected); actual quality 2/4 after strip
VRAM budget (24 GB Quadro RTX 6000):
- Query path: qwen3-embedding:8b (5.3 GB) + qwen3.5:9b (9.3 GB) = 14.6 GB
- Dream path: qwen3.5:27b (22.2 GB at num_ctx=16384) — Ollama swaps
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v0.22.0Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctx