v2.23.0
Added
- Prompt retention for profile learning — the
user_promptstable used to grow forever: rows consumed by user-profile learning were never deleted. NewpromptRetentionDaysconfig (default30) prunes prompts already captured for learning after the configured number of days on session idle. Set it tofalseto keep captured prompts indefinitely (uncaptured prompts — the learning queue — are never pruned). Note the side effect: pruned prompts also disappear from the dashboard prompt lists and search.
Fixed
- Profile learning no longer double-counts — the LLM is instructed to return the fully merged profile (incrementing frequencies and updating confidence scores), but the code then merged it again, bumping every matching preference's confidence by
+0.1and every pattern/workflow frequency by+1per batch. Learning now stores the LLM's merged profile as-is, enforcing only the configured maximums (userProfileMaxPreferences,userProfileMaxPatterns,userProfileMaxWorkflows); the explicitprofiletool path is unchanged. - Prompt search matches
%,_, and\again — the LIKE-pattern escaper replaced those characters with the literal text\${char}(an escaped-dollar template that never interpolated), so any dashboard prompt search containing them matched nothing. Escaping now produces proper LIKE literals. Regression test included. (Found during code review of the retention work.)
Full Changelog: v2.22.0...v2.23.0