fix(plugins): keep empty session extension pins authoritative · openclaw/openclaw@0fb0c2c
mushuiyu886
·
2026-06-16
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -198,7 +198,7 @@ describe("plugin runtime route registry", () => {
|
198 | 198 | expect(isPluginRegistryRetired(startupRegistry)).toBe(true); |
199 | 199 | }); |
200 | 200 | |
201 | | -it("falls through from an empty pinned session extension registry to the active surface", () => { |
| 201 | +it("keeps empty pinned session extension registries authoritative over active extensions", () => { |
202 | 202 | const startupRegistry = createEmptyPluginRegistry(); |
203 | 203 | const laterRegistry = createRegistryWithSessionExtension("later", "presence"); |
204 | 204 | |
@@ -207,8 +207,9 @@ describe("plugin runtime route registry", () => {
|
207 | 207 | const sessionExtensionVersionBeforeSwap = getActivePluginSessionExtensionRegistryVersion(); |
208 | 208 | setActivePluginRegistry(laterRegistry); |
209 | 209 | |
210 | | -expect(getActivePluginSessionExtensionRegistry()).toBe(laterRegistry); |
211 | | -expect(getActivePluginSessionExtensionRegistryVersion()).not.toBe( |
| 210 | +expect(getActivePluginSessionExtensionRegistry()).toBe(startupRegistry); |
| 211 | +expect(getActivePluginSessionExtensionRegistry()?.sessionExtensions).toHaveLength(0); |
| 212 | +expect(getActivePluginSessionExtensionRegistryVersion()).toBe( |
212 | 213 | sessionExtensionVersionBeforeSwap, |
213 | 214 | ); |
214 | 215 | }); |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -353,10 +353,6 @@ export function requireActivePluginChannelRegistry(): PluginRegistry {
|
353 | 353 | return created; |
354 | 354 | } |
355 | 355 | |
356 | | -function countSessionExtensionSurface(registry: PluginRegistry | null): number { |
357 | | -return registry?.sessionExtensions?.length ?? 0; |
358 | | -} |
359 | | - |
360 | 356 | export function pinActivePluginSessionExtensionRegistry(registry: PluginRegistry) { |
361 | 357 | const previousRegistry = asPluginRegistry(state.sessionExtension.registry); |
362 | 358 | installSurfaceRegistry(state.sessionExtension, registry, true); |
@@ -380,15 +376,7 @@ export function releasePinnedPluginSessionExtensionRegistry(registry?: PluginReg
|
380 | 376 | } |
381 | 377 | |
382 | 378 | export function getActivePluginSessionExtensionRegistry(): PluginRegistry | null { |
383 | | -const surfaceRegistry = asPluginRegistry(state.sessionExtension.registry ?? state.activeRegistry); |
384 | | -if (!state.sessionExtension.pinned) { |
385 | | -return surfaceRegistry; |
386 | | -} |
387 | | -const activeRegistry = asPluginRegistry(state.activeRegistry); |
388 | | -return countSessionExtensionSurface(surfaceRegistry) > 0 || |
389 | | -countSessionExtensionSurface(activeRegistry) === 0 |
390 | | - ? surfaceRegistry |
391 | | - : activeRegistry; |
| 379 | +return asPluginRegistry(state.sessionExtension.registry ?? state.activeRegistry); |
392 | 380 | } |
393 | 381 | |
394 | 382 | export function getActivePluginSessionExtensionRegistryVersion(): number { |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。