uttrflow / uttrflow/uttrflow-swift

There is no way to see or change how long clipboard history is kept, or to clear it without resetting the whole app

Open
#589 0 comments 0 reactions 0 assignees View on GitHub
area:clipboard enhancement needs-info P2
Dominant language
Swift
Stars
4
Forks
17
Avg merge
3h 32m
Merged PRs (30d)
277

Description

## What happens

- **Retention has no control.** `Settings.clipboardRetentionDays` exists and is read on every clipboard operation (`Sources/Uttrflow/AppDelegate.swift:651-656`), and it defaults to 7 (`Sources/UttrflowSettings/SettingsStore.swift:118`). No settings row shows it. The Privacy pane has one retention row, "Keep transcripts for" (`Sources/UttrflowUX/SettingsPresenter.swift:600-615`). That row also silently decides how long dictations stay in the panel's From Uttrflow tab (`dictationDays`, `AppDelegate.swift:654-655`). Pictures are fixed at 7 days by the budget (`ClipboardBudget.swift:90`).
- **Clearing history has no button.** `ClipboardStore.deleteEverything(keeping:)` (`Sources/UttrflowClipboard/ClipboardStore.swift:118-129`) is the "tidy-up" that `Docs/clipboard-store.md` describes, sparing pinned, named and filed clips. Nothing in `Sources/` calls it. The only way to empty clipboard history in the app is **Reset personalisation**, which also removes pinned clips, dictation history, the dictionary and settings (`SettingsReset.swift:41`, `:216-217`).
- Nothing in the panel or on the home card says how long clips are kept.

## Why it matters

After copying something sensitive that was not recognised as a secret (see #483 for how secrets are stored), a user can delete clips one at a time, or wipe everything they have set up. They also cannot keep history longer for work they come back to weekly, or shorter on a shared Mac.

## Decision needed

1. Where these controls live: the Privacy pane, a Clipboard section in Settings, or the Clipboard page proposed in #131.
2. Which periods are offered for clipboard history and for pictures, and whether "Keep transcripts for" keeps governing dictation clips (and says so).
3. Whether "Clear clipboard history" asks for confirmation. It spares kept clips, so an undo toast may be enough.

## Acceptance criteria

- The clipboard retention period can be seen and changed, with the pictures window either configurable or stated.
- A "Clear clipboard history" action calls `deleteEverything`, states that pinned, named and filed clips stay, and has tests in `Tests/UttrflowUXTests` for its presentation.
- `Docs/clipboard-store.md` and the settings copy agree.

Contributor guide

Open the contributing guide

Research direction

Start with Settings.clipboardRetentionDays in Sources/Uttrflow/AppDelegate.swift and its default in Sources/UttrflowSettings/SettingsStore.swift, then inspect the Privacy rows in Sources/UttrflowUX/SettingsPresenter.swift and ClipboardStore.deleteEverything in Sources/UttrflowClipboard/ClipboardStore.swift. Resolve the placement, retention choices, picture behavior, dictation wording, and confirmation approach before changing the settings UI. Done means the controls work, retained clips are explained, presentation tests exist in Tests/UttrflowUXTests, and Docs/clipboard-store.md agrees with the settings copy.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
desktop
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.