Skip to content

v1.0.0

Choose a tag to compare

@luca-ctx luca-ctx released this 20 Aug 22:18
· 19 commits to main since this release

ctx 1.0 is our first major stable release and brings serious performance and correctness improvements. Cold ingestion of a 4 GB history corpus fell from 44 minutes to 2m22s, about 18x faster, and incremental refresh fell from 4.0s to 0.35s, about 12x faster. The release also adds automatic indexing across more than 40 local agent-history sources, tracks parent, subagent, fork, and copied-session lineage, and introduces ctx blame, a ctx pro command that connects files, commits, and pull requests to the agent sessions that produced them.

Indexing and storage

  • Replaced the legacy SQLite/FTS history store with immutable, self-contained Tantivy Core generations.
  • Complete normalized records now live in Core, so searches and transcript reads do not reopen provider databases or files.
  • Publications are verified and activated as complete generations. Interrupted refreshes retain the last verified generation and safely retry.
  • Semantic search now uses optional memory-mapped flat-F32 generations instead of sqlite-vec.
  • Core, semantic, and pro state are bound to committed generations, preventing mixed or partially updated results.
  • Added route-local incremental refresh, unchanged-source admission, bounded generation verification, and writerless no-op refreshes.
  • Malformed or conflicting Codex rollouts can be quarantined individually while valid sibling histories continue importing.

Search and structured access

  • Added content-aware ranking and explicit all, transcript, calls, and outputs scopes.
  • Added deterministic event queries through ctx list events, with chronology, provider, source, session, lineage, agent, workspace, and file filters.
  • Added generation-bound JSON and streaming JSONL output for structured queries and exports.
  • Added exact MCP server/tool attribution and policy-selected invocation search.
  • Added provider-neutral parent, child, fork, and copied-session relationships. Proven copies are suppressed from default search without becoming inaccessible.
  • Added ctx show event and expanded session rendering with text, Markdown, JSON, and JSONL output.
  • Added transcript export through ctx show session --out.

Examples:

ctx list events --provider codex --event-type message \
  --content full --format jsonl > codex-messages.jsonl

ctx list events --since 2026-08-01T00:00:00Z \
  --until 2026-08-02T00:00:00Z --format jsonl

ctx show session <session-id> --mode full \
  --format markdown --out transcript.md

ctx pro

  • Added file, commit, and pull-request blame for connecting code changes to the agent sessions that produced them.
  • Added ctx blame <target> shorthand with explicit --type file|commit|pr overrides.
  • Added bounded verified evidence context to blame results.
  • Added exact Git operation lineage for amend, rebase, and cherry-pick attribution.
  • Added explicit attribution outcomes when evidence is absent, ambiguous, stale, or unverifiable.
  • pro consumes committed Core generations directly and does not rescan provider histories.
  • First setup can automatically start a 14-day trial without requiring an account or card.
  • Added a browser handoff for connecting an account, retaining access after the trial, or subscribing.
  • Core remains fully usable when ctx pro is unavailable.

Setup, indexing, and terminal UX

  • First setup now coordinates Core indexing and optional pro trial setup while preserving Core-first, fail-soft behavior.
  • Added automatic and manual indexing modes through ctx index mode auto|manual.
  • Added whole-run progress and estimated completion time.
  • Added continuously updating session, message, tool-call, and data-scanned counters.
  • Added live terminal resize handling and persistent structured callouts.
  • Hardened daemon recovery, concurrent publication, reinstall supervision, service ownership, and idempotent reinstall behavior.
  • Added the universal ctx agent plugin and migrated the managed skill and command to it.

Provider support and import reliability

  • Added or completed support for Hermes, Grok Build, DeepSeek Harness, current and legacy OpenClaw history, OpenHands CLI, Cline SDK stores, Mux archives, Shelley, and compressed Codex rollouts.
  • Fixed streamed Kimi assistant content and corrected wire semantics.
  • Restored Factory Droid discovery and stabilized retry identities.
  • Hardened Cursor, Copilot CLI, OpenCode, Codex, Claude, Pi, and other importers against sockets, symlinks, active writes, malformed optional metadata, duplicate identities, and partial records.
  • Supported readable provider histories are now discovered and imported automatically.

Performance

Huge thanks to @malandin (Alex Malandin) of SereneDB for initially suggesting source-backed search indexing (instead of ingesting into sqlite). Turns out, this was a huge insight and was instrumental in achieving these performance gains with Tantivy. Here is the HN comment that started it all: https://news.ycombinator.com/item?id=48778744

Workload Before ctx 1.0 Result
4 GB cold ingestion (#306) 44m 33s 2m 22s About 18x faster
648 MB incremental refresh 4.015s 0.345s About 12x faster
35 GB ordinary append Full-route work 469ms p50, 535ms p95 Under 0.5s median
5.44 GB lexical cold build 30.60s 7.65s 75% faster
Lexical filesystem output 3.87 GB 240.8 MB 16x smaller
Broad-term lexical query 115.23ms 1.178ms 98x faster
20.8 GB Core ingestion 21m 49.8s 15m 04.5s 30.9% faster
20.8 GB Core to pro completion 28m 33.2s 21m 47.4s 23.7% faster
Four-CPU, 192-source refresh 21.23s / 189.9 MB 13.06s / 131.2 MB 38.5% faster, 30.9% less memory
33 GB unchanged refresh 13.26s 7.29s 45% faster
16,384-document publication 3.141s 84.5ms 37x faster

Platforms and distribution

Official artifacts are available for:

  • Linux x86-64 and ARM64, targeting a GLIBC 2.28 ceiling.
  • macOS x86-64 and Apple Silicon.
  • Windows x86-64.

Official installs verify signed metadata and artifact hashes. Windows artifacts are Authenticode-signed, and macOS artifacts are signed and notarized. Source and package-manager installations remain fully supported as Core-only installations.

Breaking changes and upgrade notes

  • On first run, ctx 1.0 automatically builds a new immutable Core generation from your existing provider histories. It does not convert the legacy index in place. The new generation is verified before activation, interrupted builds can safely retry, and your original agent history is never modified. No manual migration is required.
  • ctx sql and its persistent relational projection have been removed. Common structured-access workflows remain available through indexed ctx list events filters, JSON/JSONL, jq, MCP, and the SDKs. Arbitrary SQL is gone, but provider, source, session, lineage, chronology, role, event-type, workspace, and file selection have typed indexed equivalents.
  • The legacy --json shortcut has been removed; use --format json.
  • Windsurf support was removed because its available source was hook-generated output rather than automatically discoverable native history.
  • Trae support was removed because its history contract could not be supported reliably.

Contributors

Maintainer: @luca-ctx

External code contributors:

  • @j2h4u: bounded provider imports, OpenClaw refresh efficiency, and OpenCode empty-value handling
  • @rNoz: macOS path safety, Cursor and Copilot CLI source handling, Factory Droid discovery, and daemon upgrade recovery
  • @rcny: Kimi streamed assistant content and corrected transcript semantics
  • @createsomethingtoday: macOS stat metadata normalization
  • @atharva-patill: source-backed indexing documentation

The Factory Droid discovery fix was integrated through a maintainer change and retains rNoz as its commit author.

Issue reports and product feedback also came from:

Thank you to everyone who tested ctx against real histories, reported failures, supplied benchmarks, and contributed fixes.

Full changelog

ctx 1.0 includes 391 merged PRs since v0.25.0.

View the full v0.25.0 to v1.0.0 changelog.