Skip to content

feat: loading ux v1.3.3#5

Merged
joaner merged 3 commits into
ioai-tech:mainfrom
joaner:feat/loading-ux-v1.3.3
May 27, 2026
Merged

feat: loading ux v1.3.3#5
joaner merged 3 commits into
ioai-tech:mainfrom
joaner:feat/loading-ux-v1.3.3

Conversation

@joaner
Copy link
Copy Markdown
Contributor

@joaner joaner commented May 27, 2026

Description

Release v1.3.3 with a clearer file-open loading experience and more reliable worker startup in dev.

  • In-player loading overlay: While a recording is opening, show a centered overlay on the viewer (spinner, source name, preparing message) instead of blocking the welcome screen. Loading UI is shared via new LoadingOverlay and removed from WelcomeScreen.
  • Cancellable worker init: WorkerSerializedSource.initialize() can be aborted; exposes WorkerSourceCancelledError / isWorkerSourceCancelledError(). RosViewerImpl tears down in-flight init when the user cancels or switches files, without surfacing a false error.
  • Dev first-open stability: Pre-bundle playback-worker transitive deps in Vite optimizeDeps.include so opening a dataset in dev no longer triggers “new dependencies optimized” reloads that bounce the app back to home.
  • Sidebar: Minor loading-state polish while a source is preparing.
  • Tests: Unit coverage for initialize cancellation and worker error paths in WorkerSerializedSource.test.ts.
  • Version: 1.3.21.3.3.

Motivation / related issue

Opening large MCAP/bag/HDF5 files felt abrupt: the welcome screen disappeared with little feedback, and cancelling or switching files during worker init could leave confusing state. In Vite dev, the first open after adding parser dependencies could trigger a full-page reload.

Follow-up to the v1.3.2 release (HDF5 1.0.0 / E2E fixtures); no linked issue.

Type of change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing behavior to change)
  • Documentation update
  • Refactor / internal cleanup (no behavior change)

Checklist

  • npm run lint passes with no errors
  • npm test passes (unit tests)
  • npm run build and npm run build:lib succeed
  • New behavior is covered by tests (or explain why tests aren't applicable)
  • Documentation updated (README, API.md, EMBEDDING.md) if the public API changed
  • Breaking change: all affected call sites updated and migration path described in PR description

API compatibility

No changes to src/entrypoints/index.ts exports.

Internal worker layer only (additive, non-breaking for embedders):

  • WorkerSourceCancelledError and isWorkerSourceCancelledError() — used when user cancels load; embedders that call worker sources directly may catch this instead of treating it as a failure.
  • No changes to Player, PlaybackControlsApi, or public React component props.

Screenshots / recordings

joaner added 3 commits May 27, 2026 18:10
…r init

Show the player shell with a loading overlay and skeleton placeholders instead of the welcome screen during open, add sidebar topic skeletons, and remove the fixed worker initialize timeout so large remote files can load until the user cancels.
Include necessary parser and decompression dependencies in the Vite configuration to enhance the loading experience by preventing unnecessary reloads when opening datasets in development.
@joaner joaner merged commit dea320e into ioai-tech:main May 27, 2026
2 checks passed
@joaner joaner deleted the feat/loading-ux-v1.3.3 branch June 4, 2026 03:37
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