feat(session): persist model tier overrides per session

Store per-session config in SQLite and route /model and /reset through command fast-paths so channel sessions keep independent model selection across reconnects and restarts.
This commit is contained in:
William Valentin
2026-02-13 01:04:26 -08:00
parent 3472a0b926
commit 9f81c01603
35 changed files with 1438 additions and 144 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ export function createMemoryReadTool(store: MemoryStore): Tool {
return {
name: 'memory.read',
description:
'Read a persistent memory file by namespace. Available namespaces include "user" (user preferences and facts), "global" (cross-session knowledge), and session-specific namespaces. Returns the full contents of the memory file.',
'Read a persistent memory file by namespace. Available namespaces include "user" (user preferences and facts), "global" (cross-session knowledge), and session-specific namespaces. Supports structured categories by appending /facts, /preferences, /decisions, or /projects (for example: "user/facts"). Returns the full contents of the memory file.',
inputSchema: {
type: 'object',
properties: {
+2 -1
View File
@@ -16,7 +16,8 @@ export function createMemorySearchTool(store: MemoryStore, hybridSearch?: Hybrid
name: 'memory.search',
description:
'Search across all memory files for a keyword or phrase. Returns matching lines with surrounding context from every namespace.' +
(hybridSearch ? ' Uses semantic vector search combined with keyword matching for better results.' : ''),
(hybridSearch ? ' Uses semantic vector search combined with keyword matching for better results.' : '') +
' Category namespaces (facts/preferences/decisions/projects) are searchable through the namespace path.',
inputSchema: {
type: 'object',
properties: {
+1 -1
View File
@@ -15,7 +15,7 @@ export function createMemoryWriteTool(store: MemoryStore): Tool {
return {
name: 'memory.write',
description:
'Write to a persistent memory file. Use mode="append" to add new information without overwriting existing content, or mode="replace" to overwrite the entire namespace.',
'Write to a persistent memory file. Use mode="append" to add new information without overwriting existing content, or mode="replace" to overwrite the entire namespace. Supports structured category namespaces like "user/facts", "user/preferences", "user/decisions", and "user/projects".',
inputSchema: {
type: 'object',
properties: {