github MODSetter/SurfSense v2.2.0

4 hours ago

Known issues

  • The first start needs free disk space. 2.2.0 upgrades your library database on its first start and saves a copy of it first, so 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.1.0 needs a manual restore. 2.1.0 can't open a database that 2.2.0 has upgraded. Before reinstalling 2.1.0, quit SurfSense and replace ~/.surfsense/surfsense.db with the copy saved at the upgrade, ~/.surfsense/backups/0023-0027.db.
  • An interrupted import from the hosted web app can miss chats. If an import stops part-way, importing the same export again doesn't bring in the chats it missed (#1958). Keep your export ZIP, delete the imported workspace, and import the ZIP again.

What's Changed

  • fix(export): strip every citation marker form from exported chats by @MohammadHijjawi97 in #2094
  • test(license): cover the portal routes, their rate limits and Keygen by @Cedric921 in #2123
  • fix(local): keep a model installed when a server still holds its file open by @ybai08 in #2124
  • fix(local): announce a finished reply and name the conversation by @Cedric921 in #2131
  • fix(local): tell a dead pin and a checksum mismatch apart in installs by @DidusOleh in #2137
  • feat(local): give a Studio format's unavailable reason a code to translate by @ybai08 in #2146
  • fix(desktop): retry the staging rename while Windows holds the folder by @DevSchretl in #2161
  • docs(local): say the bundled embedder is FP16, with its measured size and speed by @ybai08 in #2158
  • fix(local): refuse a chat turn whose images outgrow the model's window by @Cedric921 in #2154
  • fix(local): revoke the ChatGPT refresh token on sign-out and delete by @Cedric921 in #2156
  • test(local): cover how host memory is read from the OS by @Cedric921 in #2157
  • feat(local): give install events a code the interface can translate by @ybai08 in #2168
  • File agent: folders, PowerPoint and Excel, templates, per-chat folders, inline previews and model capability levels by @MODSetter in #2177
  • feat(chat): keep chat and agent replies running in the background by @AnishSarkar22 in #2179
  • feat(sources): tidy the sources panel and rebuild its drag and drop by @AnishSarkar22 in #2180
  • [Local|Cache] Let the model reuse the start of every prompt by @CREDO23 in #2178
  • feat(studio): downloadable Markdown documents and a floating Refine box by @AnishSarkar22 in #2190
  • refactor(local): drop the disk-space error wrapper nothing sends a body for by @ybai08 in #2169
  • test(local): keep the PDF letters test passing on a computer with no CJK font by @ybai08 in #2186
  • fix(local): say the database copy failed when removing its partial file fails too by @ybai08 in #2187
  • test(local): upload each file under its own name when its path uses backslashes by @ybai08 in #2188
  • fix(agent): commit before a sync waits for its thread's lock by @ybai08 in #2189
  • fix(local): offer a new chat when an agent thread's model cannot run it by @Cedric921 in #2175
  • feat(local): send a curated chat model's publisher top_p, top_k and min_p by @Cedric921 in #2182
  • refactor(local): hold the Studio list in TanStack Query so open artifacts refresh too by @Cedric921 in #2176
  • feat(local): call each remote model on its own route, and run the agent on a ChatGPT plan by @AnishSarkar22 in #2192
  • feat(local): add Qwen3.8 27B to the curated chat models by @AnishSarkar22 in #2193
  • File agent: edit users' files as tracked changes, Office support, PDF tools and data analysis by @MODSetter in #2194
  • Resizable sidebars, comments in the Word viewer, and small models reading the ticked file by @MODSetter in #2195
  • Smooth streaming: render only the live reply, and stop the code-highlight leak by @MODSetter in #2197
  • ci(local): gate build-sdcpp on the staged sd-server generating an image by @ybai08 in #2159
  • perf(models): debounce model search and cache Hugging Face results by @Ehaan-Dadarkar in #2198
  • feat(local): give a fit badge a code the interface can translate by @ybai08 in #2191
  • fix(local): retire the pre-host egress grants in revision 0027 by @8rulerstar in #2061
  • test(local): do not count what macOS gives every process as a leak into a script by @ybai08 in #2199
  • feat(proxy): add NodeMaven provider by @alkaz-nodemaven in #2196
  • Basic (Q&A) and Agentic modes, a 270-model tested list, and the agent in installers by @MODSetter in #2207
  • test(local): wait for the error tooltip to close, not for its text to change by @ybai08 in #2201
  • docs(local): name the 0027 migration test in data-model.md by @8rulerstar in #2202
  • fix(local): offer no thinking switch in an agent thread by @Cedric921 in #2173
  • fix(local): revoke the grant a ChatGPT sign-in replaces by @Cedric921 in #2174
  • feat(local): give a model that cannot run a code the interface can translate by @ybai08 in #2200
  • perf(models): follow-ups to search debounce and cache by @Ehaan-Dadarkar in #2204
  • feat(desktop): route main process warnings into the session log by @Ehaan-Dadarkar in #2205
  • test(local): find the office pack's staging folder on macOS too by @ybai08 in #2208
  • docs(plugins): redesign plugins as MCP servers behind one tool gateway by @AnishSarkar22 in #2206
  • feat(chat): simplify the composer's mode menus and hide model capability tags in production by @AnishSarkar22 in #2211
  • docs(readme): a shorter README led by the format table, translated into ten languages by @MODSetter in #2212
  • [Local|Release] Release desktop 2.2.0 by @MODSetter in #2214

New Contributors

Full Changelog: v2.1.0...v2.2.0

Don't miss a new SurfSense release

NewReleases is sending notifications on new releases.