Skip to content

Polish: an experimental Processing toggle instead of a hotkey - #62

Merged
dinooo13 merged 5 commits into
mainfrom
polish-toggle
Sep 25, 2026
Merged

dinooo13 merged 5 commits into
mainfrom
polish-toggle

Conversation

@dinooo13

@dinooo13 dinooo13 commented Sep 23, 2026 •

Copy link
Copy Markdown
Owner

Closes #61.

Summary

  • Removes the "Dictate and polish" hotkey role (HotkeyRole.polish), its chord registration, its gesture-tracker mode, its settings row and its warnings. No second chord any more.
  • Adds Settings.polishDictations and an "Experimental" section on the Processing tab: a toggle, off by default, so the cost never lands on someone who did not ask for it.
  • DictationCoordinator.willPolish is now read off settings.polishDictations at key-down instead of being derived from the chord role. The release path itself is untouched — counting the branch, it is the same one Bool read.
  • Migration: a saved polishHotkey decodes into polishDictations = true (empty chord → off), so a user who recorded a polish chord gets the feature switched on with the update. Nothing is written back under the old key.
  • The refiner prewarm stays at key-down, gated on willPolish, still off the release-to-paste path; the 8 s cap and the paste-as-dictated fallback are unchanged, and the polished release-to-paste log line is unchanged.
  • Localizable.xcstrings: the four availability sentences and the polish-key rows reworded for the toggle, with German translations carried over; obsolete keys removed.

Overlay

  • A polished dictation's pill now leaves the way a pasted one does: it collapses into the disc and dives. That includes a transcript under the four-word polish minimum, which is pasted straight from .transcribing and used to fade in place.
  • New dev tool: scripts/overlay-demo.sh (Pladder --overlay-demo) plays the plain, slow, clipboard, polish and short-polish paths through the real coordinator and pill with stand-ins for the engine, microphone, paste, refiner and hotkey, records the screen and cuts a labelled contact sheet per path. The dive was checked with it and by hand.

Tests

swift test: 325 tests pass. PolishHotkeyTests became PolishToggleTests (same coverage, driven through the normal hotkey); the chord-registration tests for the polish chord are replaced by a legacy-migration decode test and a check that a toggle chord still registers beside the polish setting.

Critical-path note

No change to code between recordingStopped and inserted: the polish branch keeps its on/off Bool read and the refiner call. Not benchmarked for that reason; worth a quick release-to-paste check when you try it, especially with the toggle on (that path is now the normal hotkey's route and its prewarm moved unchanged to at-press).

Closes #61. The 'Dictate and polish' chord is gone; the polish step is
now a Processing-tab toggle, off by default, that puts every dictation
through the refiner. A stored polish chord migrates to the toggle on
load, so the feature turns on with the update. The release path is
unchanged: the Bool is read at key-down and the refiner is still
prewarmed before the user stops speaking.
With the polish toggle on, the pill is held up across .transcribing and
.polishing, and the idle hide only flew out for the clipboard hint, so
the polished pill faded in place with no dive. Its model state is
.polishing by then; include it with the flight path.
The bird-dive out had been moved solely elsewhere once the spinner-
re-entry experiment scoped; now the keep-up runs across the whole
model pass from .transcribing, the spinner only re-enters for plain
transcriptions, .polishing morphs the row in place, and the finish's
flight matches the settled move to its style.
@dinooo13
dinooo13 marked this pull request as draft September 24, 2026 21:46
dinooo13 and others added 2 commits September 25, 2026 23:45
With polish on, a transcript under the polish minimum never reaches
.polishing, so the pill held up on the Transcribing row faded in place
at idle. The controller now remembers that it is holding the pill for a
polish pass and dives it out however the pass ended. Reverts the spinner
guard's .polishing case, which no path reached.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Pladder --overlay-demo plays a plain, slow, clipboard, polish and short
polish dictation through the real coordinator and pill, with stand-ins
for the engine, microphone, paste, refiner and hotkey, and logs each
state change with its wall-clock time. scripts/overlay-demo.sh records
the screen around it and cuts a labelled contact sheet per path from the
release to the end of the fly-out. It is how the polished pill's dive
was checked, and it never touches a copy of Pladder in use.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@dinooo13
dinooo13 marked this pull request as ready for review September 25, 2026 23:02
@dinooo13
dinooo13 merged commit 69dc2db into main Sep 25, 2026
1 check passed
@dinooo13
dinooo13 deleted the polish-toggle branch September 28, 2026 18:42
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.

Replace polish hotkey with an experimental toggle in Processing settings

1 participant