Changelog
Changelog
All notable changes to this project will be documented in this file.
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
- 98176c6 Clippy
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
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
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
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
- 1bbbb0e Clippy
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
toCommandError::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
Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.14.2…0.14.3
0.14.2 - 2024-11-08
Bug fixes
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
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
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.
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)
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
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.
Adds support for Redb as an embeddable node cache, allowing full local app development without needing external services.
Bug fixes
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
Full Changelog: https://github.com/bosun-ai/swiftide/compare/0.13.0…0.13.1
0.13.0 - 2024-09-26
New features
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
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
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
Bug fixes
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
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