Changelog

What's new in the stack.

Recent releases from all six Open Assistants projects — including the results we'd rather publish than hide.

assistant
v0.6.37Oct 7, 2026

Trigger runs are session runs.

  • Webhook, cron and file-change runs take the session claim and queue behind an active turn, bounded by a timeout that reports SessionBusyError instead of interleaving with the live loop.
  • Registration is refcounted — a finishing trigger run can no longer evict a loop another live run still owns.
  • TriggerRegistry.fire returns the agent's final answer, surfaced in the /webhooks/{trigger_id} response — the callback path the event-driven-agent spec described.
assistant
v0.6.37Oct 7, 2026

Breaking: the bundled mail, contacts and todos families are gone.

  • The built-in email, contacts and todos families, storage adapters, configuration, IMAP dependency and /emails, /contacts, /todos APIs are removed — plus the obsolete Gmail demo. Review dependent applications before upgrading.
  • Existing stores are retained unread: no automatic export, migration or deletion, and a fresh server creates none of the retired directories.
  • Use the existing app_* tools for structured data, or explicitly install the optional tasks/contacts/reading-list starter templates. Generic ConnectKit connectors, file sync, coding and browser capabilities remain — there is no first-party mail replacement.
assistant
v0.6.36Oct 6, 2026

Guardrail residuals closed.

  • Reasoning is checked, not just the answer: a clean answer can no longer flush blocked reasoning, and reasoning-only rounds are covered.
  • Unguarded deployments keep token-by-token streaming — the hold buffer now exists only when output guardrails are configured.
  • A deferred second user message now opens the next turn instead of being dropped.
assistant
v0.6.34Oct 6, 2026

Guardrails prevent, not alert.

  • Model content is held until the round's output guardrails pass — a tripped guard keeps blocked text off the client and out of the session log, instead of reporting it after the bytes were sent.
  • Streaming buffers text and reasoning per round and drops the buffer on a trip; tool-call narration is withheld while the guarded action still runs. Guardrail-enabled deployments trade per-token rendering for that guarantee.
  • The #74 residual is closed: the check runs before the message enters state, covering the ordinary answer, the post-nudge final answer, and tool-round narration. 8 regression cases, 5 of which fail on the previous code.
assistant
v0.6.32Oct 6, 2026

The 2026-10-02 audit batch ships.

  • Roughly 90 issues fixed across governance, boundaries, MCP, auth, transport, skills, storage and the loop — each reproduced failing before the change (suite: 3849 passed, 27 skipped).
  • Tool-authorization guards fail closed; approvals resolve through the live catalog and refuse a tool whose definition changed since the proposal; receipts keep UNCERTAIN/CANCELLED/REJECTED instead of reporting success.
  • Filesystem tools resolve only inside the caller's store plus operator-granted roots; webhook and schedule routes bind identity to the owner; OIDC claims are anchored on the subject with the session cookie set Secure.
assistant
v0.6.26Oct 2, 2026

Tracing consent defaults off.

  • config.yaml could force product tracing on over an explicit LANGFUSE_ENABLED=0, because the yaml bridge ran after construction. Env now beats yaml on the gate.
  • Consent default is OFF: a deployment opts in with LANGFUSE_ENABLED=1 or enabled: true, and an explicit =0 always closes the gate.
assistant
v0.6.24Sep 29, 2026

Scheduled subagents become reachable.

  • POST/GET/DELETE /subagents/schedules and GET /subagents/schedules/{id}/runs expose the durable scheduler; a subagent_schedule tool gives agents the same path under governed approval.
  • Schedules can only be created from a ready frozen launch plan, so unattended runs cannot be registered without the capabilities to execute.
  • Cross-user access returns 404, not 403 — the schedule ID never leaks whether it exists.
  • Trigger restoration keeps recurring schedules recurring; missed one-shots are reported as expired rather than run hours late.
ModelPanel
Gateway v0.7.0Sep 25, 2026

A failed command is no longer a successful receipt.

  • Tool and governance results now carry explicit outcomes: succeeded, refused, failed, timed_out, or killed — contradictory states are rejected.
  • Custom TOOL.md commands execute through the sandbox seam with real write, output, and timeout budgets; signal deaths are reported as failures.
  • Subagent launches fail closed when declared tools or skills are missing, disabled, denied, or approval-gated; terminal delivery is idempotent.
ModelPanel
Gateway v0.7.0Sep 25, 2026

The registry belongs to the user.

  • The gateway no longer ships a provider roster. Routes are added, previewed, updated, and deleted through the user's own registry.
  • An absent registry boots empty; invalid registry bytes still fail closed. Deleted routes carry tombstones so catalog refreshes do not resurrect them.
  • Provider differences stay in configuration while the gateway keeps one OpenAI-compatible adapter and the intrinsic fusion route.
CoreMem
v0.17.0Sep 25, 2026

Facts become governed, versioned memory.

  • Facts live in a versioned HybridDB table, so every write is on the audit chain and reversible with rollback_memory — no second source of truth.
  • add_fact, list_facts, get_fact, fact_history, supersede_fact, expire_fact, and merge_facts give agents deterministic CRUD and history.
  • Optional extract_facts ingest is off by default and opt-in only; it extracts candidates without changing the zero-LLM recall path.
HybridDB
v0.10.0Sep 30, 2026

Bundled MiniLM is the default engine.

  • The default vector engine ships a uint8-quantized all-MiniLM-L6-v2 inside the package, so no network or fp32 download is needed.
  • hash_embedding no longer serves as a silent fallback — it is exposed for accuracy harnesses only.
  • TEXT and INTEGER primary keys now resolve consistently so semantic search returns the rows it should.
HybridDB
v0.8.0Sep 3, 2026

One identity across SQLite, DuckDB, and Chroma.

  • Chroma vectors are keyed by the logical primary key rather than the physical rowid, removing the TEXT-PK delete/reinsert duplicate-key failure class.
  • migrate_vector_identity() copies legacy embeddings bit-identically, cleans orphan vectors, and is idempotent across longtext collections.
  • FTS ids, vector ids, and row fetches now resolve through the same primary-key identity.
ConnectKit
v0.1.6Aug 24, 2026

OAuth compatibility and tool descriptions that agents can use.

  • Google OAuth redirect_uri handling strips service query parameters for compatibility.
  • Connector tools can describe parameters with JSON Schema; parameter_descriptions is deprecated.
CoreMem
v0.16.1Sep 2026

Timestamp filters compare chronologically.

  • ts_after/ts_before now compare chronologically across mixed naive/aware formats — a naive 23:00 message is no longer excluded by an earlier UTC filter (the documented known limitation since 0.13.2).
  • Boundary semantics unchanged; unparseable values fall back to the legacy lexical comparison.
AgentProfile
v0.2.1Aug 26, 2026

Portable profiles, ready to publish.

  • README, AGENTS.md, refreshed strategy facts, and PyPI metadata make the package and its PROFILE.md contract easier to discover and use.
CoreMem
v0.16.0Sep 2026

Filtered recall can no longer starve.

  • Equality filters (role, session, user, agent) push into the Chroma scan before the vector search — adopting HybridDB 0.7.0's search(where=).
  • Demonstrated: with 150 same-phrase noise rows, the old over-fetch path returned empty for a session-filtered recall; pushdown returns the target as the top hit.
CoreMem
v0.15.0 / v0.14.0Sep 2026

Versioned memory — opt-in, then default.

  • Git-like versioned tables (HybridDB 0.6.0): recall against memory as of any point in time.
  • Versioned=True became the default in 0.15.0; HybridDB 0.7.0 is the floor.
HybridDB
v0.7.0Sep 2026

Metadata pre-filtering, lazy analytics.

  • search(where={...}) pushes scalar-column filters into Chroma before the vector scan — multi-tenant scoping with equality and $gte-style operators, in all modes.
  • DuckDB mirrors are created on first OLAP query instead of at open — tables you never query with olap cost nothing to maintain.
  • Long-document chunking helper: deterministic paragraph/sentence splitter with optional overlap, plus the chunks-as-rows ingestion pattern.
HybridDB
v0.6.0Sep 2026

Versioned, git-like tables.

  • Versioned tables bring time-travel reads and restores; update-heavy rollbacks are up to 41× faster via batched restores (measured in CoreMem's 0.14.0 perf gate).
ModelPanel
Gateway M2Sep 2026

Streaming, Anthropic, notices, fusion sidecar.

  • All three dialects stream: chat-completions with fallback-before-first-token, Responses typed events, and Anthropic Messages — E2E-verified against Claude Code.
  • modelpanel/fusion sidecar: task-routed panel recipes with streaming judge synthesis (Python stdlib, OpenAI-compatible on the wire).
  • Opportunity notices: when the served model also lives somewhere healthier, one header + body field says so — never an auto-switch.
  • Adapters: Groq, NIM, Cerebras, OpenRouter, Mistral, Gemini, LLM7; store:false respected end to end.
ModelPanel
Gateway M1Aug 2026

The core gateway, shipped.

  • Canonical request model, Responses + chat-completions ingress, OpenAI-compatible egress, tier-aware router with rate budgets, registry hot-reload.
  • Key vault with tier flags (free-permanent, free-credits, discounted, paid); CLI: serve, add-key, models, status.
  • Evidence loop: benchmark runs feed panel selection — panel synthesize 95.0% vs 90.0% best single on matched GSM1K.
CoreMem
v0.13.2Aug 2026

Filter plumbing, fixed end to end.

  • Every recall filter is now honored by every strategy — preference queries, session_cap selection, and fusion no longer leak messages from other sessions.
  • ingest() returns the turn_id actually stored; MCP ingest surfaces invalid metadata JSON instead of dropping it silently.
  • Use-after-close now raises; recall() rejects empty queries instead of returning arbitrary rows.
  • 12 regression tests from a full E2E bug hunt — suite at 175 passing.
CoreMem
v0.13.1Aug 2026

Memory hygiene, lifecycle, wider MCP surface.

  • New API: list_sessions(), delete_messages(), stats(), close() with context manager — pooled handles no longer wedge the vector store.
  • MCP server widened from 5 to 8 tools — delete, fetch_session, stats; recall accepts role, ts_after, ts_before, session_cap.
  • CLI gains stats and delete subcommands; recall output now includes message ids.
CoreMem
v0.13.0Aug 2026

Defaults validated by answer evals.

  • Bundle budget dropped to 4k chars with evidence-first ordering — 0.678 answer accuracy vs 0.608 at 16k, with ~60% less context.
  • Preference union and temporal query decomposition folded into the default episodic path (+0.033 / +0.037 session recall on S).
  • ingest_many() — batch ingestion 4.3× faster (550 messages: 49.9s → 11.5s) with identical retrieval.
  • session_cap opt-in: +0.124 message recall@5 at the cost of session recall — documented tradeoff.
HybridDB
v0.5.6Aug 20, 2026

The reliability release.

  • FTS5 indexes backfill after every rebuild — keyword search no longer silently returns zero results after reindex, drop_column, rename_column, or import_sql.
  • Journal processing is chronological with last-op-wins — fixes a permanent journal wedge on delete-then-reinsert.
  • DuckDB analytics supports custom-PK tables; stale broken mirrors are detected and rebuilt automatically at init.
  • read_query is enforced read-only at the SQLite level — the WITH-clause write bypass is closed.
  • GraphAPI exposes search_graph_ppr and sync_graph_nodes; graph sync rules are validated at registration.
  • insert/update honor explicit primary keys; drop_column refuses to drop the primary key.
CoreMem
v0.12.0Aug 2026

MCP server, CLI, hooks.

  • coremem mcp — stdio server; hook handlers for Claude Code and Codex; integration configs for Claude Code, Codex, and OpenCode.
  • CLI: recall, ingest, compile, rebuild, sessions, hook, mcp.
  • Zero-LLM recall stays the default — retrieval remains deterministic and LLM-free.
HybridDB
v0.5.5Aug 16, 2026

Graph fixes.

  • Synced graph node IDs are namespaced by table — two tables with the same keys no longer overwrite each other.
  • Personalized PageRank runs on the undirected subgraph — graph-aware retrieval actually works.
  • Edge rules work with custom primary key names; ghost nodes are removed on re-sync.
HybridDB
v0.5.4Aug 15, 2026

search_graph fix.

  • search_graph and search_graph_ppr returned [] for default integer-PK tables — the rowid alias collision is fixed.
HybridDB
v0.5.3Jul 31, 2026

PPR graph retrieval.

  • search_graph_ppr(k_seeds) — separate control over seed count vs. final results.
  • sync_graph_nodes() — public API for syncing table rows into graph nodes.

Full changelogs live in the repos.

Every release is documented in detail, including the bugs that took the longest to find.