Skip to content

Release v0.3.10#35

Merged
ghnmqdtg merged 62 commits into
mainfrom
stg
Jun 7, 2026
Merged

Release v0.3.10#35
ghnmqdtg merged 62 commits into
mainfrom
stg

Conversation

@ghnmqdtg

@ghnmqdtg ghnmqdtg commented Jun 7, 2026

Copy link
Copy Markdown
Collaborator

Release v0.3.10

Promotes the current staging line to main and bumps the version to 0.3.10.

Included since v0.3.9

Release

Tag v0.3.10 will be pushed after merge to trigger the signed macOS build/release workflow.

ghnmqdtg added 30 commits June 7, 2026 16:52
Races a promise against a timeout, rejecting with a TimeoutError if it
does not settle in time. Includes unit tests for resolve, reject, and
timeout paths.
The manual update check replied via mainWindow.webContents, but the
About view lives in the separate settings window, so it never received
the result (spinner stuck). Reply via event.sender instead, detect
availability with isUpdateAvailable, and emit a new
updater:update-not-available channel. Wrap both the manual and on-launch
checkForUpdates calls in a 10s timeout.
The per-card y-axis slide-up fought the panel-level slide-in, making the
Shortcuts tab feel inconsistent with the other tabs. Drop the inner
motion wrappers and rely on the shared panel transition.
- Website link points to https://knovy.app/ and opens via openExternal
  (system browser) instead of an in-app Electron window
- Update check now toasts when up to date, and on error/timeout reveals a
  Download from GitHub fallback to releases/latest
- Hold the Checking... state for a minimum duration so a near-instant
  result no longer flashes the button text and toast
- Move Send Feedback from the sidebar into the About page Links card
- Remove the conflicting inner entrance animation for consistency
- Mount a Toaster in the settings window and add the related i18n keys
Feat(about): About page improvements — website, update UX, feedback, animation
ghnmqdtg added 29 commits June 7, 2026 19:53
…uplicated

flush() populated the cleared-ids set inside the React state updater (which
runs async during render) but deleted from the buffer map synchronously right
after setTranscriptions, when the set was still empty. Buffers were never
cleared, so each rAF flush re-appended all prior tokens — the bubble showed
growing repeated text until correction:done overwrote it with the final text.
Snapshot + clear synchronously; the updater reads the immutable snapshot.
The mute/unmute effect guarded on micAudioWorkletNodeRef.current, which was
never assigned (only the system equivalent was), so the effect always
early-returned. Mic stream was never torn down on mute (OS indicator stayed
on) nor re-acquired on unmute, leaving no mic transcription after toggling
back on. Assign the ref where the worklet node is created, mirroring the
system path.
Feat: System-audio-only (mic mute) toggle
Feat: Raw transcription + streaming token-by-token correction
Resolves conflicts from merging the streaming-correction (#33) and
system-audio-only-toggle (#32) features (now on stg) into the model
download UX lifecycle work.

Key integration decisions:
- ollamaService: kept model-download's modelState/phase lifecycle and
  dropped the old JSON enhance() path (runInference/enhanceSingleSegment/
  retryInference) in favour of stg's streaming enhanceStream()/
  runStreamingCorrection(), ported from this.status/activeModel onto
  this.modelState.phase/model.
- transcriptionEnhancementService: took stg's types-only version (the
  enhancement-service class was dead code removed by streaming).
- index.ts transcription:data: merged the aiCorrection gate with the
  streaming branch — skip correction (broadcast raw) when aiCorrection is
  off OR modelState.phase !== 'ready', else stream tokens. Replaced the
  removed getStatus() check with getModelState().phase.
- index.ts updater handler: took stg's update-not-available fallback
  (from about-page improvements).
- MainControlBar/MainController: combined both feature's props
  (preparingProgress + micEnabled/onToggleMic).
- ollamaEnhanceStream.test: updated readiness setup from the removed
  `status` field to modelState.phase.

46/46 unit tests pass; no new type errors vs stg.
Feat: Model download UX & recording gate
@ghnmqdtg ghnmqdtg merged commit 66bf727 into main Jun 7, 2026
1 check 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