🤖 Bip Bop - Fusion Framework Release - #5210
Merged
Merged
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
10 times, most recently
from
August 6, 2026 08:20
a8f720c to
ca3d780
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
August 6, 2026 08:23
ca3d780 to
f6cae22
Compare
odinr
marked this pull request as ready for review
August 6, 2026 08:24
Contributor
Author
Coverage Report
File CoverageNo changed files found. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@equinor/fusion-framework-module-state@1.0.0
Major Changes
b92698d: 🚀 Introducing the Fusion Framework State Module
@equinor/fusion-framework-module-state is a new reactive state management module with built-in synchronization capabilities and comprehensive event system for enterprise-grade applications.
🗄️ Synchronization Features
📡 Event System
Comprehensive event architecture for type-safe state management:
Event Classes:
StateEntryCreatedEvent- Item creation trackingStateEntryUpdatedEvent- Item modification eventsStateEntryDeletedEvent- Item removal notificationsStateSyncChangeEvent- Sync data changesStateSyncCompleteEvent- Sync operation completionStateSyncErrorEvent- Sync failure handlingStateSyncStatusEvent- Sync status monitoringStateOperationSuccessEvent- Successful operationsStateOperationFailureEvent- Operation failure trackingEvent Organization:
StateChangeEvent- CRUD operation eventsStateSyncEvent- Synchronization eventsStateOperationEvent- Operation result events🏗️ Core Architecture
eventmodule, soonStateSync.*listeners registered via
useAppModule('event').addEventListener(...)actually fire.Patch Changes
happy-domfrom18.0.1to20.8.9(dev dependency, test environment only). Resolves Dependabot security alerts for Happy DOM VM context escape / RCE, ECMAScriptModuleCompiler code injection, and fetch cross-origin cookie disclosure.uuidfrom^11.1.1to^14.0.1, matching the version already used across the rest of the monorepo. Not directly imported by this package's source, so no breaking impact.uuidfrom^11.0.3to^11.1.1. Resolves Dependabot security alert for a missing buffer bounds check inuuidv3/v5/v6 when a buffer is provided (< 11.1.1).vitestfrom^2.0.5to^4.1.0(dev dependency, test runner only), matching the version already used across the rest of the monorepo. Resolves Dependabot security alerts for the Vitest UI server arbitrary file read/execute vulnerability (< 3.2.6).@equinor/fusion-framework-app@12.0.0
Minor Changes
b92698d: Add state management module support to @equinor/fusion-framework-app
This change introduces comprehensive state management capabilities to the app package, allowing developers to easily enable persistent state storage in their Fusion applications.
Features
enableStatefunction that configures the state module with PouchDB storage./enable-statefor the state enabler function@equinor/fusion-framework-module-stateas an optional peer dependencyUsage
Applications can now enable state management by:
The state module provides persistent storage with automatic app-key scoping and uses PouchDB for reliable data persistence across browser sessions.
Note: Applications must install
@equinor/fusion-framework-module-stateto use this functionality.Patch Changes
@equinor/fusion-framework-plugin-context-navigation@0.1.0
Minor Changes
1b9d026: Initial release of the context navigation plugin.
Adapter-based, event-driven plugin that reconciles context selection with the browser URL for portal hosts. Ships with built-in adapters for query-param, path-segment, and custom URL shapes, plus two pre-wired source strategies:
Patch Changes
vitestfrom^3.1.1to^4.1.10(dev dependency, test runner only), matching the version already used across the rest of the monorepo.@equinor/fusion-framework-react-app@13.0.0
Minor Changes
b92698d: Add state management support to
@equinor/fusion-framework-react-app/state:enableAppState- configures the app to use@equinor/fusion-framework-module-state, withapp-scoped storage key prefixing to prevent state collisions between apps.
useAppState- a persistent, cross-component-synchronized alternative touseState, backed bythe state module's storage.
useStateSyncEvents- subscribes to the app'sonStateSync.status/.change/.complete/.errorevents (dispatched when storage is configured for replication, e.g.
PouchDbSyncStorage) andreturns the most recent events, oldest first, bounded to a given
limit. Also re-exportsStateSyncEventandStateSyncEventTypefrom@equinor/fusion-framework-module-stateforconvenience.
Requires the optional peer dependency
@equinor/fusion-framework-module-state.Patch Changes
@equinor/fusion-framework-cli@15.2.4
Patch Changes
pnpm.overrides—undici(<7.29.0),brace-expansion(<2.1.4),fast-uri(<3.1.5), andpostcss(<=8.5.22) — to resolve Dependabot security alerts. These packages bundle their dependency tree (rollup/vite build) and are therefore always changesetted for dependency changes, even when only the root lockfile resolution moves.@equinor/fusion-framework-cli-plugin-ai-base@4.0.8
Patch Changes
@equinor/fusion-framework-cli-plugin-ai-chat@3.0.8
Patch Changes
@equinor/fusion-framework-cli-plugin-ai-index@3.0.9
Patch Changes
@equinor/fusion-framework-dev-portal@9.0.0
Patch Changes
1b9d026: Integrate
@equinor/fusion-framework-plugin-context-navigationinto the dev portal.Portal context-to-URL reconciliation is now handled by
@equinor/fusion-framework-plugin-context-navigation, replacing the ad-hoc hook-based approach.0d9d876: Internal: bump transitive dependencies bundled into these packages' build output via
pnpm.overrides—undici(<7.29.0),brace-expansion(<2.1.4),fast-uri(<3.1.5), andpostcss(<=8.5.22) — to resolve Dependabot security alerts. These packages bundle their dependency tree (rollup/vite build) and are therefore always changesetted for dependency changes, even when only the root lockfile resolution moves.Updated dependencies [b92698d]
Updated dependencies [593a44b]
Updated dependencies [1b9d026]
Updated dependencies [1b9d026]
Updated dependencies [1b9d026]
Updated dependencies [1b9d026]
Updated dependencies [0d9d876]
@equinor/fusion-framework-dev-server@2.0.18
Patch Changes
pnpm.overrides—undici(<7.29.0),brace-expansion(<2.1.4),fast-uri(<3.1.5), andpostcss(<=8.5.22) — to resolve Dependabot security alerts. These packages bundle their dependency tree (rollup/vite build) and are therefore always changesetted for dependency changes, even when only the root lockfile resolution moves.@equinor/fusion-framework@8.0.13
Patch Changes
@equinor/fusion-framework-module-analytics@3.0.5
Patch Changes
@equinor/fusion-framework-module-context@8.0.2
Patch Changes
1b9d026: Move URL-based initial context resolution to the context-navigation plugin.
The context module's
resolveInitialContextno longer resolves context from the URL path — that responsibility has been moved to@equinor/fusion-framework-plugin-context-navigationat the portal level. This decouples URL concerns from the context module.Changes:
resolveInitialContextno longer accepts theoptionsparameter with path resolution config.versionproperty toIContextProviderinterface (non-breaking).@ts-ignoredirectives on compatibility assignments to avoid a breaking API signature change in this release.Migration: Apps do not need to change their code. Portal hosts should enable the
@equinor/fusion-framework-plugin-context-navigationplugin to restore URL-based context resolution behavior.@equinor/fusion-framework-module@6.1.2
Patch Changes
reduceoperator increateModuleConfigsso the accumulator type is no longer inferred asunknownunder TypeScript 7's stricter inference, which broke builds for consumers with composite project references.@equinor/fusion-framework-module-navigation@7.0.7
Patch Changes
1b9d026: Fix basename boundary matching and trailing-slash handling.
normalizePathnameno longer strips trailing slashes — only collapses consecutive slashes. Trailing slash is now preserved as part of the path identity._isWithinBasenameScopeuses a path-boundary check (pathname === basename || pathname.startsWith(basename + '/')) to prevent false positives from apps with overlapping name prefixes (e.g./apps/my-appno longer matches/apps/my-app-other/foo)._localizePathfalls back to'/'when the basename-stripped pathname is empty.1b9d026: Security Fix: Replaced regex-based pathname normalization with iterative approach to prevent potential ReDoS (Regular Expression Denial of Service) vulnerability when processing user-controlled basename values.
The
normalizePathnamefunction now uses a simple character-by-character scan instead of/\/+/gregex, ensuring O(n) linear time complexity even with pathological input containing thousands of consecutive slashes.This addresses CodeQL security alert: "Polynomial regular expression used on uncontrolled data"
Related: feat(context-navigation): add plugin package, dev portal integration, and plugin docs #4751
@equinor/fusion-framework-module-telemetry@7.0.2
Patch Changes
@equinor/fusion-framework-module-widget@16.0.5
Patch Changes
@equinor/fusion-framework-vite-plugin-spa@4.0.16
Patch Changes
@equinor/fusion-framework-cookbook-app-react-state@1.0.0
Major Changes
b92698d: Merged the
app-react-stateandapp-react-state-replicationcookbooks into one comprehensive@equinor/fusion-framework-cookbook-app-react-statecookbook covering the full@equinor/fusion-framework-module-statesurface:useAppStatefundamentals - boolean, string, and optional state with nodefaultValue- using the state module's own zero-config default storage.replication via
PouchDbSyncStoragewhenFUSION_SPA_COUCHDB_URLis set (see.env.example)app-state-with-replicationmodule (a hand-rolledStateProvider/sync-event reimplementation) with the framework's ownPouchDbSyncStorageandnative
onStateSync.status/onStateSync.change/onStateSync.complete/onStateSync.errorevents, dispatched through the app's
eventmodule.predev's automatic CouchDB startup -pnpm couchdb:startis now an explicit, optionalstep for trying the replication demo.
SyncStatusMonitor/SyncEventList/SyncStatusIndicatorcomponents now consume theframework's
useStateSyncEventshook (@equinor/fusion-framework-react-app/state) instead of acookbook-local hook/Context reimplementation of the same subscription logic.
ProfileManagerfrom 10 files (a@equinor/fusion-observablereducer, actioncreators, and seven single-field presentational components) down to a single component using
plain
useAppState+ immutable object spreads, matching the pattern already used by theBasicsandTodospages - and dropped the now-unused@equinor/fusion-observabledependency.console.logs and dead types (SyncStatus,ReplicationSettings) leftover from the pre-merge, hand-rolled sync implementation.
Patch Changes
@equinor/fusion-framework-cookbook-app-react-ag-grid@2.0.11
Patch Changes
@equinor/fusion-framework-cookbook-app-react-context@5.0.6
Patch Changes
@equinor/fusion-framework-cookbook-app-react-context-custom-error@5.0.6
Patch Changes
@equinor/fusion-framework-cookbook-app-react-feature-flag@2.0.5
Patch Changes
poc-portal@1.1.93
Patch Changes
portal@0.1.78
Patch Changes
portal-analytics@0.4.46
Patch Changes