github epicenter-os/epicenter v4.0.0
App v4.0.0

latest releases: v7.4.1, v7.4.0, v7.3.1...
one month ago

Whispering 4.0 Changelog (Complete Overhaul, Svelte 5 Migration, Extension Messaging Rewrite)

App

The Whispering website and desktop apps have had a facelift:

  • Recordings Page: The app now features a dedicated recordings page, allowing users to view all recordings in a data table format powered by tanstack-table and make necessary edits.
  • Retry Transcriptions: Users can now retry transcriptions that may have failed, addressing a highly requested feature.
  • Error Handling: Rewritten logic to incorporate the Effect.ts library to capture errors and bubble them up as toasts to the users.
  • Notifications: Notifications indicate status of transcriptions and recording status via Tauri's notifications or Chrome's notification API via extension background service worker.
  • Performance Enhancements: Implemented general performance improvements for a smoother experience.
  • Tray Icon: Tray icon in background or extension icons indicates status of recording.

Desktop specific features:

  • Global Keyboard Shortcut: Revamped global keyboard shortcut that functions reliably.
  • Bug Fixes: Resolved the issue where the app would automatically display every time it was activated.
  • Website Features: All website features ported to desktop. It is now a strict superset of features.
  • Stable Paste: Paste after transcription feature is stable with the help of enigo crate in Rust.

Website specific features:

  • Extension Communication: The website will detect and attempt to send messages to the Whispering extension, centralizing notification logic. More on that below.

Extension

  • Extension API Overhaul: Removed per-page content scripts for recording in favor of communicating with the Whispering.com tab for actual recording and settings. This simplifies the logic tremendously. The settings are shared and there is exactly one source of truth.
    • The website attaches toggle recording and cancel recording functions to the window object. The content script in the main world can trigger the window.toggleRecording or window.cancelRecording functions.
    • On trigger, the extension ensures there is always exactly one active, undiscardable Whispering tab that is pinned in the background to conduct communications and minimize confusion.

Technology Stack Updates

  • Migration to Svelte 5: Migrated the entire app to Svelte 5, enhancing readability and performance.
  • Chrome Extension Rebuild: Rebuilt the Chrome extension using React due to the lack of support for Svelte 5. The majority of the extension remains logic-based, with minimal React scripts.

Don't miss a new epicenter release

NewReleases is sending notifications on new releases.