@@ -1317,6 +1317,32 @@ describe("resolveGatewayStartupPluginIds", () => {
|
1317 | 1317 | }), |
1318 | 1318 | ["demo-channel", "browser", "voice-call", "memory-core", "demo-global-sidecar"], |
1319 | 1319 | ], |
| 1320 | +[ |
| 1321 | +"includes explicitly enabled external channel plugins without channel config", |
| 1322 | +{ |
| 1323 | +channels: {}, |
| 1324 | +plugins: { |
| 1325 | +entries: { |
| 1326 | +"external-env-channel-plugin": { enabled: true }, |
| 1327 | +}, |
| 1328 | +}, |
| 1329 | +} as OpenClawConfig, |
| 1330 | +["browser", "external-env-channel-plugin", "memory-core"], |
| 1331 | +], |
| 1332 | +[ |
| 1333 | +"does not start explicitly enabled external channel plugins when every channel is disabled", |
| 1334 | +{ |
| 1335 | +channels: { |
| 1336 | +"external-env-channel": { enabled: false }, |
| 1337 | +}, |
| 1338 | +plugins: { |
| 1339 | +entries: { |
| 1340 | +"external-env-channel-plugin": { enabled: true }, |
| 1341 | +}, |
| 1342 | +}, |
| 1343 | +} as OpenClawConfig, |
| 1344 | +["browser", "memory-core"], |
| 1345 | +], |
1320 | 1346 | [ |
1321 | 1347 | "keeps default-enabled startup sidecars when a restrictive allowlist permits them", |
1322 | 1348 | createStartupConfig({ |
@@ -1336,6 +1362,32 @@ describe("resolveGatewayStartupPluginIds", () => {
|
1336 | 1362 | expectStartupPluginIdsCase({ config, expected }); |
1337 | 1363 | }); |
1338 | 1364 | |
| 1365 | +it("matches explicitly disabled channel ids case-insensitively", () => { |
| 1366 | +const registry = createManifestRegistryFixture(); |
| 1367 | +useManifestRegistryFixture({ |
| 1368 | + ...registry, |
| 1369 | +plugins: registry.plugins.map((plugin) => |
| 1370 | +plugin.id === "external-env-channel-plugin" |
| 1371 | + ? { ...plugin, channels: ["External-Env-Channel"] } |
| 1372 | + : plugin, |
| 1373 | +), |
| 1374 | +}); |
| 1375 | + |
| 1376 | +expectStartupPluginIdsCase({ |
| 1377 | +config: { |
| 1378 | +channels: { |
| 1379 | +"external-env-channel": { enabled: false }, |
| 1380 | +}, |
| 1381 | +plugins: { |
| 1382 | +entries: { |
| 1383 | +"external-env-channel-plugin": { enabled: true }, |
| 1384 | +}, |
| 1385 | +}, |
| 1386 | +} as OpenClawConfig, |
| 1387 | +expected: ["browser", "memory-core"], |
| 1388 | +}); |
| 1389 | +}); |
| 1390 | + |
1339 | 1391 | it("keeps effective-only bundled sidecars behind restrictive allowlists", () => { |
1340 | 1392 | const rawConfig = createStartupConfig({ |
1341 | 1393 | allowPluginIds: ["browser"], |
|