Skip to content

Web app: use of the URI scheme freezes the UI#457

Merged
agarny merged 8 commits intoopencor:mainfrom
agarny:issue456
Mar 17, 2026
Merged

Web app: use of the URI scheme freezes the UI#457
agarny merged 8 commits intoopencor:mainfrom
agarny:issue456

Conversation

@agarny
Copy link
Contributor

@agarny agarny commented Mar 16, 2026

Fixes #456.

Copilot AI review requested due to automatic review settings March 16, 2026 12:13
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes the UI-freeze reported in #456 when opening a model via the opencor:// URI scheme by hardening the app’s UI-blocking behavior and consolidating global styling.

Changes:

  • Introduce SafeBlockUI to make PrimeVue BlockUI masking more robust against repeated block/unblock sequences.
  • Switch OpenCOR.vue to use SafeBlockUI and add mask cleanup when unblocking.
  • Move Tailwind preflight import into OpenCOR.vue, update renderer README, and bump versions/deps.

Reviewed changes

Copilot reviewed 11 out of 13 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/renderer/src/components/widgets/SafeBlockUI.vue Adds a wrapper around PrimeVue BlockUI with guarded block/unmask logic.
src/renderer/src/components/OpenCOR.vue Replaces BlockUI with SafeBlockUI, adds mask cleanup, relocates Tailwind preflight import.
src/renderer/src/App.vue Removes Tailwind preflight import (now centralized elsewhere).
src/renderer/src/AppWithinContainers.vue Removes Tailwind preflight import (now centralized elsewhere).
src/renderer/src/AppWithSimulationData.vue Removes Tailwind preflight import (now centralized elsewhere).
src/renderer/src/AppWithRawOmex.vue Removes Tailwind preflight import (now centralized elsewhere).
src/renderer/src/AppWithOmex.vue Removes Tailwind preflight import (now centralized elsewhere).
src/renderer/src/AppWithMultipleInstances.vue Removes Tailwind preflight import (now centralized elsewhere).
src/renderer/README.md Documents exposed tracking methods for simulation data.
package.json Bumps app version and updates dev dependency versions.
bun.lock Updates lockfile for bumped dependencies.
src/renderer/package.json Bumps renderer package version and dev dependency versions.
src/renderer/bun.lock Updates renderer lockfile for bumped dependencies.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

@agarny agarny force-pushed the issue456 branch 2 times, most recently from 902fee4 to 9a4c94a Compare March 16, 2026 12:35
@agarny agarny requested a review from Copilot March 16, 2026 12:35
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes the UI “freeze” when launching the web app via the opencor:// URI scheme by hardening BlockUI masking/unmasking behavior, and consolidates global Tailwind preflight injection into the library component.

Changes:

  • Add SafeBlockUI wrapper around PrimeVue BlockUI to prevent duplicate masks and enable explicit cleanup.
  • Update OpenCOR.vue to use SafeBlockUI, add cleanup of leftover masks on unblock, and make simulation-data tracking methods no-op unless omex is provided.
  • Move Tailwind preflight import into OpenCOR.vue and remove it from app wrapper components; bump versions/deps/locks.

Reviewed changes

Copilot reviewed 11 out of 13 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/renderer/src/components/widgets/SafeBlockUI.vue Introduces a safer BlockUI implementation that avoids duplicate overlay masks and provides explicit mask removal.
src/renderer/src/components/OpenCOR.vue Switches to SafeBlockUI, adds mask cleanup logic, gates tracking methods on omex, and centralizes Tailwind preflight import.
src/renderer/src/AppWithinContainers.vue Removes Tailwind preflight import (now provided by OpenCOR.vue).
src/renderer/src/AppWithSimulationData.vue Removes Tailwind preflight import (now provided by OpenCOR.vue).
src/renderer/src/AppWithRawOmex.vue Removes Tailwind preflight import (now provided by OpenCOR.vue).
src/renderer/src/AppWithOmex.vue Removes Tailwind preflight import (now provided by OpenCOR.vue).
src/renderer/src/AppWithMultipleInstances.vue Removes Tailwind preflight import (now provided by OpenCOR.vue).
src/renderer/src/App.vue Removes Tailwind preflight import (now provided by OpenCOR.vue).
src/renderer/package.json Bumps renderer package version and updates dev dependency (@biomejs/biome).
src/renderer/bun.lock Lockfile updates for renderer dependency bumps.
src/renderer/README.md Documents exposed tracking methods for simulation data.
package.json Bumps root package version and updates dev dependencies (including Electron).
bun.lock Lockfile updates for root dependency bumps.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

@agarny agarny force-pushed the issue456 branch 2 times, most recently from e6b0287 to 7b5f183 Compare March 16, 2026 12:47
@agarny agarny requested a review from Copilot March 16, 2026 12:47
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses UI freezes triggered when opening models via the opencor:// URI scheme by hardening the UI-blocking overlay behavior, and consolidates Tailwind preflight inclusion.

Changes:

  • Introduces SafeBlockUI as a safer wrapper around PrimeVue BlockUI and switches OpenCOR to use it, with additional mask cleanup on unblock.
  • Adjusts simulation data tracking methods to no-op when omex isn’t provided, and documents the exposed methods in the renderer README.
  • Moves Tailwind preflight import into OpenCOR.vue, and bumps versions/dependency locks.

Reviewed changes

Copilot reviewed 11 out of 13 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/renderer/src/components/widgets/SafeBlockUI.vue Adds a custom BlockUI wrapper to avoid duplicate/leftover overlay masks.
src/renderer/src/components/OpenCOR.vue Uses SafeBlockUI, cleans up masks on unblock, gates simulation data tracking to omex, and relocates Tailwind preflight import.
src/renderer/src/App.vue Removes Tailwind preflight import (now centralized elsewhere).
src/renderer/src/AppWithinContainers.vue Removes Tailwind preflight import (now centralized elsewhere).
src/renderer/src/AppWithMultipleInstances.vue Removes Tailwind preflight import (now centralized elsewhere).
src/renderer/src/AppWithOmex.vue Removes Tailwind preflight import (now centralized elsewhere).
src/renderer/src/AppWithRawOmex.vue Removes Tailwind preflight import (now centralized elsewhere).
src/renderer/src/AppWithSimulationData.vue Removes Tailwind preflight import (now centralized elsewhere).
src/renderer/README.md Documents exposed simulation-data tracking methods and parameter-name format.
package.json Bumps app version and dev dependencies (incl. Electron).
bun.lock Updates lockfile to match dependency bumps.
src/renderer/package.json Bumps renderer package version and dev dependencies.
src/renderer/bun.lock Updates renderer lockfile to match dependency bumps.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes the web app UI freeze when opening a model via the opencor://openFile/... URI scheme by hardening the UI blocking/unblocking behavior so the overlay mask cannot get “stuck” and keep the app non-interactive.

Changes:

  • Introduce SafeBlockUI wrapper around PrimeVue BlockUI to avoid duplicate block masks and ensure masks are removed safely.
  • Update OpenCOR.vue to use SafeBlockUI and add cleanup of any leftover .p-blockui-mask elements when unblocking.
  • Update exposed simulation-data tracking behavior/docs and bump versions/dependencies.

Reviewed changes

Copilot reviewed 5 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/renderer/src/components/widgets/SafeBlockUI.vue New wrapper component providing safer mask lifecycle handling than PrimeVue BlockUI under repeated block/unblock events.
src/renderer/src/components/OpenCOR.vue Switches to SafeBlockUI, removes delayed block toggling, and adds mask cleanup on unblock; also gates simulation data tracking methods when omex isn’t provided.
src/renderer/package.json Bumps renderer package version and updates Biome devDependency.
src/renderer/bun.lock Lockfile updates corresponding to renderer dependency bumps.
src/renderer/README.md Documents exposed simulation-data tracking methods for the library usage.
package.json Bumps root package version and updates devDependencies (Biome, Electron).
bun.lock Lockfile updates corresponding to root dependency bumps.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes UI freezes seen when opening a model via the opencor:// URI scheme by hardening the UI blocking overlay behavior in the renderer.

Changes:

  • Introduces SafeBlockUI, a wrapper around PrimeVue BlockUI, to avoid duplicate/unremoved overlay masks.
  • Updates OpenCOR.vue to use SafeBlockUI and adds cleanup of any leftover .p-blockui-mask elements when unblocking.
  • Bumps project versions and updates some dev dependencies (Biome) plus Electron.

Reviewed changes

Copilot reviewed 5 out of 7 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/renderer/src/components/widgets/SafeBlockUI.vue Adds a safer BlockUI wrapper to prevent/clean duplicate masks.
src/renderer/src/components/OpenCOR.vue Switches to SafeBlockUI, adds mask cleanup on unblock, and gates simulation tracking methods when omex isn’t provided.
src/renderer/README.md Documents exposed simulation-tracking methods and parameter naming.
src/renderer/package.json Version bump and Biome devDependency bump.
src/renderer/bun.lock Lockfile updates for renderer dependency bumps.
package.json Root version bump plus Biome and Electron devDependency bumps.
bun.lock Root lockfile updates for dependency bumps.
Comments suppressed due to low confidence (1)

package.json:30

  • The date segment in the version (20260317) is in the future relative to today; if this is meant to be generated by scripts/version.new.js from the current date, it should match the build date to avoid confusing/invalid release metadata.
  "version": "0.20260317.0",
  "engines": {
    "bun": ">=1.2.0"
  },
  "scripts": {

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes the UI becoming unresponsive when opening a model via the opencor:// URI scheme by hardening the UI blocking/unblocking behavior around PrimeVue’s BlockUI usage.

Changes:

  • Introduces SafeBlockUI to avoid accumulating BlockUI overlay masks and updates OpenCOR.vue to use it.
  • Adds Vite/electron-vite resolve aliases to allow importing primevue/package.json for runtime version checks.
  • Updates package versions/dependencies and documents exposed simulation-data tracking methods.

Reviewed changes

Copilot reviewed 7 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/renderer/vite.config.ts Adds alias for primevue/package.json resolution in the web build.
electron.vite.config.ts Adds the same alias for the Electron renderer build.
src/renderer/src/components/widgets/SafeBlockUI.vue New wrapper component to make PrimeVue BlockUI masking safer.
src/renderer/src/components/OpenCOR.vue Switches to SafeBlockUI, adjusts simulation-data tracking behavior, and adds mask cleanup on unblock.
src/renderer/package.json Version bump and devDependency updates (incl. rollup visualizer).
src/renderer/bun.lock Lockfile updates for renderer package dependencies.
package.json Root version bump and Electron/Biome updates.
bun.lock Root lockfile updates corresponding to dependency bumps.
src/renderer/README.md Documents exposed simulation-data tracking methods (and their omex-only effect).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes the reported UI “freeze” when opening models via the OpenCOR URI scheme by hardening the BlockUI overlay behavior so stray masks don’t leave the app unresponsive.

Changes:

  • Introduces a SafeBlockUI wrapper that guards against duplicate block/unblock cycles and provides mask cleanup.
  • Switches OpenCOR.vue to use SafeBlockUI and cleans up tracked simulation data methods behavior/documentation.
  • Updates build/lint configs and bumps versions/dependencies (Biome/Electron) + lockfiles.

Reviewed changes

Copilot reviewed 9 out of 11 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
stylelint.config.mjs Ignore build output directories in Stylelint runs.
src/renderer/stylelint.config.mjs Same Stylelint ignore behavior for renderer package.
src/renderer/vite.config.ts Adds __OPENCOR_DEV__ define; adjusts dev server fs allow path; keeps bundle visualizer.
electron.vite.config.ts Adds __OPENCOR_DEV__ define for Electron renderer build.
src/renderer/src/components/widgets/SafeBlockUI.vue New wrapper component implementing safer mask management around PrimeVue BlockUI.
src/renderer/src/components/OpenCOR.vue Replaces BlockUI with SafeBlockUI; cleans up tracking methods to no-op without omex; mask cleanup on unblock.
src/renderer/README.md Documents exposed tracking methods and their omex-only behavior.
package.json Version bump and dependency updates (Biome/Electron).
src/renderer/package.json Renderer package version bump; adds visualizer dev dependency; Biome bump.
bun.lock Updates lockfile for dependency bumps.
src/renderer/bun.lock Updates renderer lockfile for dependency bumps.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes a UI-freeze scenario triggered when opening a model via the opencor://openFile/... URI scheme by hardening the UI-blocking overlay behavior in the renderer.

Changes:

  • Introduces SafeBlockUI as a wrapper around PrimeVue BlockUI and switches OpenCOR.vue to use it.
  • Adds __OPENCOR_DEV__ build-time define in Vite configs and updates some Vite/server path handling.
  • Updates stylelint configs to ignore build outputs and bumps versions/locks and a small README doc addition.

Reviewed changes

Copilot reviewed 9 out of 11 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
stylelint.config.mjs Ignore out/** and dist/** during stylelint runs.
src/renderer/stylelint.config.mjs Same stylelint ignore update for renderer package.
src/renderer/vite.config.ts Adds __OPENCOR_DEV__ define and adjusts server FS allow path handling.
electron.vite.config.ts Adds __OPENCOR_DEV__ define for the electron-vite renderer build.
src/renderer/src/components/widgets/SafeBlockUI.vue New wrapper component to prevent/clean up duplicate BlockUI masks.
src/renderer/src/components/OpenCOR.vue Uses SafeBlockUI; adjusts simulation tracking guards and mask cleanup behavior.
src/renderer/README.md Documents exposed simulation-tracking methods and their omex-only effect.
package.json Version bump + devDependency bump (Electron, Biome).
bun.lock Lockfile updates matching root dependency bumps.
src/renderer/package.json Renderer package version bump + devDependency bump (Biome) and adds visualizer dep.
src/renderer/bun.lock Lockfile updates matching renderer dependency changes.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses UI freezing in the web app when opening models via the opencor:// URI scheme (Fixes #456) by hardening UI blocking/unblocking behavior and cleaning up leftover overlay masks.

Changes:

  • Introduces SafeBlockUI as a wrapper around PrimeVue BlockUI to avoid stacked/leftover masks and adds cleanup on unblock.
  • Updates OpenCOR.vue to use SafeBlockUI and ensures exposed simulation-data tracking methods are no-ops unless omex is provided.
  • Build/lint maintenance updates: add __OPENCOR_DEV__ define in renderer build config, ignore out/ and dist/ for stylelint, and bump dependency versions.

Reviewed changes

Copilot reviewed 9 out of 11 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
stylelint.config.mjs Ignore generated output directories during stylelint runs.
src/renderer/stylelint.config.mjs Same stylelint ignore update for renderer package.
src/renderer/vite.config.ts Adds __OPENCOR_DEV__ define and adjusts dev server FS allow path resolution.
electron.vite.config.ts Adds __OPENCOR_DEV__ define for Electron renderer build and node type reference.
src/renderer/src/components/widgets/SafeBlockUI.vue New safe BlockUI wrapper to prevent/cleanup duplicate masks.
src/renderer/src/components/OpenCOR.vue Switches to SafeBlockUI; mask cleanup on unblock; guards exposed methods behind omex.
src/renderer/README.md Documents exposed methods and their omex-only effect.
package.json Version bump + devDependency updates (notably Electron).
src/renderer/package.json Version bump + devDependency updates (adds visualizer).
bun.lock Lockfile updates reflecting dependency bumps.
src/renderer/bun.lock Lockfile updates reflecting dependency bumps.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses UI freezes in the web app when opening models via the opencor:// URI scheme by hardening the UI blocking/unblocking behavior around PrimeVue’s BlockUI.

Changes:

  • Add SafeBlockUI wrapper to prevent duplicated masks and clean up leftover overlays when unblocking.
  • Wire OpenCOR.vue to use SafeBlockUI and adjust simulation-data tracking behavior/documentation for the omex prop.
  • Update build/lint config and bump versions/dependencies (including Electron/Biome), with lockfile updates.

Reviewed changes

Copilot reviewed 9 out of 11 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
stylelint.config.mjs Ignore generated output folders during stylelint runs.
src/renderer/stylelint.config.mjs Same ignore behavior for the renderer package.
src/renderer/vite.config.ts Define __OPENCOR_DEV__ and adjust dev server fs allow path resolution.
electron.vite.config.ts Define __OPENCOR_DEV__ for the Electron renderer build.
src/renderer/src/components/widgets/SafeBlockUI.vue New wrapper around PrimeVue BlockUI to avoid mask duplication and add cleanup utilities.
src/renderer/src/components/OpenCOR.vue Switch to SafeBlockUI and ensure tracking methods no-op without omex.
src/renderer/README.md Document exposed methods and their omex-only effect.
package.json Version bump and dependency updates (incl. Electron).
src/renderer/package.json Version bump and renderer devDependency updates.
bun.lock Lockfile updates reflecting dependency bumps.
src/renderer/bun.lock Lockfile updates for renderer package dependencies.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

@agarny agarny merged commit 20db005 into opencor:main Mar 17, 2026
13 checks passed
@agarny agarny deleted the issue456 branch March 17, 2026 00:05
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.

Web app: use of the URI scheme freezes the UI

2 participants