ragnar 0.3.0
CRAN release: 2026-01-23
Breaking changes
In
ragnar_find_links(), the defaultchildren_only = FALSEnow returns all links on a page. If you relied on the previous default, setchildren_only = TRUE(#115).ragnar_register_tool_retrieve()now usessearch_{store@name}as the default tool name prefix (instead ofrag_retrieve_from_{store@name}), so you may need to update any code that refers to the tool name explicitly (#123, #127).
New features
New
embed_azure_openai()supports embeddings from Azure AI Foundry (#144).New
embed_snowflake()supports embeddings via the Snowflake Cortex Embedding API (#148).New
mcp_serve_store()lets local MCP clients (e.g. Codex CLI or Claude Code) search aRagnarStore(#123).ragnar_retrieve()(and the corresponding ellmer retrieval tool) now accepts a vector of queries (#150).New
ragnar_store_atlas()visualizes store embeddings (#124).New
ragnar_store_ingest()prepares documents in parallel with mirai and inserts them into a store (#133).
Minor improvements and fixes
embed_ollama()now defaults to theembeddinggemmamodel (#121).embed_openai()error messages are now surfaced to the user (#112).Embedding helpers now share a generalized request retry policy, configurable via
options(ragnar.embed.req_retry = ...)(#138).ragnar now requires mirai >= 2.5.1 (#139).
print()on aRagnarStorenow shows the store location (#116).ragnar_retrieve_bm25()now orders results by descending score (#122).ragnar_retrieve()no longer returns duplicate rows when called with multiple queries (#153).The ellmer retrieval tool now omits score columns from its output (#130).
ragnar_store_inspect()now includes keyboard shortcuts, a draggable divider, improved preview linkification, better metadata display, and other UI tweaks (#120, #117, #118).ragnar_find_links()works better with local HTML files (#115).ragnar_store_insert()andragnar_store_update()(v2 stores) now handle stores that are missingstore@schemametadata (#146).read_as_markdown()once again fetches YouTube transcripts and now supportsyoutube_transcript_formatter, so you can add timestamps or links to the transcript output (#149).read_as_markdown()gains anoriginargument to customize the@originrecorded on returned documents (#128).read_as_markdown()now correctly reads plain-text files with non-ASCII characters (#151).Vignette heading levels were fixed (#129).
Added an example using
sentence-transformersembeddings (#131).
ragnar 0.2.1
CRAN release: 2025-08-19
ragnar_register_tool_retrieve()now registers a tool that will not return previously returned chunks, enabling the LLM to perform deeper searches of a ragnar store with repeated tool calls (#106).Updates for ellmer v0.3.0 and duckdb v1.3.1 (#99)
Improved docs and error message in
ragnar_store_insert()(@mattwarkentin, #88)ragnar_find_links()can now parsesitemap.xmlfiles. It also gains avalidateargument, allowing for sending aHEADrequest to each link and filtering out broken links (#83).ragnar_inspector()now renders all urls as clickable links in the chunk markdown viewer, even if url is not a formal markdown link (#82).Before running examples and tests we now check if ragnar can load DuckDB extensions. This fixes issues in environments where DuckDB pre-built binaries for extensions are not compatible with the installed DuckDB version (#94).
Added
embed_lm_studioto use LMStudio as an embedding provider (#100).Fixed a bug causing
ragnar_retrieve()to fail when documents were inserted without an origin (#102).We now suppress a “Couldn’t find ffmpeg or avconv” warning when importing markitdown when using
read_as_markdown(). The warning would only be relevant for users doing audio transcription (#103).Added
embed_google_geminito use Google Gemini API as an embedding provider (#105).
ragnar 0.2.0
CRAN release: 2025-07-12
ragnar_store_create()gains a new argument:version, with default2. Store version 2 adds support for chunk deoverlapping on retrieval and automatic chunk augmentation with headings. To support these features, the internal schema and ingestion requirements are different. Seemarkdown_chunk()and new S7 classesMarkdownDocumentandMarkdownDocumentChunks. Backwards compatibility is maintained with version = 1. (#58, #39, #36)ragnar_store_create()now supports Date and POSIXct classes supplied toextra_cols.ragnar_store_create()now supports remote MotherDuck Databases specified withmd:<dbname>as thelocationargument. (#50)ragnar_retrieve()and friends gain afilterargument, adding support for efficiently filtering retrieval results.ragnar_retrieve_bm25()gains argumentsb,k, andconjunctive(#56).ragnar_retrieve_vss()gains argumentquery_vector, supporting workflows that preprocess the query string before embedding.ragnar_retrieve_vss()set of validmethodchoices have been updated to a narrower set to ensure that anHNSWindex scan is used.Passing a
tbl(store)toragnar_retrieve()is deprecated.New chunker
markdown_chunk()with support for chunk heading context generation, semantic boundary selection, overlapping chunks, document segmentation, and more. (#56)New function
embed_google_vertex()(@dfalbel, #49)New function
embed_databricks()(@atheriel, #45)New function
ragnar_chunks_view()for quickly previewing chunks (#42)ragnar_register_tool_retrieve()gains optionalnameandtitlearguments to allow for more descriptive tool registration. These values can also be set inragnar_store_create()(#43).ragnar_read()andread_as_markdown()now accept paths that begin with~(@topepo, #46, #48).-
Changes to
read_as_markdown()HTML conversion (#40, #51):- New arguments
html_extract_selectorsandhtml_zap_selectorsprovide a flexible way to exclude some html page elements from being included in the converted markdown. - code blocks now include the language, if available.
- Fixed handling of nested code fences in markdown output.
- New arguments
