Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 46 of 117 Next →
February 22, 2026
patch CoreDesktop Shell

Improve Duncan AI context for Finance and local models

Desktop 1.60.1 → 1.60.2 | dc3fd3fe
Details

Three changes to fix Duncan giving poor/irrelevant responses when

users ask about their budget:

1. Increased RAG chunk limits for local models (Mistral): result

limit 6→8, max chunk chars 400→800. Mistral's 8K context can

handle this and the budget data was being severely truncated.

2. When FetchActiveItemEntityAsync fails to find an entity via SDK

or DataSourceProvider (e.g. finance_budget synthetic types), fall

back to formatting InfoPanelDetailField entries into the active

item context instead of leaving it as just a title string.

3. Bumped desktop to 1.60.2.

patch Core

Add NotEquals variant to FilterOperator enum

Core 1.15.0 → 1.15.1 | 6510ac87
Details

The dataset view filter system was missing a NotEquals operator,

causing deserialization failures when views used not-equals filters.

Added the variant to the FilterOperator enum so it serializes as

"not_equals" via serde rename_all snake_case. Bumped workspace

version to 1.15.1.

patch Desktop Shell

Fix RAG index never starting on app launch

Desktop 1.60.0 → 1.60.1 | 99cdf5c0
Details

RagIndexService was registered as a lazy singleton but never resolved

during startup — only when downloading the embedding model or seeding.

Its constructor contains a 5-second delayed auto-init task that calls

StartFullIndexAsync, but since the singleton was never constructed, the

RAG pipeline was completely dead on normal launches. Duncan had zero

indexed context for every chat message.

Eagerly resolve RagIndexService in the deferred background services

block so its constructor runs and the auto-init fires.

Bump version to 1.60.1.

patch Desktop Shell

Fix </s> stop tokens leaking into Duncan chat responses

Desktop 1.58.7 → 1.58.8 | 9474b487
Details

Two bugs: (1) The ChatTokenPattern regex only matched <|token|> format but

not bare </s> from Mistral models. Added "s" to the alternation group.

(2) Cloud provider responses bypassed Sanitize() entirely, allowing any

stray tokens or formatting artifacts through. Now all responses go through

the same sanitization pipeline regardless of provider.

Bump version to 1.58.8.

patch IO

Exclude test/runner projects from plugin build loop

Details

Added case filter to skip *.Tests and *.TestRunner csproj matches in the

dev build script. These are test utilities, not runtime plugins, and

should not be built alongside actual plugins.

← Prev Page 46 of 117 Next →

Get notified about new releases