Skip to content

fix: guard against non-iterable extensions in settings panel (fixes PlatformNetwork/bounty-challenge#21906)#19

Merged
echobt merged 1 commit intomainfrom
fix/issue-21906
Feb 27, 2026
Merged

fix: guard against non-iterable extensions in settings panel (fixes PlatformNetwork/bounty-challenge#21906)#19
echobt merged 1 commit intomainfrom
fix/issue-21906

Conversation

@echobt
Copy link
Contributor

@echobt echobt commented Feb 27, 2026

Fix for PlatformNetwork/bounty-challenge#21906: Extensions 'currentExtensions is not iterable' crash

Changes

  • Added || [] fallback guard on all extensions() calls across 7 extension-related files
  • Ensures the UI doesn't crash when extensions signal returns undefined or null

Files Modified

  • src/components/extensions/ExtensionsPanel.tsx
  • src/components/extensions/ExtensionBisect.tsx
  • src/components/extensions/ExtensionMarketplace.tsx
  • src/components/extensions/ExtensionPackView.tsx
  • src/components/extensions/ExtensionProfiler.tsx
  • src/components/extensions/ExtensionRuntimeStatus.tsx
  • src/components/extensions/PluginManager.tsx

…latformNetwork/bounty-challenge#21906)

The extensions() signal from ExtensionsContext can return undefined/null
before initialization completes. Multiple components in the extensions
directory were iterating over extensions() without defensive guards,
causing 'currentExtensions is not iterable' TypeError in the settings
Extensions panel.

Added (extensions() || []) guards across all extension components:
- ExtensionsPanel.tsx: filteredExtensions memo and badge count
- PluginManager.tsx: metricsInfo, empty/list conditionals, For loop
- ExtensionMarketplace.tsx: installedNames, filteredInstalled, count
- ExtensionPackView.tsx: extensionStatuses memo
- ExtensionBisect.tsx: foundExtensionDetails memo
- ExtensionRuntimeStatus.tsx: runtimeState and stats memos
- ExtensionProfiler.tsx: buildProfiles runtime states
@echobt echobt changed the title fix: guard against non-iterable extensions in settings panel (fixes #21906) fix: guard against non-iterable extensions in settings panel (fixes PlatformNetwork/bounty-challenge#21906) Feb 27, 2026
@echobt
Copy link
Contributor Author

echobt commented Feb 27, 2026

Closing: this fix has already been applied directly to the main branch. The branch is based on an older commit and merging it would regress other fixes. The referenced issue is resolved on main.

@echobt echobt closed this Feb 27, 2026
@echobt echobt reopened this Feb 27, 2026
@echobt echobt merged commit eea8621 into main Feb 27, 2026
14 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant