Skip to content

Changelog

Changelog

All notable changes to this project will be documented in this file.

0.27.1 - 2025-06-12

Bug fixes

  • 0892151 (duckdb) Avoid panic if duckdb gets created twice (#818)

  • 0815923 (tool-executor) Remove conflicting implementation of AsRef for Output

    Miscellaneous

    • 2b64410 (tool-executor) Implement AsRef for CommandOutput

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.27.0…0.27.1

      0.27.0 - 2025-06-09

      New features

      • c636eba (agents) [breaking] Context is now generic over its backend (#810)

      BREAKING CHANGE: The signature is now slightly different for the AgentContext. If you have implemented your own for i.e. a persisted solution, if it’s just that, the implementation is now a lot more straightforward with the MessageHistory trait.

      • 3c937a8 (agents) Add helpers for creating tool errors (#805)

      • 9e831d3 (agents) [breaking] Easy human-in-the-loop flows by decorating tools (#790)

      BREAKING CHANGE: The Tool trait now receives a ToolCall as argument instead of an Option<&str>. The latter is still accessible via tool_call.args().

      • 814c217 (duckdb) Hybrid Search (#807)

      • 254bd3a (integrations) Add kafka as loader and persist support (#808)

      • 19a2e94 (integrations) Add support for Google Gemini (#754)

      • 990fa5e (redis) Support MessageHistory for redis (#811)

      Bug fixes

      • ca119bd (agents) Ensure approved / refused tool calls are in new completions (#799)

      • df6a12d (agents) Ensure agents with no tools still have the stop tool

      • cd57d12 (openai) Opt-out streaming accumulated response and only get the delta (#809)

      • da2d604 (redb) Explicit lifetime in table definition

      Miscellaneous

      • 7ac92a4 (agents) Direct access to executor via context (#794)

      • a21883b (agents) [breaking] Improved naming for existing messages and message history in default context

      BREAKING CHANGE: Improved naming for existing messages and message history in default context

      • 40bfa9c (indexing) Implement ChunkerTransformer for closures

      • c8d7ab9 (integrations) Improved warning when a qdrant collection exists

      • d6769eb (tree-sitter) Implement Eq, Hash and AsRefStr for SupportedLanguages

      • 04ec29d Consistent logging for indexing pipeline (#792)

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.26.0…0.27.0

      0.26.0 - 2025-05-06

      New features

      • 11051d5 (agents) tools on Agent is now public and can be used in hooks

      • ebe68c1 (integrations) Streaming chat completions for anthropic (#773)

      • 7f5b345 (integrations) Streaming chat completions for OpenAI (#741)

      • e2278fb (integrations) Customize common default settings for OpenAI requests (#775)

      • c563cf2 (treesitter) Add elixir support (#776)

      • 13ae991 Add usage to chat completion response (#774)

      Bug fixes

      • 7836f9f (agents) Use an RwLock to properly close a running MCP server

      • 0831c98 (openai) Disable parallel tool calls by default

      Miscellaneous

      • 18dc99c (integrations) Use generics for all openai variants (#764)

      • 2a9d062 (openai) Consistent exports across providers

      • 4df6dbf Export macros from main crate and enable them by default (#778)

      • 8b30fde Rust like its 2024 (#763)

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.25.1…0.26.0

      0.25.1 - 2025-04-17

      Bug fixes

      • 7102091 (agents) AgentBuilder and AgentBuilderError should be public

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.25.0…0.25.1

      Changelog

      All notable changes to this project will be documented in this file.

      0.25.0 - 2025-04-16

      New features

      • 4959ddf (agents) Restore agents from an existing message history (#742)

      • 6efd15b (agents) Agents now take an Into Prompt when queried (#743)

      Bug fixes

      • 5db4de2 (agents) Properly support nullable types for MCP tools (#740)

      • dd2ca86 (agents) Do not log twice if mcp failed to stop

      • 5fea2e2 (indexing) Split pipeline concurrently (#749)

      Miscellaneous

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.24.0…0.25.0

      0.24.0 - 2025-04-11

      New features

      • 3117fc6 Introduce LanguageModelError for LLM traits and an optional backoff decorator (#630)

      Bug fixes

      • 0134dae (agents) Gracefully stop mcp service on drop (#734)

      Miscellaneous

      • e872c5b Core test utils available behind feature flag (#730)

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.23.0…0.24.0

      0.23.0 - 2025-04-08

      New features

      • fca4165 (agents) Return typed errors and yield error in on_stop (#725)

      • 29352e6 (agents) Add on_stop hook and stop now takes a StopReason (#724)

      • a85cd8e (macros) Support generics in Derive for tools (#720)

      • 52c44e9 Agent mcp client support (#658)

      Adds support for agents to use tools from MCP servers. All transports
        are supported via the `rmcp` crate.
      
        Additionally adds the possibility to add toolboxes to agents (of which
        MCP is one). Tool boxes declare their available tools at runtime, like
        tool box.
      

      Miscellaneous

      Template / prompt interface got confusing and bloated. This removes
        `Template` fully, and changes Prompt such that it can either ref to a
        one-off, or to a template named compiled in the swiftide repository.
      

      BREAKING CHANGE: This removes Template from Swiftide and simplifies the whole setup significantly. The internal Swiftide Tera repository can still be extended like with Templates. Same behaviour with less code and abstractions.

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.22.8…0.23.0

      0.22.8 - 2025-04-02

      Bug fixes

      • 6b4dfca Tool macros should work with latest darling version (#712)

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.22.7…0.22.8

      0.22.7 - 2025-03-30

      Bug fixes

      • b0001fb (duckdb) Upsert is now opt in as it requires duckdb >= 1.2 (#708)

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.22.6…0.22.7

      0.22.6 - 2025-03-27

      New features

      • a05b3c8 (macros) Support optional values and make them even nicer to use (#703)

      Bug fixes

      • 1866d5a (integrations) Loosen up duckdb requirements even more and make it more flexible for version requirements (#706)

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.22.5…0.22.6

      Changelog

      All notable changes to this project will be documented in this file.

      0.22.5 - 2025-03-23

      New features

      • eb4e044 Estimate tokens for OpenAI like apis with tiktoken-rs (#699)

      Miscellaneous

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.22.4…0.22.5

      0.22.4 - 2025-03-17

      Bug fixes

      • 4ec00bb (integrations) Add chrono/utc feature flag when using qdrant (#684)
      The Qdrant integration calls chrono::Utc::now(), which requires the now
        feature flag to be enabled in the chrono crate when using qdrant
      
      • 0b204d9 Ensure groq, fastembed, test-utils features compile individually (#689)

      Miscellaneous

      • bd4ef97 Include filenames in errors in file io (#694)
      Uses fs-err crate to automatically include filenames in the error
        messages
      
      • 9453e06 Use std::sync::Mutex instead of tokio mutex (#693)

      • b3456e2 Log qdrant setup messages at debug level (#696)

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.22.3…0.22.4

      0.22.3 - 2025-03-13

      Miscellaneous

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.22.2…0.22.3

      0.22.2 - 2025-03-11

      Miscellaneous

      • 0000000 Update Cargo.toml dependencies

      • e1c097d Disable default features on all dependencies (#675)

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.22.1…0.22.2

      Changelog

      All notable changes to this project will be documented in this file.

      0.22.1 - 2025-03-09

      New features

      Adds support for Duckdb. Persist, Retrieve (Simple and Custom), and
        NodeCache are implemented. Metadata and full upsert are not. Once 1.2
        has its issues fixed, it's easy to add.
      
      • 4cf417c (treesitter) C and C++ support for splitter only (#663)

      Bug fixes

      • 590eaeb (integrations) Make openai parallel_tool_calls an Option (#664)
      o3-mini needs to omit parallel_tool_calls - so we need to allow for a
        None option to not include that field
      

      Miscellaneous

      • 0000000 Update Cargo.toml dependencies

      • d864c7e Downgrade duckdb to 1.1.1 and fix ci (#671)

      • 9b685b3 Update and loosen deps (#670)

      • a64ca16 Tokio_stream features should include time

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.22.0…0.22.1

      0.22.0 - 2025-03-03

      New features

      • a754846 (agents) Implement Serialize and Deserialize for chat messages
      Persist, retry later, evaluate it completions in a script, you name it.
      
      Allows playing with the iterator outside of the stream.
      
        Relates to https://github.com/bosun-ai/kwaak/issues/337
      
      Use the new generics to _just-make-it-work_.
      
      Ensure tool calls and responses are always balanced, even when the tool retry limit is reached
        https://github.com/bosun-ai/kwaak/issues/313
      

      Miscellaneous

      • 0000000 Update Cargo.toml dependencies

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.21.1…0.22.0

      0.21.1 - 2025-02-28

      Bug fixes

      • f418c5e (ci) Run just a single real rerank test to please the flaky gods

      • e387e82 (lancedb) Update Lancedb to 0.17 and pin Arrow to a lower version

      Miscellaneous

      • 0000000 Update Cargo.toml dependencies

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.21.0…0.21.1

      0.21.0 - 2025-02-25

      New features

      • 12a9873 (agents) Improve flexibility for tool generation (#641)
      Previously ToolSpec and name in the `Tool` trait worked with static.
        With these changes, there is a lot more flexibility, allowing for i.e.
        run-time tool generation.
      

      Miscellaneous

      • 0000000 Update Cargo.toml dependencies

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.20.1…0.21.0

      0.20.1 - 2025-02-21

      Bug fixes

      • 0aa1248 (indexing) Handle invalid utf-8 in fileloader lossy (#632)

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.20.0…0.20.1

      Changelog

      All notable changes to this project will be documented in this file.

      0.20.0 - 2025-02-18

      New features

      • 5d85d14 (agents) Add support for numbers, arrays and booleans in tool args (#562)
      Add support for numbers, arrays and boolean types in the
        `#[swiftide_macros::tool]` attribute macro. For enum and object a custom
        implementation is now properly supported as well, but not via the macro.
        For now, tools using Derive also still need a custom implementation.
      
      • b09afed (query) Add support for reranking with Fastembed and multi-document retrieval (#508)

      Miscellaneous

      • 0000000 Update Cargo.toml dependencies

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.19.0…0.20.0

      0.19.0 - 2025-02-13

      New features

      • fa5112c (agents) By default retry failed tools with LLM up to 3 times (#609)
      Specifically meant for LLMs sending invalid JSON, these tool calls are
        now retried by feeding back the error into the LLM up to a limit
        (default 3).
      
      • 14f4778 (integrations) Parallel tool calling in OpenAI is now configurable (#611)
      Adds support reasoning models in agents and for chat completions.
      
      • 37a1a2c (integrations) Add system prompts as system instead of message in Anthropic requests

      Bug fixes

      • ab27c75 (agents) Add back anyhow catch all for failed tools

      • 2388f18 (agents) Use name/arg hash on tool retries (#612)

      • da55664 (integrations) Scraper should stop when finished (#614)

      Miscellaneous

      • 990a8ea (deps) Update tree-sitter (#616)

      • 0000000 Update Cargo.toml dependencies

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.18.2…0.19.0

      0.18.2 - 2025-02-11

      New features

      • 50ffa15 Anthropic support for prompts and agents (#602)

      Bug fixes

      • 8cf70e0 (integrations) Ensure anthropic tool call format is consistent with specs

      Miscellaneous

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.18.1…0.18.2

      Changelog

      All notable changes to this project will be documented in this file.

      0.18.1 - 2025-02-09

      New features

      • 78bf0e0 (agents) Add optional limit for agent iterations (#599)

      • 592e5a2 (integrations) Support Azure openai via generics (#596)

      • c8f2eed (tree-sitter) Add solidity support (#597)

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.18.0…0.18.1

      Changelog

      All notable changes to this project will be documented in this file.

      0.18.0 - 2025-02-01

      New features

      • de46656 (agents) Add on_start hook (#586)

      • c551f1b (integrations) OpenRouter support (#589)

      Adds OpenRouter support. OpenRouter allows you to use any LLM via their
        own api (with a minor upsell).
      

      Bug fixes

      • 3ea5839 (redb) Disable per-node tracing

      Miscellaneous

      • 0000000 Update Cargo.lock dependencies

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.17.5…0.18.0

      0.17.5 - 2025-01-27

      New features

      • 825a52e (agents) Tool description now also accepts paths (i.e. a const) (#580)

      Miscellaneous

      • 0000000 Update Cargo.lock dependencies

      • 0000000 Update Cargo.toml dependencies

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.17.4…0.17.5

      0.17.4 - 2025-01-24

      Bug fixes

      • 0d9e250 (tracing) Use or_current() to prevent orphaned tracing spans (#573)
      When a span is emitted that would be selected by the subscriber, but we
        instrument its closure with a span that would not be selected by the
        subscriber, the span would be emitted as an orphan (with a new
        `trace_id`) making them hard to find and cluttering dashboards.
      
        This situation is also documented here:
        https://docs.rs/tracing/latest/tracing/struct.Span.html#method.or_current
      

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.17.3…0.17.4

      0.17.3 - 2025-01-24

      New features

      • 8e22442 (integrations) Support Qdrant 1.13 (#571)

      Bug fixes

      • c5408a9 (agents) Io::Error should always be a NonZeroExit error for tool executors (#570)

      Miscellaneous

      • 0000000 Update Cargo.toml dependencies

      • 0000000 Update Cargo.lock dependencies

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.17.2…0.17.3

      0.17.2 - 2025-01-21

      Bug fixes

      • 47db5ab (agents) Redrive uses the correct pointer and works as intended

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.17.1…0.17.2

      0.17.1 - 2025-01-20

      New features

      • e4e4468 (agents) Implement AgentContext for smart dyn pointers

      • 70181d9 (agents) Add pub accessor for agent context (#558)

      • 274d9d4 (agents) Preprocess tool calls to fix common, fixable errors (#560)

      OpenAI has a tendency to sometimes send double keys. With this, Swiftide
        will now take the first key and ignore any duplicates after that. Sets the stage for any future preprocessing before it gets strictly parsed by serde.
      
      • 0f0f491 (integrations) Add Dashscope support (#543)
      ---------
      

      Bug fixes

      • b2b15ac (openai) Enable strict mode for tool calls (#561)
      Ensures openai sticks much better to the schema and avoids accidental
        mistakes.
      

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.17.0…0.17.1

      0.17.0 - 2025-01-16

      New features

      • 835c35e (agents) Redrive completions manually on failure (#551)
      Sometimes LLMs fail a completion without deterministic errors, or the
        user case where you just want to retry. `redrive` can now be called on a
        context, popping any new messages (if any), and making the messages
        available again to the agent.
      
      • f83f3f0 (agents) Implement ToolExecutor for common dyn pointers (#549)

      • 7f85735 (query) Add custom lancedb query generation for lancedb search (#518)

      • ce4e34b (tree-sitter) Add golang support (#552)

      Seems someone conveniently forgot to add Golang support for the
        splitter.
      

      Miscellaneous

      • 0000000 Update Cargo.lock dependencies

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.16.4…0.17.0

      0.16.4 - 2025-01-12

      New features

      • c919484 Ollama via async-openai with chatcompletion support (#545)
      Adds support for chatcompletions (agents) for ollama. SimplePrompt and embeddings now use async-openai underneath.
      
        Copy pasted as I expect some differences in the future.
      

      Miscellaneous

      • 0000000 Update Cargo.toml dependencies

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.16.3…0.16.4

      0.16.3 - 2025-01-10

      New features

      • b66bd79 (fastembed) Add support for jina v2 code (#541)
      Add support for jina v2 code in fastembed.
      

      Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.16.2…0.16.3

      0.16.2 - 2025-01-08

      Bug fixes

      • 2226755 Explicit cast on tools to Box to make analyzer happy (#536)

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.16.1…0.16.2

        0.16.1 - 2025-01-06

        Bug fixes

        • d198bb0 (prompts) Skip rendering prompts if no context and forward as is (#530)
        Fixes an issue if strings suddenly include jinja style values by
          mistake. Bonus performance boost.
        
        • 4e8d59f (redb) Log errors and return uncached instead of panicing (#531)

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.16.0…0.16.1

        0.16.0 - 2025-01-02

        New features

        • 52e341e (lancedb) Public method for opening table (#514)

        • 3254bd3 (query) Generic templates with document rendering (#520)

        Reworks `PromptTemplate` to a more generic `Template`, such that they
          can also be used elsewhere. This deprecates `PromptTemplate`.
        
          As an example, an optional `Template` in the `Simple` answer
          transformer, which can be used to customize the output of retrieved
          documents. This has excellent synergy with the metadata changes in #504.
        
        • 235780b (query) Documents as first class citizens (#504)
        For simple RAG, just adding the content of a retrieved document might be
          enough. However, in more complex use cases, you might want to add
          metadata as well, as is or for conditional formatting.
        
          For instance, when dealing with large amounts of chunked code, providing
          the path goes a long way. If generated metadata is good enough, could be
          useful as well.
        
          With this retrieved Documents are treated as first class citizens,
          including any metadata as well. Additionally, this also paves the way
          for multi retrieval (and multi modal).
        
        • 584695e (query) Add custom SQL query generation for pgvector search (#478)
        Adds support for custom retrieval queries with the sqlx query builder for PGVector. Puts down the fundamentals for custom query building for any retriever.
        
          ---------
        
        • b55bf0b (redb) Public database and table definition (#510)

        • 176378f Implement traits for all Arc dynamic dispatch (#513)

        If you use i.e. a `Persist` or a `NodeCache` outside swiftide as well, and you already have it Arc'ed, now it just works.
        
        • dc9881e Allow opt out of pipeline debug truncation

        Bug fixes

        • 2831101 (lancedb) Metadata should be nullable in lancedb (#515)

        • c35df55 (macros) Explicit box dyn cast fixing Rust Analyzer troubles (#523)

        Miscellaneous

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.15.0…0.16.0

        0.15.0 - 2024-12-23

        New features

        • a1b9a2d (query) Ensure concrete names for transformations are used when debugging (#496)

        • 7779c44 (query) Ensure query pipeline consistently debug logs in all other stages too

        • 55dde88 (query) Debug full retrieved documents when debug mode is enabled (#495)

        • 66031ba (query) Log query pipeline answer on debug (#497)

        Miscellaneous

        • d255772 (agents) Rename CommandError::FailedWithOutput to CommandError::NonZeroExit (#484)
        Better describes what is going on. I.e. `rg` exits with 1 if nothing is
          found, tests generally do the same if they fail.
        
        • 0000000 Update Cargo.toml dependencies

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.14.4…0.15.0

        0.14.4 - 2024-12-11

        New features

        • 7211559 (agents) EXPERIMENTAL Agents in Swiftide (#463)
        Agents are coming to Swiftide! We are still ironing out all the kinks,
          while we make it ready for a proper release. You can already experiment
          with agents, see the rustdocs for documentation, and an example in
          `/examples`, and feel free to contact us via github or discord. Better
          documentation, examples, and tutorials are coming soon.
        
          Run completions in a loop, define tools with two handy macros, customize
          the agent by hooking in on lifecycle events, and much more.
        
          Besides documentation, expect a big release for what we build this for
          soon! 🎉
        
        • 3751f49 (query) Add support for single embedding retrieval with PGVector (#406)

        Miscellaneous

        • 5ce4d21 Clippy and deps fixes for 1.83 (#467)

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.14.3…0.14.4

        0.14.3 - 2024-11-20

        New features

        • 1774b84 (integrations) Add PGVector support for indexing (#392)

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.14.2…0.14.3

        0.14.2 - 2024-11-08

        Bug fixes

        • 3924322 (querying) Query pipeline is now properly send and sync when possible (#425)

        Miscellaneous

        - **Tokio on rt-multi-thread only**
          - **Remove manual checks from lancedb integration test**
          - **Ensure all deps in workspace manifest**
          - **Remove unused deps**
          - **Remove examples and benchmarks from default members**
        

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.14.1…0.14.2

        0.14.1 - 2024-10-27

        Bug fixes

        • 5bbcd55 Revert 0.14 release as mistralrs is unpublished (#417)
        Revert the 0.14 release as `mistralrs` is unpublished and unfortunately
          cannot be released.
        

        Miscellaneous

        - **Revert "fix: Revert 0.14 release as mistralrs is unpublished
          ([#417](https://github.com/bosun-ai/swiftide/pull/417))"**
          - **Fix changelog**
        

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.14.0…0.14.1

        0.14.0 - 2024-10-27

        Bug fixes

        • 551a9cb (indexing) [breaking] Node ID no longer memoized (#414)
        As @shamb0 pointed out in [#392](https://github.com/bosun-ai/swiftide/pull/392), there is a potential issue where Node
          ids are get cached before chunking or other transformations, breaking
          upserts and potentially resulting in data loss.
        

        BREAKING CHANGE: This PR reworks Nodes with a builder API and a private id. Hence, manually creating nodes no longer works. In the future, all the fields are likely to follow the same pattern, so that we can decouple the inner fields from the Node’s implementation.

        • c091ffa (indexing) Use atomics for key generation in memory storage (#415)

        Miscellaneous

        • 0000000 Update Cargo.toml dependencies

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.13.4…0.14.0

        0.13.4 - 2024-10-21

        Bug fixes

        • 47455fb (indexing) Visibility of ChunkMarkdown builder should be public

        • 2b3b401 (indexing) Improve splitters consistency and provide defaults (#403)

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.13.3…0.13.4

        Changelog

        All notable changes to this project will be documented in this file.

        0.13.3 - 2024-10-11

        Bug fixes

        • 2647f16 (deps) Update rust crate text-splitter to 0.17 (#366)

        • d74d85b (indexing) Add missing Embed::batch_size implementation (#378)

        • 95f78d3 (tree-sitter) Compile regex only once (#371)

        Regex compilation is not cheap, use a static with a oncelock instead.
        

        Miscellaneous

        • 0000000 Update Cargo.toml dependencies

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.13.2…0.13.3

        0.13.2 - 2024-10-05

        New features

        • 4b13aa7 (core) Add support for cloning all trait objects (#355)
        For instance, if you have a `Box<dyn SimplePrompt>`, you can now clone
          into an owned copy and more effectively use the available generics. This
          also works for borrowed trait objects.
        
        • ed3da52 (indexing) Support Redb as embedable nodecache (#346)
        Adds support for Redb as an embeddable node cache, allowing full local
          app development without needing external services.
        

        Bug fixes

        • 06f8336 (indexing) Ensure name() returns concrete name on trait objects (#351)

        Miscellaneous

        • 8237c28 (core) Mock traits for testing should not have their docs hidden

        • 0000000 Update Cargo.toml dependencies

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.13.1…0.13.2

        0.13.1 - 2024-10-02

        Bug fixes

        • e6d9ec2 (lancedb) Should not error if table exists (#349)

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.13.0…0.13.1

        0.13.0 - 2024-09-26

        New features

        • 7d8a57f (indexing) [breaking] Removed duplication of batch_size (#336)

        BREAKING CHANGE: The batch size of batch transformers when indexing is now configured on the batch transformer. If no batch size or default is configured, a configurable default is used from the pipeline. The default batch size is 256.

        Bug fixes

        • 23b96e0 (tree-sitter) [breaking] SupportedLanguages are now non-exhaustive (#331)

        BREAKING CHANGE: SupportedLanguages are now non-exhaustive. This means that matching on SupportedLanguages will now require a catch-all arm. This change was made to allow for future languages to be added without breaking changes.

        Miscellaneous

        • 923a8f0 (fastembed,qdrant) Better batching defaults (#334)
        Qdrant and FastEmbed now have a default batch size, removing the need to set it manually. The default batch size is 50 and 256 respectively.
        

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.12.3…0.13.0

        0.12.3 - 2024-09-23

        New features

        • da5df22 (tree-sitter) Implement Serialize and Deserialize for SupportedLanguages (#314)

        Bug fixes

        • a756148 (tree-sitter) Fix javascript and improve tests (#313)
        As learned from [#309](https://github.com/bosun-ai/swiftide/pull/309), test coverage for the refs defs transformer was
          not great. There _are_ more tests in code_tree. Turns out, with the
          latest treesitter update, javascript broke as it was the only language
          not covered at all.
        

        Miscellaneous

        • e8e9d80 (docs) Add documentation to query module (#276)

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.12.2…0.12.3

        v0.12.2 - 2024-09-20

        Docs

        • d84814e Fix broken documentation links and other cargo doc warnings (#304) by @tinco
        Running `cargo doc --all-features` resulted in a lot of warnings.
        

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/v0.12.1…v0.12.2

        v0.12.1 - 2024-09-16

        New features

        • ec227d2 (indexing,query) Add concise info log with transformation name by @timonv

        • 01cf579 (query) Add query_mut for reusable query pipelines by @timonv

        • 081a248 (query) Improve query performance similar to indexing in 0.12 by @timonv

        • 8029926 (query,indexing) Add duration in log output on pipeline completion by @timonv

        Bug fixes

        • 39b6ecb (core) Truncate long strings safely when printing debug logs by @timonv

        • 8b8ceb9 (deps) Update redis by @timonv

        • 16e9c74 (openai) Reduce debug verbosity by @timonv

        • 6914d60 (qdrant) Reduce debug verbosity when storing nodes by @timonv

        • 3d13889 (query) Reduce and improve debugging verbosity by @timonv

        • 133cf1d (query) Remove verbose debug and skip self in instrumentation by @timonv

        • ce17981 Clippy by @timonv

        • a871c61 Fmt by @timonv

        Miscellaneous

        • d62b047 (ci) Update testcontainer images and fix tests by @timonv

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/v0.12.0…v0.12.1

        v0.12.0 - 2024-09-13

        New features

        • e902cb7 (query) Add support for filters in SimilaritySingleEmbedding (#298) by @timonv
        Adds support for filters for Qdrant and Lancedb in
          SimilaritySingleEmbedding. Also fixes several small bugs and brings
          improved tests.
        
        • f158960 Major performance improvements (#291) by @timonv
        Futures that do not yield were not run in parallel properly. With this
          futures are spawned on a tokio worker thread by default.
        
          When embedding (fastembed) and storing a 85k row dataset, there's a
          ~1.35x performance improvement:
          <img width="621" alt="image"
          src="https://github.com/user-attachments/assets/ba2d4d96-8d4a-44f1-b02d-6ac2af0cedb7">
        
          ~~Need to do one more test with IO bound futures as well. Pretty huge,
          not that it was slow.~~
        
          With IO bound openai it's 1.5x.
        

        Bug fixes

        • f8314cc (indexing) Limit logged chunk to max 100 chars (#292) by @timonv

        • f95f806 (indexing) Debugging nodes should respect utf8 char boundaries by @timonv

        • 8595553 Implement into_stream_boxed for all loaders by @timonv

        • 9464ca1 Bad embed error propagation (#293) by @timonv

        - **fix(indexing): Limit logged chunk to max 100 chars**
          - **fix: Embed transformers must correctly propagate errors**
        

        Miscellaneous

        • 45d8a57 (ci) Use llm-cov preview via nightly and improve test coverage (#289) by @timonv
        Fix test coverage in CI. Simplified the trait bounds on the query
          pipeline for now to make it all work and fit together, and added more
          tests to assert boxed versions of trait objects work in tests.
        
        • 408f30a (deps) Update testcontainers (#295) by @timonv

        • 37c4bd9 (deps) Update treesitter (#296) by @timonv

        • 8d9e954 Cargo update by @timonv

        Full Changelog: https://github.com/bosun-ai/swiftide/compare/v0.11.1…v0.12.0

        v0.11.1 - 2024-09-10

        New features

        • 3c9491b Implemtent traits T for Box