authorgravatar for maria@kuuro.netmaria <maria@kuuro.net> 2026-10-14 22:26:02+00:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-10-14 22:26:02+00:00
logf87dd14dafdeecd962f7da24da79324842983e00
tree91a50add015dad217b398ac7db75a685476a024c
parent78f4b69a1fc6c37e2bdbb3f8d02717a49d4ccacd
signature Signed by PGP key B5690EEEBB952194

fix(muse): Supervised threads ask before commands again (#19558)


12 files changed, 51 insertions(+), 11 deletions(-)

apps/server/src/orchestration-v2/testkit/fixtures/multi_turn/muse_transcript.ndjson+1-1
......@@ -3,7 +3,7 @@
33{"type":"expect_outbound","label":"initialize","frame":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"t3_code","title":"T3 Code","version":"1"},"capabilities":{"requestedCapabilities":["sessionMcp"]}}}}
44{"type":"emit_inbound","label":"response:initialize","frame":{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"muse","version":"1.4.3"},"userAgent":"muse-build/1.4.3 (non-interactive; macos-aarch64; build 5c1bccecf3f125ff8fdc53f63558f6527ee70e56)","museHome":"~/.local/share/muse","platformFamily":"unix","platformOs":"macos","schema":{"version":1,"fingerprint":"sha256:4cb671082574037fc1070a136db7c0c8dc24e65e78cf3d209a10944ff9f9845f"},"grantedCapabilities":["sessionMcp"],"experimentalApi":false,"sessionDurability":"durable"}}}
55{"type":"expect_outbound","label":"initialized","frame":{"jsonrpc":"2.0","method":"initialized"}}
6{"type":"expect_outbound","label":"session/start","frame":{"jsonrpc":"2.0","id":2,"method":"session/start","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","workspaceRoot":"<workspace>","modelId":"muse-spark-1.3-contributor","providerId":"meta","approvalMode":"allowAll","commandId":"01a11a6b-707e-7001-b2f4-23db74e60097"}}}
6{"type":"expect_outbound","label":"session/start","frame":{"jsonrpc":"2.0","id":2,"method":"session/start","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","workspaceRoot":"<workspace>","modelId":"muse-spark-1.3-contributor","providerId":"meta","approvalMode":"allowAll","permissionProfile":":unrestricted","commandId":"01a11a6b-707e-7001-b2f4-23db74e60097"}}}
77{"type":"emit_inbound","label":"session/started","frame":{"jsonrpc":"2.0","method":"session/started","params":{"session":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","path":"~/.local/share/muse/sessions/2026/10/08/01a11a6b-707e-7000-9bb5-4079c7772ad0/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-08T07:30:11.238412Z","updatedAt":"2026-10-08T07:30:11.238416Z","workspaceRoot":"<workspace>","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"}},"emittedAtMs":1791444611408}}
88{"type":"emit_inbound","label":"response:session/start","frame":{"jsonrpc":"2.0","id":2,"result":{"session":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","path":"~/.local/share/muse/sessions/2026/10/08/01a11a6b-707e-7000-9bb5-4079c7772ad0/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-08T07:30:11.238412Z","updatedAt":"2026-10-08T07:30:11.238416Z","workspaceRoot":"<workspace>","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"},"viewCursor":"v:01a11a6b-707e-7000-9bb5-4079c7772ad0:1"}}}
99{"type":"emit_inbound","label":"session/approvalModeChanged","frame":{"jsonrpc":"2.0","method":"session/approvalModeChanged","params":{"sessionId":"01a11a6b-707e-7000-9bb5-4079c7772ad0","viewCursor":"v:01a11a6b-707e-7000-9bb5-4079c7772ad0:1","sourceRange":{"stream":{"kind":"session","id":"01a11a6b-707e-7000-9bb5-4079c7772ad0"},"first":{"id":"37b19bd1-b212-4532-a0c9-a6677f303e26","sequence":5},"last":{"id":"37b19bd1-b212-4532-a0c9-a6677f303e26","sequence":5}},"mode":"allowAll","source":"approvalReconfigure","commandId":"01a11a6b-707e-7001-b2f4-23db74e60097","clientName":"t3_code"},"emittedAtMs":1791444611412}}
apps/server/src/orchestration-v2/testkit/fixtures/muse_permission/muse_transcript.ndjson+1-1
......@@ -3,7 +3,7 @@
33{"type":"expect_outbound","label":"initialize","frame":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"t3_code","title":"T3 Code","version":"1"},"capabilities":{"requestedCapabilities":["sessionMcp"]}}}}
44{"type":"emit_inbound","label":"response:initialize","frame":{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"muse","version":"1.4.3"},"userAgent":"muse-build/1.4.3 (non-interactive; macos-aarch64; build 5c1bccecf3f125ff8fdc53f63558f6527ee70e56)","museHome":"~/.local/share/muse","platformFamily":"unix","platformOs":"macos","schema":{"version":1,"fingerprint":"sha256:4cb671082574037fc1070a136db7c0c8dc24e65e78cf3d209a10944ff9f9845f"},"grantedCapabilities":["sessionMcp"],"experimentalApi":false,"sessionDurability":"durable"}}}
55{"type":"expect_outbound","label":"initialized","frame":{"jsonrpc":"2.0","method":"initialized"}}
6{"type":"expect_outbound","label":"session/start","frame":{"jsonrpc":"2.0","id":2,"method":"session/start","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","workspaceRoot":"<workspace>","modelId":"muse-spark-1.3-contributor","providerId":"meta","approvalMode":"promptUnmatched","commandId":"01a11a6d-39bb-7001-923e-425cc6129ce7"}}}
6{"type":"expect_outbound","label":"session/start","frame":{"jsonrpc":"2.0","id":2,"method":"session/start","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","workspaceRoot":"<workspace>","modelId":"muse-spark-1.3-contributor","providerId":"meta","approvalMode":"promptUnmatched","permissionProfile":":ask-me","commandId":"01a11a6d-39bb-7001-923e-425cc6129ce7"}}}
77{"type":"emit_inbound","label":"session/started","frame":{"jsonrpc":"2.0","method":"session/started","params":{"session":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","path":"~/.local/share/muse/sessions/2026/10/08/01a11a6d-39bb-7000-8c93-4594c98e6a11/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-08T07:32:08.30084Z","updatedAt":"2026-10-08T07:32:08.300844Z","workspaceRoot":"<workspace>","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"approvalMode":{"mode":"promptUnmatched","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"}},"emittedAtMs":1791444728496}}
88{"type":"emit_inbound","label":"response:session/start","frame":{"jsonrpc":"2.0","id":2,"result":{"session":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","path":"~/.local/share/muse/sessions/2026/10/08/01a11a6d-39bb-7000-8c93-4594c98e6a11/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-08T07:32:08.30084Z","updatedAt":"2026-10-08T07:32:08.300844Z","workspaceRoot":"<workspace>","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"approvalMode":{"mode":"promptUnmatched","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"},"viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:1"}}}
99{"type":"emit_inbound","label":"session/approvalModeChanged","frame":{"jsonrpc":"2.0","method":"session/approvalModeChanged","params":{"sessionId":"01a11a6d-39bb-7000-8c93-4594c98e6a11","viewCursor":"v:01a11a6d-39bb-7000-8c93-4594c98e6a11:1","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-39bb-7000-8c93-4594c98e6a11"},"first":{"id":"b05fb8ec-7b58-4cf7-a369-379938395230","sequence":5},"last":{"id":"b05fb8ec-7b58-4cf7-a369-379938395230","sequence":5}},"mode":"promptUnmatched","source":"approvalReconfigure","commandId":"01a11a6d-39bb-7001-923e-425cc6129ce7","clientName":"t3_code"},"emittedAtMs":1791444728501}}
apps/server/src/orchestration-v2/testkit/fixtures/muse_subagent_approval/muse_transcript.ndjson+1-1
......@@ -3,7 +3,7 @@
33{"type":"expect_outbound","label":"initialize","frame":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"t3_code","title":"T3 Code","version":"1"},"capabilities":{"requestedCapabilities":["sessionMcp"]}}}}
44{"type":"emit_inbound","label":"response:initialize","frame":{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"muse","version":"1.4.4"},"userAgent":"muse-build/1.4.4 (serve; macos-aarch64; build 1e1635eda6610b6dec0803bc76c1ceb0dbff7caa)","museHome":"~/.local/share/muse","platformFamily":"unix","platformOs":"macos","schema":{"version":1,"fingerprint":"sha256:7c94f153c41659cb3f1bd3c3e04438be254644cb2a97d65d48edc7449b74858a"},"grantedCapabilities":["sessionMcp"],"experimentalApi":false,"sessionDurability":"durable"}}}
55{"type":"expect_outbound","label":"initialized","frame":{"jsonrpc":"2.0","method":"initialized"}}
6{"type":"expect_outbound","label":"session/start","frame":{"jsonrpc":"2.0","id":2,"method":"session/start","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","workspaceRoot":"<workspace>","modelId":"muse-spark-1.3-contributor","providerId":"meta","approvalMode":"promptUnmatched","commandId":"01a12d1d-a1b8-7000-8d6c-f1324b724cdb"}}}
6{"type":"expect_outbound","label":"session/start","frame":{"jsonrpc":"2.0","id":2,"method":"session/start","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","workspaceRoot":"<workspace>","modelId":"muse-spark-1.3-contributor","providerId":"meta","approvalMode":"promptUnmatched","permissionProfile":":ask-me","commandId":"01a12d1d-a1b8-7000-8d6c-f1324b724cdb"}}}
77{"type":"emit_inbound","label":"session/started","frame":{"jsonrpc":"2.0","method":"session/started","params":{"session":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","path":"~/.local/share/muse/sessions/2026/10/11/01a12d1d-a1b7-7000-9697-d430c2e2afd8/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-11T22:37:59.14136Z","updatedAt":"2026-10-11T22:37:59.141364Z","workspaceRoot":"<workspace>","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"sideFrom":null,"approvalMode":{"mode":"promptUnmatched","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"}},"emittedAtMs":1791758279294}}
88{"type":"emit_inbound","label":"response:session/start","frame":{"jsonrpc":"2.0","id":2,"result":{"session":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","path":"~/.local/share/muse/sessions/2026/10/11/01a12d1d-a1b7-7000-9697-d430c2e2afd8/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-11T22:37:59.14136Z","updatedAt":"2026-10-11T22:37:59.141364Z","workspaceRoot":"<workspace>","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"sideFrom":null,"approvalMode":{"mode":"promptUnmatched","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"},"viewCursor":"v:01a12d1d-a1b7-7000-9697-d430c2e2afd8:1"}}}
99{"type":"emit_inbound","label":"session/approvalModeChanged","frame":{"jsonrpc":"2.0","method":"session/approvalModeChanged","params":{"sessionId":"01a12d1d-a1b7-7000-9697-d430c2e2afd8","viewCursor":"v:01a12d1d-a1b7-7000-9697-d430c2e2afd8:1","sourceRange":{"stream":{"kind":"session","id":"01a12d1d-a1b7-7000-9697-d430c2e2afd8"},"first":{"id":"ed95a9db-eada-4751-a7e6-22ccc9bdabd5","sequence":5},"last":{"id":"ed95a9db-eada-4751-a7e6-22ccc9bdabd5","sequence":5}},"mode":"promptUnmatched","source":"approvalReconfigure","commandId":"01a12d1d-a1b8-7000-8d6c-f1324b724cdb","clientName":"t3_code"},"emittedAtMs":1791758279297}}
apps/server/src/orchestration-v2/testkit/fixtures/muse_subagent_interrupt/muse_transcript.ndjson+1-1
......@@ -3,7 +3,7 @@
33{"type":"expect_outbound","label":"initialize","frame":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"t3_code","title":"T3 Code","version":"1"},"capabilities":{"requestedCapabilities":["sessionMcp"]}}}}
44{"type":"emit_inbound","label":"response:initialize","frame":{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"muse","version":"1.4.4"},"userAgent":"muse-build/1.4.4 (serve; macos-aarch64; build 1e1635eda6610b6dec0803bc76c1ceb0dbff7caa)","museHome":"~/.local/share/muse","platformFamily":"unix","platformOs":"macos","schema":{"version":1,"fingerprint":"sha256:7c94f153c41659cb3f1bd3c3e04438be254644cb2a97d65d48edc7449b74858a"},"grantedCapabilities":["sessionMcp"],"experimentalApi":false,"sessionDurability":"durable"}}}
55{"type":"expect_outbound","label":"initialized","frame":{"jsonrpc":"2.0","method":"initialized"}}
6{"type":"expect_outbound","label":"session/start","frame":{"jsonrpc":"2.0","id":2,"method":"session/start","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","workspaceRoot":"<workspace>","modelId":"muse-spark-1.3-contributor","providerId":"meta","approvalMode":"allowAll","commandId":"01a12d28-7788-7001-a223-c10e52187cdf"}}}
6{"type":"expect_outbound","label":"session/start","frame":{"jsonrpc":"2.0","id":2,"method":"session/start","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","workspaceRoot":"<workspace>","modelId":"muse-spark-1.3-contributor","providerId":"meta","approvalMode":"allowAll","permissionProfile":":unrestricted","commandId":"01a12d28-7788-7001-a223-c10e52187cdf"}}}
77{"type":"emit_inbound","label":"session/started","frame":{"jsonrpc":"2.0","method":"session/started","params":{"session":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","path":"~/.local/share/muse/sessions/2026/10/11/01a12d28-7788-7000-a946-c407f380868e/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-11T22:49:49.235205Z","updatedAt":"2026-10-11T22:49:49.235209Z","workspaceRoot":"<workspace>","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"sideFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"}},"emittedAtMs":1791758989388}}
88{"type":"emit_inbound","label":"response:session/start","frame":{"jsonrpc":"2.0","id":2,"result":{"session":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","path":"~/.local/share/muse/sessions/2026/10/11/01a12d28-7788-7000-a946-c407f380868e/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-11T22:49:49.235205Z","updatedAt":"2026-10-11T22:49:49.235209Z","workspaceRoot":"<workspace>","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"sideFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"},"viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:1"}}}
99{"type":"emit_inbound","label":"session/approvalModeChanged","frame":{"jsonrpc":"2.0","method":"session/approvalModeChanged","params":{"sessionId":"01a12d28-7788-7000-a946-c407f380868e","viewCursor":"v:01a12d28-7788-7000-a946-c407f380868e:1","sourceRange":{"stream":{"kind":"session","id":"01a12d28-7788-7000-a946-c407f380868e"},"first":{"id":"29d4e769-78f7-48fa-90cd-3ac9f8fa04bf","sequence":5},"last":{"id":"29d4e769-78f7-48fa-90cd-3ac9f8fa04bf","sequence":5}},"mode":"allowAll","source":"approvalReconfigure","commandId":"01a12d28-7788-7001-a223-c10e52187cdf","clientName":"t3_code"},"emittedAtMs":1791758989391}}
apps/server/src/orchestration-v2/testkit/fixtures/muse_workflow/muse_transcript.ndjson+1-1
......@@ -3,7 +3,7 @@
33{"type":"expect_outbound","label":"initialize","frame":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"t3_code","title":"T3 Code","version":"1"},"capabilities":{"requestedCapabilities":["sessionMcp"]}}}}
44{"type":"emit_inbound","label":"response:initialize","frame":{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"muse","version":"1.4.6"},"userAgent":"muse-build/1.4.6 (serve; macos-aarch64; build db2475a6bd32831a854b97282a12b867123d6520)","museHome":"~/.local/share/muse","platformFamily":"unix","platformOs":"macos","schema":{"version":1,"fingerprint":"sha256:eae467ab60cb9a5d5af4de616830f065e59375c987fd59269c8cc33ed2a1137f"},"grantedCapabilities":["sessionMcp"],"experimentalApi":false,"sessionDurability":"durable"}}}
55{"type":"expect_outbound","label":"initialized","frame":{"jsonrpc":"2.0","method":"initialized"}}
6{"type":"expect_outbound","label":"session/start","frame":{"jsonrpc":"2.0","id":2,"method":"session/start","params":{"sessionId":"01a12d5d-405f-7000-89a3-5aa62af6ea23","workspaceRoot":"<workspace>","modelId":"muse-spark-1.3-contributor","providerId":"meta","approvalMode":"allowAll","commandId":"01a12d5d-4060-7000-b6cd-aaabe26f80de"}}}
6{"type":"expect_outbound","label":"session/start","frame":{"jsonrpc":"2.0","id":2,"method":"session/start","params":{"sessionId":"01a12d5d-405f-7000-89a3-5aa62af6ea23","workspaceRoot":"<workspace>","modelId":"muse-spark-1.3-contributor","providerId":"meta","approvalMode":"allowAll","permissionProfile":":unrestricted","commandId":"01a12d5d-4060-7000-b6cd-aaabe26f80de"}}}
77{"type":"emit_inbound","label":"session/started","frame":{"jsonrpc":"2.0","method":"session/started","params":{"session":{"sessionId":"01a12d5d-405f-7000-89a3-5aa62af6ea23","path":"~/.local/share/muse/sessions/2026/10/11/01a12d5d-405f-7000-89a3-5aa62af6ea23/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-11T23:47:28.587276Z","updatedAt":"2026-10-11T23:47:28.587281Z","workspaceRoot":"<workspace>","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"sideFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"}},"emittedAtMs":1791762448802}}
88{"type":"emit_inbound","label":"response:session/start","frame":{"jsonrpc":"2.0","id":2,"result":{"session":{"sessionId":"01a12d5d-405f-7000-89a3-5aa62af6ea23","path":"~/.local/share/muse/sessions/2026/10/11/01a12d5d-405f-7000-89a3-5aa62af6ea23/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-11T23:47:28.587276Z","updatedAt":"2026-10-11T23:47:28.587281Z","workspaceRoot":"<workspace>","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"sideFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"},"viewCursor":"v:01a12d5d-405f-7000-89a3-5aa62af6ea23:2"}}}
99{"type":"emit_inbound","label":"session/approvalModeChanged","frame":{"jsonrpc":"2.0","method":"session/approvalModeChanged","params":{"sessionId":"01a12d5d-405f-7000-89a3-5aa62af6ea23","viewCursor":"v:01a12d5d-405f-7000-89a3-5aa62af6ea23:1","sourceRange":{"stream":{"kind":"session","id":"01a12d5d-405f-7000-89a3-5aa62af6ea23"},"first":{"id":"0c13b14b-877c-4c5b-b05f-8ad250dfd381","sequence":5},"last":{"id":"0c13b14b-877c-4c5b-b05f-8ad250dfd381","sequence":5}},"mode":"allowAll","source":"approvalReconfigure","commandId":"01a12d5d-4060-7000-b6cd-aaabe26f80de","clientName":"t3_code"},"emittedAtMs":1791762448807}}
apps/server/src/orchestration-v2/testkit/fixtures/simple/muse_transcript.ndjson+1-1
......@@ -3,7 +3,7 @@
33{"type":"expect_outbound","label":"initialize","frame":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"t3_code","title":"T3 Code","version":"1"},"capabilities":{"requestedCapabilities":["sessionMcp"]}}}}
44{"type":"emit_inbound","label":"response:initialize","frame":{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"muse","version":"1.4.3"},"userAgent":"muse-build/1.4.3 (non-interactive; macos-aarch64; build 5c1bccecf3f125ff8fdc53f63558f6527ee70e56)","museHome":"~/.local/share/muse","platformFamily":"unix","platformOs":"macos","schema":{"version":1,"fingerprint":"sha256:4cb671082574037fc1070a136db7c0c8dc24e65e78cf3d209a10944ff9f9845f"},"grantedCapabilities":["sessionMcp"],"experimentalApi":false,"sessionDurability":"durable"}}}
55{"type":"expect_outbound","label":"initialized","frame":{"jsonrpc":"2.0","method":"initialized"}}
6{"type":"expect_outbound","label":"session/start","frame":{"jsonrpc":"2.0","id":2,"method":"session/start","params":{"sessionId":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5","workspaceRoot":"<workspace>","modelId":"muse-spark-1.3-contributor","providerId":"meta","approvalMode":"allowAll","commandId":"01a11a6a-bbb6-7000-b1a4-a01ea59676ef"}}}
6{"type":"expect_outbound","label":"session/start","frame":{"jsonrpc":"2.0","id":2,"method":"session/start","params":{"sessionId":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5","workspaceRoot":"<workspace>","modelId":"muse-spark-1.3-contributor","providerId":"meta","approvalMode":"allowAll","permissionProfile":":unrestricted","commandId":"01a11a6a-bbb6-7000-b1a4-a01ea59676ef"}}}
77{"type":"emit_inbound","label":"session/started","frame":{"jsonrpc":"2.0","method":"session/started","params":{"session":{"sessionId":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5","path":"~/.local/share/muse/sessions/2026/10/08/01a11a6a-bbb5-7000-ad0b-0c9e728406e5/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-08T07:29:25.018803Z","updatedAt":"2026-10-08T07:29:25.018807Z","workspaceRoot":"<workspace>","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"}},"emittedAtMs":1791444565334}}
88{"type":"emit_inbound","label":"response:session/start","frame":{"jsonrpc":"2.0","id":2,"result":{"session":{"sessionId":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5","path":"~/.local/share/muse/sessions/2026/10/08/01a11a6a-bbb5-7000-ad0b-0c9e728406e5/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-08T07:29:25.018803Z","updatedAt":"2026-10-08T07:29:25.018807Z","workspaceRoot":"<workspace>","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"},"viewCursor":"v:01a11a6a-bbb5-7000-ad0b-0c9e728406e5:1"}}}
99{"type":"emit_inbound","label":"session/approvalModeChanged","frame":{"jsonrpc":"2.0","method":"session/approvalModeChanged","params":{"sessionId":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5","viewCursor":"v:01a11a6a-bbb5-7000-ad0b-0c9e728406e5:1","sourceRange":{"stream":{"kind":"session","id":"01a11a6a-bbb5-7000-ad0b-0c9e728406e5"},"first":{"id":"cfd043e8-8728-493d-ba28-252ef91e8a80","sequence":5},"last":{"id":"cfd043e8-8728-493d-ba28-252ef91e8a80","sequence":5}},"mode":"allowAll","source":"approvalReconfigure","commandId":"01a11a6a-bbb6-7000-b1a4-a01ea59676ef","clientName":"t3_code"},"emittedAtMs":1791444565340}}
apps/server/src/orchestration-v2/testkit/fixtures/subagent_v2/muse_transcript.ndjson+1-1
......@@ -3,7 +3,7 @@
33{"type":"expect_outbound","label":"initialize","frame":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"t3_code","title":"T3 Code","version":"1"},"capabilities":{"requestedCapabilities":["sessionMcp"]}}}}
44{"type":"emit_inbound","label":"response:initialize","frame":{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"muse","version":"1.4.4"},"userAgent":"muse-build/1.4.4 (serve; macos-aarch64; build 1e1635eda6610b6dec0803bc76c1ceb0dbff7caa)","museHome":"~/.local/share/muse","platformFamily":"unix","platformOs":"macos","schema":{"version":1,"fingerprint":"sha256:7c94f153c41659cb3f1bd3c3e04438be254644cb2a97d65d48edc7449b74858a"},"grantedCapabilities":["sessionMcp"],"experimentalApi":false,"sessionDurability":"durable"}}}
55{"type":"expect_outbound","label":"initialized","frame":{"jsonrpc":"2.0","method":"initialized"}}
6{"type":"expect_outbound","label":"session/start","frame":{"jsonrpc":"2.0","id":2,"method":"session/start","params":{"sessionId":"01a12d17-75fa-7000-9157-e8365ce94492","workspaceRoot":"<workspace>","modelId":"muse-spark-1.3-contributor","providerId":"meta","approvalMode":"allowAll","commandId":"01a12d17-75fa-7001-a940-79b5d7c648a4"}}}
6{"type":"expect_outbound","label":"session/start","frame":{"jsonrpc":"2.0","id":2,"method":"session/start","params":{"sessionId":"01a12d17-75fa-7000-9157-e8365ce94492","workspaceRoot":"<workspace>","modelId":"muse-spark-1.3-contributor","providerId":"meta","approvalMode":"allowAll","permissionProfile":":unrestricted","commandId":"01a12d17-75fa-7001-a940-79b5d7c648a4"}}}
77{"type":"emit_inbound","label":"session/started","frame":{"jsonrpc":"2.0","method":"session/started","params":{"session":{"sessionId":"01a12d17-75fa-7000-9157-e8365ce94492","path":"~/.local/share/muse/sessions/2026/10/11/01a12d17-75fa-7000-9157-e8365ce94492/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-11T22:31:14.73121Z","updatedAt":"2026-10-11T22:31:14.731214Z","workspaceRoot":"<workspace>","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"sideFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"}},"emittedAtMs":1791757874894}}
88{"type":"emit_inbound","label":"response:session/start","frame":{"jsonrpc":"2.0","id":2,"result":{"session":{"sessionId":"01a12d17-75fa-7000-9157-e8365ce94492","path":"~/.local/share/muse/sessions/2026/10/11/01a12d17-75fa-7000-9157-e8365ce94492/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-11T22:31:14.73121Z","updatedAt":"2026-10-11T22:31:14.731214Z","workspaceRoot":"<workspace>","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"sideFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"},"viewCursor":"v:01a12d17-75fa-7000-9157-e8365ce94492:1"}}}
99{"type":"emit_inbound","label":"session/approvalModeChanged","frame":{"jsonrpc":"2.0","method":"session/approvalModeChanged","params":{"sessionId":"01a12d17-75fa-7000-9157-e8365ce94492","viewCursor":"v:01a12d17-75fa-7000-9157-e8365ce94492:1","sourceRange":{"stream":{"kind":"session","id":"01a12d17-75fa-7000-9157-e8365ce94492"},"first":{"id":"94d1e1ed-1d3e-4cd5-91bf-a51394fc8a0a","sequence":5},"last":{"id":"94d1e1ed-1d3e-4cd5-91bf-a51394fc8a0a","sequence":5}},"mode":"allowAll","source":"approvalReconfigure","commandId":"01a12d17-75fa-7001-a940-79b5d7c648a4","clientName":"t3_code"},"emittedAtMs":1791757874898}}
apps/server/src/orchestration-v2/testkit/fixtures/turn_interrupt/muse_transcript.ndjson+1-1
......@@ -3,7 +3,7 @@
33{"type":"expect_outbound","label":"initialize","frame":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"t3_code","title":"T3 Code","version":"1"},"capabilities":{"requestedCapabilities":["sessionMcp"]}}}}
44{"type":"emit_inbound","label":"response:initialize","frame":{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"muse","version":"1.4.3"},"userAgent":"muse-build/1.4.3 (non-interactive; macos-aarch64; build 5c1bccecf3f125ff8fdc53f63558f6527ee70e56)","museHome":"~/.local/share/muse","platformFamily":"unix","platformOs":"macos","schema":{"version":1,"fingerprint":"sha256:4cb671082574037fc1070a136db7c0c8dc24e65e78cf3d209a10944ff9f9845f"},"grantedCapabilities":["sessionMcp"],"experimentalApi":false,"sessionDurability":"durable"}}}
55{"type":"expect_outbound","label":"initialized","frame":{"jsonrpc":"2.0","method":"initialized"}}
6{"type":"expect_outbound","label":"session/start","frame":{"jsonrpc":"2.0","id":2,"method":"session/start","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","workspaceRoot":"<workspace>","modelId":"muse-spark-1.3-contributor","providerId":"meta","approvalMode":"allowAll","commandId":"01a11a6d-2d3e-7000-b0e7-f04c53ee070b"}}}
6{"type":"expect_outbound","label":"session/start","frame":{"jsonrpc":"2.0","id":2,"method":"session/start","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","workspaceRoot":"<workspace>","modelId":"muse-spark-1.3-contributor","providerId":"meta","approvalMode":"allowAll","permissionProfile":":unrestricted","commandId":"01a11a6d-2d3e-7000-b0e7-f04c53ee070b"}}}
77{"type":"emit_inbound","label":"session/started","frame":{"jsonrpc":"2.0","method":"session/started","params":{"session":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","path":"~/.local/share/muse/sessions/2026/10/08/01a11a6d-2d3d-7000-8178-411fdb90bc34/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-08T07:32:05.094285Z","updatedAt":"2026-10-08T07:32:05.094289Z","workspaceRoot":"<workspace>","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"}},"emittedAtMs":1791444725265}}
88{"type":"emit_inbound","label":"response:session/start","frame":{"jsonrpc":"2.0","id":2,"result":{"session":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","path":"~/.local/share/muse/sessions/2026/10/08/01a11a6d-2d3d-7000-8178-411fdb90bc34/session.jsonl","status":"idle","activeTurnId":null,"createdAt":"2026-10-08T07:32:05.094285Z","updatedAt":"2026-10-08T07:32:05.094289Z","workspaceRoot":"<workspace>","providerId":"meta","modelId":"muse-spark-1.3-contributor","turnCount":0,"forkedFrom":null,"approvalMode":{"mode":"allowAll","source":"startup","lastCommandId":null},"createdByClient":{"name":"t3_code","version":"1"},"kind":"root"},"viewCursor":"v:01a11a6d-2d3d-7000-8178-411fdb90bc34:1"}}}
99{"type":"emit_inbound","label":"session/approvalModeChanged","frame":{"jsonrpc":"2.0","method":"session/approvalModeChanged","params":{"sessionId":"01a11a6d-2d3d-7000-8178-411fdb90bc34","viewCursor":"v:01a11a6d-2d3d-7000-8178-411fdb90bc34:1","sourceRange":{"stream":{"kind":"session","id":"01a11a6d-2d3d-7000-8178-411fdb90bc34"},"first":{"id":"9865268e-0a39-43a0-89d0-251a820ec8a3","sequence":5},"last":{"id":"9865268e-0a39-43a0-89d0-251a820ec8a3","sequence":5}},"mode":"allowAll","source":"approvalReconfigure","commandId":"01a11a6d-2d3e-7000-b0e7-f04c53ee070b","clientName":"t3_code"},"emittedAtMs":1791444725268}}
packages/provider-muse/src/server/adapter.test.ts+26
......@@ -381,6 +381,32 @@ describe("MuseAdapterV2", () => {
381381 }).pipe(Effect.scoped, Effect.provide(testLayer)),
382382 );
383383
384 it.effect("selects the runtime mode's permission profile on native start and resume", () =>
385 Effect.gen(function* () {
386 for (const [runtimeMode, profile, approvalMode] of [
387 ["approval-required", ":ask-me", "promptUnmatched"],
388 ["full-access", ":unrestricted", "allowAll"],
389 ] as const) {
390 const policy = ProviderAdapter.ProviderAdapterV2RuntimePolicy.make({
391 ...runtimePolicy,
392 runtimeMode,
393 });
394 const fresh = yield* makeFakeMuse();
395 yield* makeHarness(fresh, INSTANCE_ID, undefined, undefined, undefined, policy);
396 const started = yield* fresh.takeCall("session/start");
397 assert.strictEqual(started.params.permissionProfile, profile);
398 assert.strictEqual(started.params.approvalMode, approvalMode);
399
400 const saved = yield* makeFakeMuse();
401 yield* makeHarness(saved, INSTANCE_ID, "saved-session", undefined, undefined, policy);
402 const resumed = yield* saved.takeCall("session/resume");
403 assert.strictEqual(resumed.params.permissionProfile, profile);
404 const mode = yield* saved.takeCall("session/setApprovalMode");
405 assert.strictEqual(mode.params.mode, approvalMode);
406 }
407 }).pipe(Effect.scoped, Effect.provide(testLayer)),
408 );
409
384410 it.effect("rejects a host without session MCP support before opening a native session", () =>
385411 Effect.gen(function* () {
386412 yield* (yield* McpProviderSessions.McpProviderSessions).set({
packages/provider-muse/src/server/adapter.ts+6-1
......@@ -64,6 +64,7 @@ import {
6464import {
6565 createMuseSdkHostEffect,
6666 museApprovalMode,
67 musePermissionProfile,
6768 museWorkspaceRoot,
6869 type createMuseSdkHost,
6970 type MuseSdkHost,
......@@ -1791,17 +1792,21 @@ export const makeMuseAdapterV2 = Effect.fn("makeMuseAdapterV2")(function* (
17911792 }
17921793 : undefined;
17931794 const startModel = yield* resolveModel(args.modelSelection);
1795 // Resume selects it too, since the thread may predate it or its mode changed.
1796 // `session/setPermissionProfile` would need Muse's experimental API.
1797 const permissionProfile = musePermissionProfile(args.runtimePolicy.runtimeMode);
17941798 const result = yield* request(
17951799 requestedId ? "session/resume" : "session/start",
17961800 requestedId
17971801 ? // T3 already has the transcript; skip Muse's history payload.
1798 { excludeItems: true, ...(config ? { config } : {}) }
1802 { excludeItems: true, ...(config ? { config } : {}), permissionProfile }
17991803 : {
18001804 workspaceRoot: cwd,
18011805 ...(config ? { config } : {}),
18021806 ...(startModel ? { modelId: startModel } : {}),
18031807 providerId: "meta",
18041808 approvalMode: museApprovalMode(args.runtimePolicy.runtimeMode),
1809 permissionProfile,
18051810 },
18061811 ).pipe(
18071812 Effect.catch((error) => {
packages/provider-muse/src/server/sdk.ts+9
......@@ -138,6 +138,15 @@ export function museApprovalMode(runtimeMode: RuntimeMode) {
138138 return runtimeMode === "full-access" ? "allowAll" : "promptUnmatched";
139139}
140140
141/**
142 * The permission profile `session/start` and `session/resume` select. Without
143 * one Muse applies its own default, which can be `:auto-review`, where an AI
144 * reviewer decides eligible approvals instead of the user.
145 */
146export function musePermissionProfile(runtimeMode: RuntimeMode) {
147 return runtimeMode === "full-access" ? ":unrestricted" : ":ask-me";
148}
149
141150/** The `muse serve` arguments for a host: read-only hosts get no shell, writes, or workspace trust. */
142151export function museServeArgs(
143152 options: Pick<MuseSdkHostOptions, "readOnly" | "sessionLogging" | "runtimeMode">,
packages/provider-muse/src/server/status.ts+2-2
......@@ -24,8 +24,8 @@ const MUSE_PRESENTATION = {
2424 displayName: "Muse Code",
2525 showInteractionModeToggle: false,
2626 reportsContextWindow: true,
27 // Muse has no native "accept edits" or reviewer-backed mode, so T3 offers only
28 // the two it maps directly: promptUnmatched and allowAll.
27 // Muse has no native "accept edits" mode, so T3 offers only the two it maps
28 // directly: :ask-me with promptUnmatched, and :unrestricted with allowAll.
2929 supportedRuntimeModes: ["approval-required", "full-access"],
3030} as const;
3131