Skip to content

Commit dbceea7

Browse files
committed
Homebrew: surface the new tap-trust step, and fix onboarding entities and GitHub thresholds
Two Homebrew-adjacent fixes plus a long-standing onboarding rendering bug found alongside them. - **Homebrew 6 tap trust**: Homebrew 6.0.0 (2026-06-11) refuses to load a cask from any third-party tap until the user runs `brew trust`, so the old two-step install silently failed mid-flow for new users. Update the install command to `brew tap vdavid/tap && brew trust --cask vdavid/tap/cmdr && brew install --cask cmdr` (chained so trust runs before install, no scary mid-flow error) in the `README`, the website `HomebrewInstall` component, and `docs/guides/homebrew-cask.md`, each with a short note on why the step exists. - **Onboarding HTML entities rendered literally**: `<Trans>` renders catalog text through `intl-messageformat` + Svelte text nodes (never `{@html}`), so `&gt;`/`&amp;` showed up verbatim on screen. Switch to literal `>`/`&`, matching existing catalog precedent (e.g. `commands.json`, `fileExplorer.json`). Fixes the in-app feedback menu path (`Help > Send feedback…`) and the FDA "stuck" banner breadcrumb, across all 10 locales. Also corrected the stale translator `@key` notes that told translators to keep the entities. - **GitHub notability thresholds were wrong**: the ask is 90 forks and 90 watches (not 50), 225 stars unchanged. Fixed in the `README` note and the onboarding star CTA across all locales, matching the cask guide. - Refreshed the translator `@key.sourceHash` for the re-coupled keys (the change is language-agnostic, so no re-translation was needed), and updated the `onboarding-i18n-parity` test expectations.
1 parent 050a7f3 commit dbceea7

14 files changed

Lines changed: 115 additions & 91 deletions

File tree

README.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,14 @@ Commander, but on macOS.
1111
Give it a try: [download for macOS](https://getcmdr.com), or install with Homebrew:
1212

1313
```bash
14-
brew tap vdavid/tap && brew install --cask cmdr
14+
brew tap vdavid/tap && brew trust --cask vdavid/tap/cmdr && brew install --cask cmdr
1515
```
1616

17+
The `brew trust` step is new in Homebrew 6: it asks you to okay any third-party tap once before it runs. Cmdr's tap is
18+
one of those for now.
19+
1720
**Note:** If you'd love a nice short `brew install --cask cmdr`, **star**, **watch**, and **fork** this repo! Homebrew
18-
needs 225 stars, 50 watchers, and 50 forks before it allows apps to its main tap.
21+
needs 225 stars, 90 watchers, and 90 forks before it allows apps to its main tap.
1922

2023
<picture>
2124
<source media="(prefers-color-scheme: dark)" srcset="brand/screenshots/app-main-dark.png" />
@@ -45,11 +48,12 @@ Core features:
4548
Download it from [getcmdr.com](https://getcmdr.com), or install with Homebrew:
4649

4750
```bash
48-
brew tap vdavid/tap && brew install --cask cmdr
51+
brew tap vdavid/tap && brew trust --cask vdavid/tap/cmdr && brew install --cask cmdr
4952
```
5053

54+
The `brew trust` step is Homebrew 6's new safety gate: it has you okay a third-party tap once before it runs any code.
5155
A star, watch, or fork on [the repo](https://github.com/vdavid/cmdr) helps Cmdr reach Homebrew's notability bar (225
52-
stars), which unlocks a tap-free `brew install --cask cmdr`.
56+
stars), which unlocks a tap-free, trust-free `brew install --cask cmdr`.
5357

5458
Windows and Linux users: sorry, you'll need to wait. The Rust+Tauri stack allows for cross-platform deployment, but the
5559
app uses OS-specific features by nature, so I've only had time to write and test it on macOS for now.

apps/desktop/src/lib/intl/messages/de/onboarding.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,9 @@
151151
"@onboarding.stepAi.bannerTitle.stuck": {
152152
"sourceHash": "88c9c19"
153153
},
154-
"onboarding.stepAi.bannerBody.stuck": "Du wolltest den vollständigen Festplattenzugriff aktivieren, aber Cmdr scheint ihn nicht bekommen zu haben. Vielleicht musst du die App neu starten (mach es jetzt, wir machen von hier aus weiter!), oder gehe zu <settingsLink>{systemSettings} &gt; Datenschutz &amp; Sicherheit &gt; Vollständiger Festplattenzugriff</settingsLink>, finde dort Cmdr oder füge es manuell mit der kleinen Taste „+“ unten hinzu.",
154+
"onboarding.stepAi.bannerBody.stuck": "Du wolltest den vollständigen Festplattenzugriff aktivieren, aber Cmdr scheint ihn nicht bekommen zu haben. Vielleicht musst du die App neu starten (mach es jetzt, wir machen von hier aus weiter!), oder gehe zu <settingsLink>{systemSettings} > Datenschutz & Sicherheit > Vollständiger Festplattenzugriff</settingsLink>, finde dort Cmdr oder füge es manuell mit der kleinen Taste „+“ unten hinzu.",
155155
"@onboarding.stepAi.bannerBody.stuck": {
156-
"sourceHash": "9b83d53"
156+
"sourceHash": "79d5765"
157157
},
158158
"onboarding.stepAi.welcomeLinux.title": "Willkommen bei Cmdr!",
159159
"@onboarding.stepAi.welcomeLinux.title": {
@@ -303,13 +303,13 @@
303303
"@onboarding.stepBeta.feedbackIntro": {
304304
"sourceHash": "4e238dd"
305305
},
306-
"onboarding.stepBeta.feedback.inAppBound": "<strong>In der App:</strong> Schau im Menü unter <strong>Hilfe &gt; Feedback senden …</strong>, oder finde es mit <chip></chip> in der Befehlspalette.",
306+
"onboarding.stepBeta.feedback.inAppBound": "<strong>In der App:</strong> Schau im Menü unter <strong>Hilfe > Feedback senden …</strong>, oder finde es mit <chip></chip> in der Befehlspalette.",
307307
"@onboarding.stepBeta.feedback.inAppBound": {
308-
"sourceHash": "88ec070"
308+
"sourceHash": "8fabdee"
309309
},
310-
"onboarding.stepBeta.feedback.inAppUnbound": "<strong>In der App:</strong> Schau im Menü unter <strong>Hilfe &gt; Feedback senden …</strong>, oder finde es in der Befehlspalette.",
310+
"onboarding.stepBeta.feedback.inAppUnbound": "<strong>In der App:</strong> Schau im Menü unter <strong>Hilfe > Feedback senden …</strong>, oder finde es in der Befehlspalette.",
311311
"@onboarding.stepBeta.feedback.inAppUnbound": {
312-
"sourceHash": "b7f7fb3"
312+
"sourceHash": "26447c9"
313313
},
314314
"onboarding.stepBeta.feedback.github": "<github>GitHub</github>: Issues anlegen, über Issues abstimmen.",
315315
"@onboarding.stepBeta.feedback.github": {
@@ -323,9 +323,9 @@
323323
"@onboarding.stepBeta.feedback.call": {
324324
"sourceHash": "5e198ee"
325325
},
326-
"onboarding.stepBeta.star": "Und noch eine sehr wichtige Sache, mit der du in einer Minute helfen kannst: Vergib einen Stern, beobachte und forke das Repo <github>hier auf GitHub</github>. Homebrew verlangt von mir 225 Sterne, 50 Forks und 50 Beobachter, um <code>brew install cmdr</code> freizuschalten.",
326+
"onboarding.stepBeta.star": "Und noch eine sehr wichtige Sache, mit der du in einer Minute helfen kannst: Vergib einen Stern, beobachte und forke das Repo <github>hier auf GitHub</github>. Homebrew verlangt von mir 225 Sterne, 90 Forks und 90 Beobachter, um <code>brew install cmdr</code> freizuschalten.",
327327
"@onboarding.stepBeta.star": {
328-
"sourceHash": "6e978a7"
328+
"sourceHash": "d88a7e2"
329329
},
330330
"onboarding.stepBeta.analyticsLede": "Um zu erfahren, was funktioniert und was nicht, sendet Cmdr während der offenen Beta anonyme Nutzungsstatistiken: welche Funktionen wie oft genutzt werden, nie etwas aus deinen Dateien. Es ist jetzt aktiv, und du kannst es jederzeit ausschalten.",
331331
"@onboarding.stepBeta.analyticsLede": {

apps/desktop/src/lib/intl/messages/en/onboarding.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -238,9 +238,9 @@
238238
"screenshotNote": "The AI step of the onboarding wizard, pictured here."
239239
},
240240

241-
"onboarding.stepAi.bannerBody.stuck": "You said you wanted to enable full disk access, but Cmdr doesn''t seem to have gotten it. You might need to restart the app (do it now, we''ll continue from here!), or go to your <settingsLink>{systemSettings} &gt; Privacy &amp; Security &gt; Full Disk Access</settingsLink> and find Cmdr, or manually add it with the little \"+\" button at the bottom.",
241+
"onboarding.stepAi.bannerBody.stuck": "You said you wanted to enable full disk access, but Cmdr doesn''t seem to have gotten it. You might need to restart the app (do it now, we''ll continue from here!), or go to your <settingsLink>{systemSettings} > Privacy & Security > Full Disk Access</settingsLink> and find Cmdr, or manually add it with the little \"+\" button at the bottom.",
242242
"@onboarding.stepAi.bannerBody.stuck": {
243-
"description": "Body of the warning banner when Full Disk Access didn't take: suggests restarting or opening the exact System Settings pane. <settingsLink> wraps the clickable text that opens that pane; keep the breadcrumb path inside it. {systemSettings} is the localized macOS \"System Settings\" app name supplied by the OS, so don't translate or alter it. \"Privacy & Security\" and \"Full Disk Access\" are the macOS settings pane names (use the exact macOS wording in your locale). The literal \"&gt;\" and \"&amp;\" are HTML entities for \">\" and \"&\" and must stay as written. \"Cmdr\" is the product name. Keep the literal \"+\" character.",
243+
"description": "Body of the warning banner when Full Disk Access didn't take: suggests restarting or opening the exact System Settings pane. <settingsLink> wraps the clickable text that opens that pane; keep the breadcrumb path inside it. {systemSettings} is the localized macOS \"System Settings\" app name supplied by the OS, so don't translate or alter it. \"Privacy & Security\" and \"Full Disk Access\" are the macOS settings pane names (use the exact macOS wording in your locale). Use literal \">\" and \"&\" characters in the breadcrumb (not HTML entities). \"Cmdr\" is the product name. Keep the literal \"+\" character.",
244244
"placeholders": {
245245
"systemSettings": "the macOS System Settings app name, already localized by the OS (for example \"System Settings\")"
246246
},
@@ -477,15 +477,15 @@
477477
"screenshot": "onboarding-beta.png"
478478
},
479479

480-
"onboarding.stepBeta.feedback.inAppBound": "<strong>In-app:</strong> See <strong>Help &gt; Send feedback…</strong> in the menu, or find it in the command palette with <chip></chip>.",
480+
"onboarding.stepBeta.feedback.inAppBound": "<strong>In-app:</strong> See <strong>Help > Send feedback…</strong> in the menu, or find it in the command palette with <chip></chip>.",
481481
"@onboarding.stepBeta.feedback.inAppBound": {
482-
"description": "Feedback-channel item describing the in-app feedback option, shown when the command-palette shortcut is bound. <strong> bolds the leading \"In-app:\" label and the menu path. <chip> wraps the visual key-shortcut chip for the command palette (no inner text; leave it empty). \"Help > Send feedback…\" is the menu path (keep the trailing ellipsis); the literal \"&gt;\" is the HTML entity for \">\" and must stay as written. \"command palette\" is the app's searchable command list.",
482+
"description": "Feedback-channel item describing the in-app feedback option, shown when the command-palette shortcut is bound. <strong> bolds the leading \"In-app:\" label and the menu path. <chip> wraps the visual key-shortcut chip for the command palette (no inner text; leave it empty). \"Help > Send feedback…\" is the menu path (keep the trailing ellipsis); it uses a literal \">\" separator (not an HTML entity). \"command palette\" is the app's searchable command list.",
483483
"screenshot": "onboarding-beta.png"
484484
},
485485

486-
"onboarding.stepBeta.feedback.inAppUnbound": "<strong>In-app:</strong> See <strong>Help &gt; Send feedback…</strong> in the menu, or find it in the command palette.",
486+
"onboarding.stepBeta.feedback.inAppUnbound": "<strong>In-app:</strong> See <strong>Help > Send feedback…</strong> in the menu, or find it in the command palette.",
487487
"@onboarding.stepBeta.feedback.inAppUnbound": {
488-
"description": "Feedback-channel item describing the in-app feedback option, shown when no command-palette shortcut is bound (so no key chip is mentioned). <strong> bolds the leading \"In-app:\" label and the menu path. \"Help > Send feedback…\" is the menu path (keep the trailing ellipsis); the literal \"&gt;\" is the HTML entity for \">\" and must stay as written. \"command palette\" is the app's searchable command list."
488+
"description": "Feedback-channel item describing the in-app feedback option, shown when no command-palette shortcut is bound (so no key chip is mentioned). <strong> bolds the leading \"In-app:\" label and the menu path. \"Help > Send feedback…\" is the menu path (keep the trailing ellipsis); it uses a literal \">\" separator (not an HTML entity). \"command palette\" is the app's searchable command list."
489489
},
490490

491491
"onboarding.stepBeta.feedback.github": "<github>GitHub</github>: Add issues, vote on issues.",
@@ -506,9 +506,9 @@
506506
"screenshot": "onboarding-beta.png"
507507
},
508508

509-
"onboarding.stepBeta.star": "And one more very important way you can help in one minute: star, watch, and fork the repo <github>here on GitHub</github>. Homebrew wants me to present 225 stars, 50 forks, and 50 watches to enable <code>brew install cmdr</code>.",
509+
"onboarding.stepBeta.star": "And one more very important way you can help in one minute: star, watch, and fork the repo <github>here on GitHub</github>. Homebrew wants me to present 225 stars, 90 forks, and 90 watches to enable <code>brew install cmdr</code>.",
510510
"@onboarding.stepBeta.star": {
511-
"description": "Asks the user to star, watch, and fork the GitHub repository to help reach Homebrew's thresholds. <github> wraps the repo link. <code> wraps the literal install command, which must NOT be translated. \"star\", \"watch\", and \"fork\" are GitHub actions; \"repo\" is the code repository; \"Homebrew\" and \"GitHub\" are brand names; all stay untranslated. The numbers 225, 50, and 50 are Homebrew's required thresholds.",
511+
"description": "Asks the user to star, watch, and fork the GitHub repository to help reach Homebrew's thresholds. <github> wraps the repo link. <code> wraps the literal install command, which must NOT be translated. \"star\", \"watch\", and \"fork\" are GitHub actions; \"repo\" is the code repository; \"Homebrew\" and \"GitHub\" are brand names; all stay untranslated. The numbers 225, 90, and 90 are Homebrew's required thresholds.",
512512
"screenshot": "onboarding-beta.png"
513513
},
514514

apps/desktop/src/lib/intl/messages/es/onboarding.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,9 @@
151151
"@onboarding.stepAi.bannerTitle.stuck": {
152152
"sourceHash": "88c9c19"
153153
},
154-
"onboarding.stepAi.bannerBody.stuck": "Has dicho que querías activar el acceso a todo el disco, pero parece que Cmdr no lo ha conseguido. Puede que tengas que reiniciar la app (hazlo ahora, ¡seguiremos desde aquí!), o ir a <settingsLink>{systemSettings} &gt; Privacidad y seguridad &gt; Acceso a todo el disco</settingsLink> y encontrar Cmdr, o añadirlo a mano con el pequeño botón \"+\" de abajo.",
154+
"onboarding.stepAi.bannerBody.stuck": "Has dicho que querías activar el acceso a todo el disco, pero parece que Cmdr no lo ha conseguido. Puede que tengas que reiniciar la app (hazlo ahora, ¡seguiremos desde aquí!), o ir a <settingsLink>{systemSettings} > Privacidad y seguridad > Acceso a todo el disco</settingsLink> y encontrar Cmdr, o añadirlo a mano con el pequeño botón \"+\" de abajo.",
155155
"@onboarding.stepAi.bannerBody.stuck": {
156-
"sourceHash": "9b83d53"
156+
"sourceHash": "79d5765"
157157
},
158158
"onboarding.stepAi.welcomeLinux.title": "¡Te damos la bienvenida a Cmdr!",
159159
"@onboarding.stepAi.welcomeLinux.title": {
@@ -303,13 +303,13 @@
303303
"@onboarding.stepBeta.feedbackIntro": {
304304
"sourceHash": "4e238dd"
305305
},
306-
"onboarding.stepBeta.feedback.inAppBound": "<strong>En la app:</strong> Mira <strong>Ayuda &gt; Enviar comentarios…</strong> en el menú, o encuéntralo en la paleta de comandos con <chip></chip>.",
306+
"onboarding.stepBeta.feedback.inAppBound": "<strong>En la app:</strong> Mira <strong>Ayuda > Enviar comentarios…</strong> en el menú, o encuéntralo en la paleta de comandos con <chip></chip>.",
307307
"@onboarding.stepBeta.feedback.inAppBound": {
308-
"sourceHash": "88ec070"
308+
"sourceHash": "8fabdee"
309309
},
310-
"onboarding.stepBeta.feedback.inAppUnbound": "<strong>En la app:</strong> Mira <strong>Ayuda &gt; Enviar comentarios…</strong> en el menú, o encuéntralo en la paleta de comandos.",
310+
"onboarding.stepBeta.feedback.inAppUnbound": "<strong>En la app:</strong> Mira <strong>Ayuda > Enviar comentarios…</strong> en el menú, o encuéntralo en la paleta de comandos.",
311311
"@onboarding.stepBeta.feedback.inAppUnbound": {
312-
"sourceHash": "b7f7fb3"
312+
"sourceHash": "26447c9"
313313
},
314314
"onboarding.stepBeta.feedback.github": "<github>GitHub</github>: Añade incidencias, vota incidencias.",
315315
"@onboarding.stepBeta.feedback.github": {
@@ -323,9 +323,9 @@
323323
"@onboarding.stepBeta.feedback.call": {
324324
"sourceHash": "5e198ee"
325325
},
326-
"onboarding.stepBeta.star": "Y una forma más muy importante de ayudar en un minuto: dale una estrella, sigue y haz un fork del repo <github>aquí en GitHub</github>. Homebrew me pide presentar 225 estrellas, 50 forks y 50 seguidores para habilitar <code>brew install cmdr</code>.",
326+
"onboarding.stepBeta.star": "Y una forma más muy importante de ayudar en un minuto: dale una estrella, sigue y haz un fork del repo <github>aquí en GitHub</github>. Homebrew me pide presentar 225 estrellas, 90 forks y 90 seguidores para habilitar <code>brew install cmdr</code>.",
327327
"@onboarding.stepBeta.star": {
328-
"sourceHash": "6e978a7"
328+
"sourceHash": "d88a7e2"
329329
},
330330
"onboarding.stepBeta.analyticsLede": "Para saber qué funciona y qué no, durante la beta abierta Cmdr envía estadísticas de uso anónimas: qué funciones se usan y con qué frecuencia, nunca nada de tus archivos. Está activado ahora, y puedes desactivarlo cuando quieras.",
331331
"@onboarding.stepBeta.analyticsLede": {

apps/desktop/src/lib/intl/messages/fr/onboarding.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,9 @@
151151
"@onboarding.stepAi.bannerTitle.stuck": {
152152
"sourceHash": "88c9c19"
153153
},
154-
"onboarding.stepAi.bannerBody.stuck": "Vous avez dit vouloir activer l''accès complet au disque, mais Cmdr ne semble pas l''avoir obtenu. Vous devrez peut-être redémarrer l''app (faites-le maintenant, nous continuerons d''ici !), ou aller dans vos <settingsLink>{systemSettings} &gt; Privacy &amp; Security &gt; Full Disk Access</settingsLink> et trouver Cmdr, ou l''ajouter manuellement avec le petit bouton « + » en bas.",
154+
"onboarding.stepAi.bannerBody.stuck": "Vous avez dit vouloir activer l''accès complet au disque, mais Cmdr ne semble pas l''avoir obtenu. Vous devrez peut-être redémarrer l''app (faites-le maintenant, nous continuerons d''ici !), ou aller dans vos <settingsLink>{systemSettings} > Privacy & Security > Full Disk Access</settingsLink> et trouver Cmdr, ou l''ajouter manuellement avec le petit bouton « + » en bas.",
155155
"@onboarding.stepAi.bannerBody.stuck": {
156-
"sourceHash": "9b83d53"
156+
"sourceHash": "79d5765"
157157
},
158158
"onboarding.stepAi.welcomeLinux.title": "Bienvenue dans Cmdr !",
159159
"@onboarding.stepAi.welcomeLinux.title": {
@@ -303,13 +303,13 @@
303303
"@onboarding.stepBeta.feedbackIntro": {
304304
"sourceHash": "4e238dd"
305305
},
306-
"onboarding.stepBeta.feedback.inAppBound": "<strong>Dans l''app :</strong> voyez <strong>Aide &gt; Envoyer un retour…</strong> dans le menu, ou trouvez-la dans la palette de commandes avec <chip></chip>.",
306+
"onboarding.stepBeta.feedback.inAppBound": "<strong>Dans l''app :</strong> voyez <strong>Aide > Envoyer un retour…</strong> dans le menu, ou trouvez-la dans la palette de commandes avec <chip></chip>.",
307307
"@onboarding.stepBeta.feedback.inAppBound": {
308-
"sourceHash": "88ec070"
308+
"sourceHash": "8fabdee"
309309
},
310-
"onboarding.stepBeta.feedback.inAppUnbound": "<strong>Dans l''app :</strong> voyez <strong>Aide &gt; Envoyer un retour…</strong> dans le menu, ou trouvez-la dans la palette de commandes.",
310+
"onboarding.stepBeta.feedback.inAppUnbound": "<strong>Dans l''app :</strong> voyez <strong>Aide > Envoyer un retour…</strong> dans le menu, ou trouvez-la dans la palette de commandes.",
311311
"@onboarding.stepBeta.feedback.inAppUnbound": {
312-
"sourceHash": "b7f7fb3"
312+
"sourceHash": "26447c9"
313313
},
314314
"onboarding.stepBeta.feedback.github": "<github>GitHub</github> : ajoutez des tickets, votez sur les tickets.",
315315
"@onboarding.stepBeta.feedback.github": {
@@ -323,9 +323,9 @@
323323
"@onboarding.stepBeta.feedback.call": {
324324
"sourceHash": "5e198ee"
325325
},
326-
"onboarding.stepBeta.star": "Et une autre façon très importante de m''aider en une minute : ajoutez une étoile, suivez et forkez le dépôt <github>ici sur GitHub</github>. Homebrew me demande de présenter 225 étoiles, 50 forks et 50 suiveurs pour activer <code>brew install cmdr</code>.",
326+
"onboarding.stepBeta.star": "Et une autre façon très importante de m''aider en une minute : ajoutez une étoile, suivez et forkez le dépôt <github>ici sur GitHub</github>. Homebrew me demande de présenter 225 étoiles, 90 forks et 90 suiveurs pour activer <code>brew install cmdr</code>.",
327327
"@onboarding.stepBeta.star": {
328-
"sourceHash": "6e978a7"
328+
"sourceHash": "d88a7e2"
329329
},
330330
"onboarding.stepBeta.analyticsLede": "Pour savoir ce qui fonctionne et ce qui ne fonctionne pas, pendant la bêta ouverte Cmdr envoie des statistiques d''usage anonymes : quelles fonctionnalités sont utilisées et à quelle fréquence, jamais rien provenant de vos fichiers. C''est activé pour le moment, et vous pouvez le désactiver à tout moment.",
331331
"@onboarding.stepBeta.analyticsLede": {

0 commit comments

Comments
 (0)