Skip to content

refactor: rename product brand to Wisp#18

Closed
hudsonbrendon wants to merge 1 commit into
mainfrom
rename/wisp
Closed

refactor: rename product brand to Wisp#18
hudsonbrendon wants to merge 1 commit into
mainfrom
rename/wisp

Conversation

@hudsonbrendon

@hudsonbrendon hudsonbrendon commented Jun 20, 2026

Copy link
Copy Markdown
Collaborator

What

Rebrand the user-facing product from OpenWispr to Wisp (the openwhispr.com name was already taken).

Replaces the OpenWispr display string across:

  • UI components + i18n (all languages)
  • User-facing Rust strings (permission prompts, etc.)
  • productName, README, landing site, npm package name

Intentionally preserved (don't break existing installs)

  • Bundle identifier com.hudsonbrendon.openwispr → keeps macOS TCC (Mic/Accessibility) grants and the per-user data dir (settings/history).
  • GitHub repo / OTA URL → keeps auto-update continuity for shipped versions.
  • Rust crate / binary name → internal, no user impact.

Test

  • vitest: 201/201 pass (tests assert on brand strings, updated alongside).
  • cargo check + cargo test: clean.
  • pnpm tauri build → builds Wisp.app; reinstalled and launched, TCC grants carried over.

Follow-ups (separate, heavier — not in this PR)

Renaming the bundle id, GitHub repo, and buying a domain (e.g. wisp.audio / wisp.fm, both available) break TCC/OTA continuity and are deliberately out of scope here.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation

    • Updated README and website to reflect new product branding.
  • Chores

    • Rebranded the application from OpenWispr to Wisp, including app name, UI elements, configuration, error messages, and translations across multiple languages.

The openwhispr.com name was already taken; rebrand the user-facing product
to "Wisp". Replaces the OpenWispr display string across the UI, i18n,
user-facing Rust strings, productName, README, landing site, and the npm
package name.

Internal identifiers are intentionally preserved to avoid breaking
existing installs:
- bundle identifier com.hudsonbrendon.openwispr (keeps macOS TCC grants
  and the per-user data directory)
- the GitHub repo / OTA update URL (keeps auto-update continuity)
- the Rust crate / binary name (no user impact)

The macOS bundle now builds as Wisp.app; the updater swaps the bundle
contents in place, so existing users keep their permissions and data.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

All occurrences of the product name "OpenWispr" are replaced with "Wisp" across the repository. Changes span the Tauri app config, npm package manifest, Rust backend runtime strings and i18n dictionaries for all 15 locales, frontend React components and i18n, the marketing site HTML, and the README.

Changes

OpenWispr → Wisp Rebrand

Layer / File(s) Summary
App identity and build config
src-tauri/tauri.conf.json, package.json
productName, window title, macOS signingIdentity, and npm name field all changed to Wisp.
Backend runtime strings and i18n
src-tauri/src/inject.rs, src-tauri/src/uitext.rs, src-tauri/src/commands.rs
macOS Accessibility error message, all 15 locale tray/toast/permission i18n entries, and doc comments updated to reference Wisp.
Rust backend unit test fixtures
src-tauri/src/config.rs, src-tauri/src/text.rs
Test dictionary fixtures and string-replacement assertions updated to use "Wisp" as the name token.
Frontend component and i18n strings
src/components/Sidebar.tsx, src/lib/i18n.tsx
Sidebar brand label and all English/Portuguese i18n strings (settings, confirmation dialogs, onboarding) updated to Wisp.
Frontend component and route tests
src/components/Sidebar.test.tsx, src/routes/Dashboard.test.tsx, src/routes/Dictionary.test.tsx
Brand-name assertions and dictionary fixture values updated to expect "Wisp".
Marketing site and README
site/index.html, README.md
All OpenWispr references replaced with Wisp across page <head> metadata, header, hero, download, footer, and throughout all README sections.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐇 A name sheds its old coat with glee,
OpenWispr steps back, and Wisp runs free!
From README to Rust, every string now says so,
Each locale and test puts on a fresh show.
The rabbit hops onward — "Wisp" is the key! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title "refactor: rename product brand to Wisp" accurately describes the primary change: a comprehensive rebrand from OpenWispr to Wisp across UI, configs, and documentation.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch rename/wisp

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@README.md`:
- Line 43: The table of contents link for "Why Wisp" at line 43 references an
incorrect anchor fragment. Change the link destination from the old fragment
`#why-openwispr` to the correct fragment `#why-wisp` to match the actual heading
"## Why Wisp" in the document. This will ensure the TOC link properly navigates
to the correct section.

In `@site/index.html`:
- Around line 218-221: The landing page HTML has been rebranded to use "Wisp"
terminology, but the runtime download builder in site/assets/app.js (lines
153-207) still references "OpenWispr" in the filename patterns it generates and
in the fallback download label. Update the download builder logic to emit
"Wisp_..." prefixed filenames instead of "OpenWispr_..." filenames and change
the fallback label text from "Download OpenWispr" to "Download Wisp" to maintain
consistent branding across the landing page and the download link generation
logic.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1bd7fc20-a683-473a-a995-fd4e2c1c1679

📥 Commits

Reviewing files that changed from the base of the PR and between 69d42f8 and a7832e6.

📒 Files selected for processing (14)
  • README.md
  • package.json
  • site/index.html
  • src-tauri/src/commands.rs
  • src-tauri/src/config.rs
  • src-tauri/src/inject.rs
  • src-tauri/src/text.rs
  • src-tauri/src/uitext.rs
  • src-tauri/tauri.conf.json
  • src/components/Sidebar.test.tsx
  • src/components/Sidebar.tsx
  • src/lib/i18n.tsx
  • src/routes/Dashboard.test.tsx
  • src/routes/Dictionary.test.tsx

Comment thread README.md

- [What it is](#what-it-is)
- [Why OpenWispr](#why-openwispr)
- [Why Wisp](#why-openwispr)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix the broken TOC anchor for “Why Wisp”.

The link target still points to #why-openwispr, but the heading is now ## Why Wisp (fragment #why-wisp), so the contents link is broken.

Suggested fix
-- [Why Wisp](`#why-openwispr`)
+- [Why Wisp](`#why-wisp`)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- [Why Wisp](#why-openwispr)
- [Why Wisp](`#why-wisp`)
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 43-43: Link fragments should be valid

(MD051, link-fragments)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` at line 43, The table of contents link for "Why Wisp" at line 43
references an incorrect anchor fragment. Change the link destination from the
old fragment `#why-openwispr` to the correct fragment `#why-wisp` to match the
actual heading "## Why Wisp" in the document. This will ensure the TOC link
properly navigates to the correct section.

Source: Linters/SAST tools

Comment thread site/index.html
Comment on lines +218 to 221
Download Wisp for your platform and start dictating in minutes. Free, open
source, and entirely on-device.
</p>
<a class="btn" id="cta-dl" href="https://github.com/hudsonbrendon/openwispr/releases/latest"><span data-i18n="cta_button">Download</span></a>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Update landing-site download model to match the Wisp artifact naming.

The CTA copy was rebranded, but the runtime download builder (site/assets/app.js, Lines 153-207) still emits OpenWispr_... filenames and a fallback label of “Download OpenWispr”. That creates a cross-file branding/link contract mismatch and can break fallback downloads if release assets are now Wisp-prefixed.

Suggested fix (cross-file)
--- a/site/assets/app.js
+++ b/site/assets/app.js
@@
-      macApple: base + "OpenWispr_" + version + "_aarch64.dmg",
-      macIntel: base + "OpenWispr_" + version + "_x64.dmg",
-      windows: base + "OpenWispr_" + version + "_x64-setup.exe",
-      linuxAppImage: base + "OpenWispr_" + version + "_amd64.AppImage",
-      linuxDeb: base + "OpenWispr_" + version + "_amd64.deb",
-      linuxRpm: base + "OpenWispr-" + version + "-1.x86_64.rpm",
+      macApple: base + "Wisp_" + version + "_aarch64.dmg",
+      macIntel: base + "Wisp_" + version + "_x64.dmg",
+      windows: base + "Wisp_" + version + "_x64-setup.exe",
+      linuxAppImage: base + "Wisp_" + version + "_amd64.AppImage",
+      linuxDeb: base + "Wisp_" + version + "_amd64.deb",
+      linuxRpm: base + "Wisp-" + version + "-1.x86_64.rpm",
@@
-      fallback: "Download OpenWispr",
+      fallback: "Download Wisp",
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@site/index.html` around lines 218 - 221, The landing page HTML has been
rebranded to use "Wisp" terminology, but the runtime download builder in
site/assets/app.js (lines 153-207) still references "OpenWispr" in the filename
patterns it generates and in the fallback download label. Update the download
builder logic to emit "Wisp_..." prefixed filenames instead of "OpenWispr_..."
filenames and change the fallback label text from "Download OpenWispr" to
"Download Wisp" to maintain consistent branding across the landing page and the
download link generation logic.

@hudsonbrendon hudsonbrendon deleted the rename/wisp branch June 20, 2026 21:11
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