feat: configure supervisor model and story graph use per conversation

Add a supervisor text-model selector using existing connections and a per-conversation story graph switch above knowledge settings. Hide the switch when Supervisor is disabled and enforce conversation preferences at local and remote tool execution boundaries.

Release note: Choose a dedicated supervisor model and control whether each conversation can query existing stories and experiences. Enabling graph access does not start a review or automatically insert context.
This commit is contained in:
mesalogo
2026-10-03 19:16:35 +08:00
parent 492f1d208a
commit 48d7526b7e
47 changed files with 778 additions and 81 deletions
+4
View File
@@ -40,6 +40,7 @@ it('keeps menus and notifications interactive above real Electron modals', async
}, 120000)
it.each([
['saves the conversation story graph switch from App through production IPC and revokes existing tools', 'story-graph-switch-main.ts'],
['opens the MCP editor from App settings with native browser isolation and real persistence', 'mcp-overlay-main.ts'],
['keeps nested previews, sandbox keyboard, project modals and native overlays usable', 'overlay-paths-main.ts']
])('%s', async (_name, entry) => {
@@ -93,6 +94,9 @@ it.each([
if (entry === 'mcp-overlay-main.ts') {
expect(result.persistedAfterReload).toBe(true)
expect(result.scenarios).toHaveLength(4)
} else if (entry === 'story-graph-switch-main.ts') {
expect(result).toMatchObject({ persistedAfterReload: true, revokedExistingBinding: true, hiddenWhenDisabled: true })
expect(result.scenarios).toHaveLength(4)
} else {
expect(result).toMatchObject({ image: true, iframe: true, project: true, tooltip: true, citation: true })
}