Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
f2f0cd4
fix(panel): the conversation is always panel-owned — retire the workf…
artokun Aug 5, 2026
5b9664e
fix(history): thread identity follows the orchestrator's global sessi…
artokun Aug 6, 2026
45acdca
fix(history): fence an abandoned turn's output out of the adopted con…
artokun Aug 6, 2026
bd224f8
fix(history): backend-scoped selection, dispatch-gated commits, selec…
artokun Aug 6, 2026
a3da377
fix(history): backend-switch adopts that backend's conversation; disc…
artokun Aug 6, 2026
2ec38c7
fix(history): run the backend-switch transition even when the target …
artokun Aug 6, 2026
2c2d4b4
Merge origin/main into fix/884-orchestrator-scoped-sessions
artokun Aug 15, 2026
0c337ab
test(history): pin the orchestrator-scoped-session invariant as a gate
artokun Aug 15, 2026
8b2ebe2
Merge remote-tracking branch 'origin/main' into fix/884-orchestrator-…
artokun Aug 15, 2026
6006520
test(884): pin the chat-scope retirement in CI, by RUNNING chatScopeMode
artokun Aug 15, 2026
16b7a08
Merge branch 'fix/884-orchestrator-scoped-sessions' of github.com:Art…
artokun Aug 15, 2026
a95e763
Merge remote-tracking branch 'origin/main' into fix/884-orchestrator-…
artokun Aug 15, 2026
b3104f9
Merge remote-tracking branch 'origin/main' into HEAD
Aug 15, 2026
963b264
test(884): pin the turn-output fence in CI, by RUNNING it
artokun Aug 15, 2026
ef5de74
Merge remote-tracking branch 'origin/fix/884-orchestrator-scoped-sess…
artokun Aug 15, 2026
94d7abd
fix(884): the backend switch must ask what the INCOMING backend has
artokun Aug 15, 2026
b181f7c
test(884): close the two mutation survivors from the P1 fixes
artokun Aug 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 12 additions & 26 deletions web/js/comfyui-mcp-panel.js
Original file line number Diff line number Diff line change
Expand Up @@ -2595,12 +2595,15 @@ function getSetting(id) {
return undefined;
}
}
/** Conversation ownership. The legacy boolean remains a read-only migration
* source so existing users keep their chosen behavior. */
/** Conversation ownership (mcp#884 — owner-stated invariant): the conversation
* ALWAYS belongs to the panel. One agent session spans every workflow and every
* tab; the orchestrator keys and persists it (in ~/.comfyui-mcp/sessions), so a
* workflow-scoped chat is a bug, never a mode. The old "workflow"/"ask" scopes
* are retired — their stored setting values are ignored (not migrated), and
* per-workflow threads created under them remain in history, reachable through
* the history picker like any archived conversation. */
function chatScopeMode() {
const mode = getSetting(SETTING_CHAT_SCOPE);
if (mode === "panel" || mode === "workflow" || mode === "ask") return mode;
return getSetting(SETTING_SESSION_FOLLOWS_PANEL) === false ? "workflow" : "panel";
return "panel";
}
function setSetting(id, value) {
try {
Expand Down Expand Up @@ -3036,27 +3039,10 @@ function panelSettingsList() {
panelHooks.applyBackend?.(v);
},
},
{
id: SETTING_CHAT_SCOPE,
name: "Chat conversation scope",
category: cat("General", "Chat conversation scope"),
sortOrder: 146,
tooltip:
"Panel: one conversation follows every canvas. Workflow: each saved workflow has its own persistent set of chats, " +
"identified by an embedded UUID so renames keep history and copies separate. Ask: choose whether to carry the " +
"current conversation whenever you switch workflows. All modes survive full ComfyUI/MCP restarts.",
type: "combo",
options: [
{ value: "panel", text: "Panel — one chat across workflows" },
{ value: "workflow", text: "Workflow — separate chat histories" },
{ value: "ask", text: "Ask whenever the workflow changes" },
],
defaultValue: getSetting(SETTING_SESSION_FOLLOWS_PANEL) === false ? "workflow" : "panel",
onChange: (v) => {
if (suppressSettingOnChange || !settingsArmed) return;
panelHooks.applyChatScope?.(v);
},
},
// mcp#884 — the "Chat conversation scope" combo is retired: the conversation
// is ALWAYS panel-owned (one session across every workflow and tab, keyed and
// persisted by the orchestrator). chatScopeMode() is hard-wired to "panel";
// a stored "workflow"/"ask" value from an older build is simply ignored.
{
id: SETTING_AUTOCONNECT,
name: "Auto-connect on load",
Expand Down
Loading