Skip to content

3.2 RC2 Release Notes

Frédéric Clavert edited this page Jul 24, 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 CLI, and Generic MCP (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 the shared .cliodeck/brain.db (obsidian_*-prefixed tables), alongside PDF and Tropy vectors — not a separate obsidian-vectors.db file, even at this tag.
  • 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, research history, AND Obsidian vault vectors
  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 — and further along than an earlier version of this page said. It's not just vectors.db (PDFs) and primary-sources.db (Tropy) folded into brain.db: obsidian-vectors.db was folded in too, 5 days before this tag was cut (c044d42, verified an ancestor of v1.0.0-rc.2 via git merge-base --is-ancestor; obsidianStorePath() already returned the brain.db path at this exact tag). The migrator already renames the legacy vault tables in place (notesobsidian_notes, chunksobsidian_chunks, …) to avoid colliding with the PDF/Tropy tables sharing the same file. None of these four legacy files coexist as separate files at RC2.


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. document_id was already honored at this tag (contrary to an earlier version of this page, which claimed it was ignored) — the real limitation was that pdfExportService.exportToPDF() was called with projectType: 'article' hardcoded, so a recipe run inside a book project exported a single file rather than the assembled manuscript. Fixed before RC3 (src/main/services/recipe-step-handlers.ts now reads the real project type from project.json and calls assembleManuscript() for books).
  • 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