Skip to content

3.2 RC2 Release Notes

Frédéric Clavert edited this page Jul 23, 2026 · 6 revisions

v1.0.0-rc.2 — Release Notes

Release date: May 2026 Tag: v1.0.0-rc.2

RC2 is the first release after the ClioBrain fusion — the standalone ClioBrain project (now archived) has been absorbed into ClioDeck as the new Brainstorm mode. RC2 also ships an MCP server, three archive connectors (Europeana / Gallica / HAL), and Obsidian vault as a RAG source.

The strategy and implementation plan that drove the fusion live in docs/archive/fusion-cliobrain-strategy.md and docs/archive/fusion-cliobrain-implementation-plan.md — commits on this branch reference the step numbers defined there.


What's new

1. Brainstorm mode (ClioBrain fusion)

ClioDeck now has a dedicated chat mode for the exploratory phase of research, sitting between the corpus panels and the Write WYSIWYG editor. Highlights:

  • Streamed chat through the typed ProviderRegistry (5 providers: Ollama, OpenAI-compatible, Anthropic, Mistral, Gemini).
  • Agent loop with MCP tool-use (any MCP client you've configured contributes its tools).
  • .cliohints injection — a workspace-level system-prompt fragment from .cliodeck/hints.md.
  • Context compaction sized to the active model (keeps system + recent turns verbatim, summarises the middle).
  • First-class AbortController cancellation per session.

The legacy RAG chat is still wired for safety; RC3 will deepen Brainstorm and retire it.

See: Brainstorm Mode Guide.

2. MCP integration (both directions)

ClioDeck speaks the Model Context Protocol as both a client and a server.

  • MCP clients (Settings → MCP Clients) — register stdio or SSE MCP servers. Their tools become callable by the LLM inside a Brainstorm turn. Each client exposes a typed state machine (unconfigured | spawning | handshaking | ready | degraded | failed | stopped), not a connected boolean; partial success is first-class.
  • MCP server (Settings → MCP Server) — toggles a bin/cliodeck-mcp binary that exposes the workspace's corpus to Claude Desktop, Claude Code, or any other MCP client. Off by default. Every call is appended to .cliodeck/mcp-access.jsonl as a typed event. The Settings panel generates ready-to-paste snippets for Claude Desktop, Claude Code and generic stdio clients.

The server exposes 9 tools: search_documents, search_obsidian, search_tropy, search_zotero, graph_neighbors, entity_context, search_gallica, search_hal, search_europeana.

See: MCP Integration Guide.

3. Archive connectors — Gallica, HAL, Europeana

Three public-archive connectors are wired as MCP tools on the built-in server:

  • Gallica (BnF) — SRU public endpoint, no key.
  • HAL (CCSD) — Solr public endpoint, no key.
  • Europeana — REST, requires a free wskey. Configure in Settings → Archives.

API keys are stored via Electron's safeStorage (OS keychain on macOS, libsecret on Linux, DPAPI on Windows) — never in config.json. The Europeana key is read at call time from EUROPEANA_API_KEY, so it can be rotated without a restart.

See: Archive Connectors Guide.

4. Obsidian vault as RAG source

ClioDeck can point at an Obsidian vault folder, index the notes inside, and treat them as a first-class source alongside PDFs (secondary) and Tropy archives (primary):

  • Wikilinks, tags and frontmatter parsed.
  • Indexed into .cliodeck/obsidian-vectors.db.
  • Reachable from Brainstorm as the notes source-type and from external MCP clients via search_obsidian.
  • Partial-success reporting (indexed / skipped / failed).

See: Obsidian Vault Guide.

5. Settings panel UX

  • All Settings sections are now collapsible (CollapsibleSection wrapper) so the Expert mode stops being a wall of forms.
  • Settings has Simple / Expert tabs — beginner-facing essentials by default, full surface on demand.
  • Archives section fully internationalised (FR / EN).

Workspace layout changes

The workspace is now flat — the previous nested .cliodeck/v2/* layout has been collapsed:

<project>/.cliodeck/
  brain.db                  # consolidated SQLite: PDFs, Tropy primary sources, and research history
  obsidian-vectors.db       # vault embeddings (kept separate — different lifecycle)
  config.json               # schema_version: 2
  hints.md                  # .cliohints workspace context
  recipes/, recipes-runs/
  mcp-access.jsonl          # MCP server audit log
  security-events.jsonl     # source-inspector events

ClioDeck auto-migrates the older nested layout (.cliodeck/v2/*), pre-fusion v1 layouts, and bare .cliobrain/ workspaces on project load — no manual action required (migrateWorkspaceToFlat in backend/core/workspace/migrator.ts). By this release, the db-fusion was already complete: the legacy vectors.db (PDFs) and primary-sources.db (Tropy) stores are folded into brain.db for any project migrated or created from this point on — they don't coexist as separate files at RC2, contrary to what this page said in an earlier draft.


Bug fixes worth calling out

  • RAG / BM25. Short acronyms (e.g. KAQG, CIA) are now boosted on the exact-match path. Hybrid search takes max(dense, sparse-synthetic) so BM25 hits no longer get drowned by semantic neighbours. BM25-only hits are surfaced through the grounding prompt instead of being silently dropped.
  • Chat. num_ctx is plumbed end-to-end; gemma3 / gemma4 families are recognised on the Ollama provider. Chat-engine logs the resolved model name (not the provider's display name).
  • PDF indexing. Worker drains stdout before exit so large payloads don't get truncated. PDF re-index for Zotero-only citations is repaired. Embedding input is capped to avoid Ollama 500s on outsized chunks. Packaged app probes Homebrew/nvm Node paths so it can find a Node runtime to index PDFs.
  • Journal. Resolved model name is written into the AI-operation log. Sessions reload + error state clears when a project opens.

Known issues / limitations

  • Pre-existing test failures. 21 tests fail under Vitest because of better-sqlite3 native bindings; Ollama live-backend tests time out when no Ollama is running. None of these affect the runtime.
  • No React component tests yet. jsdom + @testing-library/react setup is pending.
  • Brainstorm UX is inherited. The chat panel is still the legacy shape. RC3 will rework it (parallel scratch threads, branching, tool-call surfacing).
  • Per-tool toggle UI is minimal. Brainstorm can filter the MCP tool catalog (enabledTools) but the renderer surface for this is bare-bones.
  • Recipes export step. Currently ignores document_id input — hardcoded to <project>/document.md.
  • Ollama tool capability is whitelisted. Only ministral-3:8b/14b, qwen3:8b/14b/32b, mistral-nemo advertise tool-use. Llama 3.x / 4.x families get tools: false. See OLLAMA_TOOL_CAPABLE_PATTERNS in backend/core/llm/providers/ollama.ts and docs/archive/research-ollama-tools-1.8.md.

Upgrade notes

  • From RC1. Open your project — flat-layout migration runs automatically. No data loss; the previous v2/ directory is replaced in place.
  • From ClioBrain. Migration is automatic on project load — migrateWorkspaceToFlat detects a .cliobrain/ workspace (MigrationKind = 'cliobrain') and copies canonical artifacts into the flat .cliodeck/ layout. Vault path, notes index and chat history carry over.

The fusion branch (feat/fusion-cliobrain) was ~190 commits ahead of main when it merged at this tag; it has since been merged and deleted, its history preserved on main.


What's next (RC3)

Deeper Brainstorm work: parallel scratch threads, branching turns, better tool-call surfacing, the per-tool toggle UI, and the long-postponed retirement of the legacy chat service. Plus continued polish on the RAG retrieval pipeline.


Documentation

For older release notes and implementation plans, see the archive folder.

Clone this wiki locally