uttrflow / uttrflow/uttrflow-swift

Recovery buttons use three different wordings for the same action ("Open Settings" vs "Open System Settings", "Download" vs "Finish Setup")

Open Beginner friendly
#561 0 comments 0 reactions 0 assignees View on GitHub
area:dictation bug good first issue P2
Dominant language
Swift
Stars
4
Forks
17
Avg merge
3h 32m
Merged PRs (30d)
277

Description

## What happens

The title of a recovery button is written three times:

| Action | Floating button `DockView.title(for:)` (`Sources/Uttrflow/Dock/DockView.swift:305-314`) | Main window `MainPresenter.title(for:)` (`Sources/UttrflowUX/MainPresentation.swift:169-178`) | Menu bar `FailurePresenter.title(for:)` (`Sources/UttrflowUX/ErrorPresentation.swift:103-112`) |
|---|---|---|---|
| `.openSystemSettings` | Open Settings | Open Settings | Open System Settings |
| `.downloadSpeechModel` | Download | Download | Finish Setup |
| others | same | same | same |

"Open Settings" is ambiguous in an app that has its own Settings window; the action opens System Settings.

## Why it matters

The same failure offers a differently named button depending on where the user looks, and "Open Settings" suggests the wrong window.

## Where to start

- Pick one table (the `FailurePresenter` wording is the most specific) and have the other two call it, or move it next to `RecoveryAction` in `UttrflowCore`.
- `DockView` is in the app target; `FailurePresenter` is public in `UttrflowUX`, which the app already imports.
- Update the expectations in `Tests/UttrflowUXTests/MainPresentationTests.swift:28-30` and `Tests/UttrflowUXTests/SpeechModelLoadingSurfacesTests.swift:61`.
- Run `make verify` (export `DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer` first) and read CONTRIBUTING.md before opening a pull request.

## Acceptance criteria

- One function decides a recovery button's title; the floating button, the main window and the menu bar all use it.
- `.openSystemSettings` reads "Open System Settings" everywhere (or the owner picks another single wording on this issue).
- Tests updated; `make verify` passes.

**Size:** S, about 1–2 hours.

Contributor guide

Open the contributing guide

Research direction

Read CONTRIBUTING.md first, then inspect DockView.title(for:) in Sources/Uttrflow/Dock/DockView.swift, MainPresenter.title(for:) in Sources/UttrflowUX/MainPresentation.swift, and FailurePresenter.title(for:) in Sources/UttrflowUX/ErrorPresentation.swift. Update the expectations in the two named test files and run make verify with DEVELOPER_DIR set. Done means all three surfaces use one title function and the tests pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, swift
Domain
desktop
Issue type
Refactor
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
90/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.