Highlights
- Plugins in Agentic chats. In Settings › Plugins you can connect three kinds of plugin: SurfSense's own (Google Search, Web Crawl, YouTube, TikTok, Google Maps, Amazon, Walmart and Indeed, which need a SurfSense license), third-party ones from a signed list once you allow them, or any remote MCP server by its URL. You choose which tools the agent may use and which ones ask first. (#2234, #2245, #2249)
- Interrupted imports get their chats back. Importing a SurfSense cloud export again now adds the chats an interrupted import missed. (#2068)
- Agentic chats stay in their own folders, even when your data folder sits inside a git repository. (#2239)
- Studio builds PowerPoint and Excel files in the script runner, as it already did for Word and PDF, so Stop now ends a running script. (#2184)
- The Word viewer refits when you resize its panel. (#2233)
- More messages in your language: Studio jobs that can't start, run again or stop, and the reason an embedding model can't be used. (#2241, #2209, #2217)
Known issues
- The first start needs free disk space. 2.2.1 upgrades your library database on its first start and saves a copy of it first. It needs free space about the size of
~/.surfsense/surfsense.db. If there isn't enough, SurfSense closes without a message. Free some space and start it again. - Going back to 2.2.0 needs a manual restore. 2.2.0 can't open a database that 2.2.1 has upgraded. Before you reinstall 2.2.0, quit SurfSense and replace
~/.surfsense/surfsense.dbwith the copy saved at the upgrade,~/.surfsense/backups/0027-0029.db. Anything you added after updating won't be in it, and that includes connected plugins. - Plugins work only in Agentic chats. Pick Agentic when you start the chat. Chats on a model that runs on this computer start in Basic (Q&A), and Basic chats don't use plugins.
- SurfSense's own plugins need a SurfSense license. Google Search, Web Crawl, YouTube, TikTok, Google Maps, Amazon, Walmart and Indeed run on plugins.surfsense.com. Without a license they still connect but show "Needs a license". A chat that can't use one of them says it needs sign-in, not a license.
- Reddit and Instagram aren't offered. Both sites now refuse anonymous reads, so their plugins are left out for now.
- Some plugin results are unreliable. TikTok's user search works only some of the time. When Amazon, Walmart or YouTube blocks a request, the plugin doesn't report a failure, so the agent may say nothing was found. A deep Web Crawl, or a Google Search over many queries or pages, can time out.
- Third-party and custom plugins are early. They stay off until you turn on Allow third-party plugins in Settings › Plugins. So far the list holds one Community plugin, DeepWiki. Signing in to a plugin with an account (OAuth) hasn't been tried with a real provider yet, and when a sign-in fails the app doesn't say why. You can't add a plugin that runs as a local command, such as
npxoruvx. - Importing again won't add chats to a workspace you imported before 2.2.1. 2.2.1 brings back the chats an interrupted import missed (#1958). In a workspace that already holds chats from an earlier version's import, though, importing again only matches the chats that are already there. To get the rest, keep your export ZIP, delete that workspace and import the ZIP again.
What's Changed
- docs(plugins): one plugin host, two plugin lists, bundle code moved aside by @AnishSarkar22 in #2216
- refactor(sidecars): move boot and the watchers out of index.ts by @llwand1 in #2215
- feat(local): give an embedder repo's refusal a code the interface can translate by @ybai08 in #2209
- fix(local): run Studio's PowerPoint and Excel scripts in the script runner by @Cedric921 in #2184
- docs: cover the work since 2.1.0, and commit the sweep's input by @MODSetter in #2231
- feat(plugins): remote MCP plugins, SurfSense's scraper plugins and the third-party registry by @AnishSarkar22 in #2234
- feat(local): give an embedder's failed search check a code the interface can translate by @ybai08 in #2217
- ci(release): run the frozen document-script test against the worker each OS ships by @MannXo in #2238
- fix(studio): refit the Word viewer when its panel is resized by @MannXo in #2233
- feat(plugins): browse, connect and manage plugins, with Verified or Community publishers by @AnishSarkar22 in #2245
- test(local): hold host memory still where repricing must leave the preset alone by @ybai08 in #2242
- fix(import): resume missing chat threads by @fukalous in #2068
- fix(agent): keep a git repository above the data folder from becoming opencode's project by @MannXo in #2239
- fix(local): ship llama.cpp's own licence on Windows, and OpenMP's under its name by @MODSetter in #2246
- feat(local): give Studio's job refusals codes the interface can translate by @ybai08 in #2241
- docs(local): propose keyword search for Japanese and Chinese by @vintcessun in #2147
- fix(plugins): get the plugin host ready for plugins.surfsense.com by @MODSetter in #2249
- fix(registry): trust a new signing key, one the maintainer holds by @MODSetter in #2250
- fix(plugins): keep a log record's arguments when redacting it by @MODSetter in #2251
- fix(plugins): read the first-party list as UTF-8 on every system by @MODSetter in #2253
- [Local|Release] Release desktop 2.2.1 by @MODSetter in #2252
New Contributors
Full Changelog: v2.2.0...v2.2.1