Skip to content

Add live waveform and active status pill to dictation panel#474

Open
jrschumacher wants to merge 12 commits intoOpenWhispr:mainfrom
jrschumacher:main
Open

Add live waveform and active status pill to dictation panel#474
jrschumacher wants to merge 12 commits intoOpenWhispr:mainfrom
jrschumacher:main

Conversation

@jrschumacher
Copy link
Contributor

Summary

  • add a live waveform visualizer for active dictation
  • add an optional floating icon setting that expands recording/transcribing into a pill with text
  • resize the dictation panel for the active pill state and wire the setting through the app store

Notes

  • the ESLint run still reports an existing unrelated warning in SettingsPage about a missing useEffect dependency

CleanShot 2026-03-18 at 07 18 40

jrschumacher and others added 12 commits March 16, 2026 17:58
… sync (#2)

* Bundle Noto Sans fonts locally instead of Google Fonts CDN

- Embeds Noto Sans woff2 variable-weight font files (weights 300–700, normal + italic, latin + latin-ext subsets) into src/assets/fonts/
- Replaces Google Fonts CDN links in index.html with local stylesheet reference
- Eliminates outbound requests to fonts.googleapis.com and fonts.gstatic.com, improving privacy and enabling full offline functionality

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* Point auto-updater at CloudFree fork releases and update docs

Replace the hook-based updater override with a simpler direct edit to
owner/repo in updater.js. Document the updater change, electron-builder
files addition, and sidebar account section removal in CLOUDFREE.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Rename allowlist.json to cloudfree-allowlist.json

Avoids collision with any future upstream allowlist file and makes
the fork-owned config immediately identifiable.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: update upstream sync conflict resolution instructions

Add reference to CLOUDFREE.md when manually resolving merge conflicts.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* ci: add release-please workflow for automated releases

Combines release-please versioning with multi-platform build pipeline
in a single workflow. Triggers on push to main, builds Linux/Windows/macOS
when a release is created.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* ci: disable upstream build/release workflows

Replaced by cloudfree-release.yml which combines release-please
versioning with the multi-platform build pipeline. Upstream workflows
kept in repo (trigger neutered) to avoid merge conflicts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* ci: add lint and test workflow for PRs

Runs eslint and vitest on pull requests and pushes to main.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* ci: scope lint and test to src/cloudfree/ only

Use npm install instead of npm ci to avoid lockfile sync issues
from upstream. Only lint and test CloudFree-owned code.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* ci: run eslint from src/ directory to use correct config

Root eslint.config.js ignores src/** — run from src/ to pick up
the src/eslint.config.js that covers React/TS files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* ci: drop --ignore-scripts from npm install

tinyexec (vitest dep) needs postinstall to work. Using plain
npm install instead of npm ci to tolerate lockfile drift from upstream.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* ci: use npm install --legacy-peer-deps for CI

Lockfile has peer dep conflicts from upstream that cause npm ci
to fail. Using --legacy-peer-deps to tolerate them.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* ci: include dev and optional deps in npm install

tinyexec (vitest dep) is marked devOptional and was being skipped.
Explicitly include dev and optional deps to ensure vitest works.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* ci: use npm install --force to work around broken lockfile

The upstream lockfile is out of sync (missing pg packages) which
prevents normal install from resolving all transitive deps.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* ci: add fallback to reinstall vitest if tinyexec missing

Adds a verification step that checks for tinyexec and reinstalls
vitest if the transitive dep is missing after npm install --force.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* ci: explicitly install tinyexec for vitest

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The env context doesn't have access to secrets at the step level,
causing the signing step to be skipped entirely.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Secrets aren't accessible in step-level `if` conditions without being
passed through env first. Setting it at the job level makes it available.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Build jobs were skipped when release-please was skipped because
they inherited the skipped status through the needs chain.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- add a live waveform visualizer for active dictation
- add an optional floating icon setting that expands recording/transcribing into a pill with text
- resize the dictation panel for the active pill state and wire the setting through the app store
- add safety checks for optional chaining on electronAPI calls

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
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