uttrflow / uttrflow/uttrflow-swift
AI suggestions cannot be turned off for an application until something has been learned there
- Dominant language
- Swift
- Stars
- 4
- Forks
- 17
- Avg merge
- 4h 27m
- Merged PRs (30d)
- 286
Description
## What happens
The AI suggestions settings can only turn an application off once Uttrflow has already learned something there (or it is one of the four shipped editors).
- `SettingsPresenter.applicationGroup` lists `preferences.knownApplications(learnedIn: personalisation.applicationsWithSuggestions)` (`Sources/UttrflowUX/SettingsPresenter.swift:450-459`).
- `SuggestionPreferences.knownApplications` is the shipped editors, plus apps already turned off or on, plus apps with a chosen accept key, plus apps the corpus has lines from (`Sources/UttrflowPredict/SuggestionPreferences.swift:139-155`).
- Nothing on the screen adds an application.
Meanwhile, in any application not listed, suggestions run from the first keystroke, the model generates from on-screen text (`SuggestionCoordinator.generate`), and capture stores committed lines once consent is recorded automatically (`SuggestionCoordinator.swift:577-579`). The only in-place controls are ⎋⎋ (this field, until focus leaves) and ⌥⎋ (everything).
## Why it matters
People want suggestions off in some places before anything happens there: a banking or health site, a work chat, a password manager's non-secure fields, a game. Today they must first let the app be captured, then find it in Settings, then press Forget. There is also no per-site control inside a browser, where one browser is "one application" for every site.
## Acceptance criteria
- The Applications group has an "Add application…" control (running apps and an Applications-folder picker) that adds an app in the off state.
- Optionally, the menu bar or the ⎋ ladder offers "Turn off in ", which persists like the Settings switch.
- `Tests/UttrflowUXTests` cover the new row and change. Adding an app never records capture consent for it.
Contributor guide
Research direction
Start with SettingsPresenter.applicationGroup in Sources/UttrflowUX/SettingsPresenter.swift and SuggestionPreferences.knownApplications in Sources/UttrflowPredict/SuggestionPreferences.swift to trace how applications are listed and persisted. Review SuggestionCoordinator.generate and its capture-consent path, then run Tests/UttrflowUXTests. Done means an application can be added in the off state, the new row and state change are covered, and adding it does not record capture consent.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- desktop, testing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100