App: equalizer app icon, reworked onboarding wizard, base + style-only rewrite prompts#10
Merged
Conversation
The app shipped with the default blank/white icon. Add an AppIcon built from the equalizer logo (the blue-to-indigo rounded-square badge with the white symmetric 5-bar equalizer, matching the menu-bar WaveformIcon, the favicon, and the site), padded and corner-radiused to macOS app-icon proportions. - Resources/AppIcon.svg: the source art. - Resources/AppIcon.icns: the generated iconset (16 to 1024). - Scripts/make-icon.sh: regenerates the .icns from the SVG (rsvg-convert + iconutil). - Info.plist: CFBundleIconFile = AppIcon; build-app.sh copies the .icns into the bundle. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XiFsJRiNp8kKMrq2pYYDBp
The old wizard treated rewrite as mandatory (a Claude/on-device/both picker) and dictation as an afterthought (a toggle captioned "Optional"). Both are first-class features, so give each its own screen with identical treatment and no "optional" framing. New flow: Welcome, then Dictation, Rewrite, Permissions, Done. - Dictation: enable it, then download the speech model right there. Continue is gated until the download finishes. - Rewrite: enable it, then add a Claude API key and/or download the on-device model (clearer than the old provider picker). Continue is gated on the chosen path(s) being ready. - Permissions: one screen that requests exactly what the enabled features need (Accessibility for either; Microphone for dictation), verified live. - Done: a summary that treats both features equally. Enabling dictation seeds a default shortcut (control-option-D) if none is bound; disabling it clears the dictation shortcuts. The body scrolls so no step clips. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XiFsJRiNp8kKMrq2pYYDBp
…ructions Every instruction's prompt used to repeat the output mechanics (return only the rewritten text, treat the input as material, no dashes, keep the language). Pull those into one shared, editable base system prompt, composed in front of each instruction at rewrite time, so an instruction is now purely a style. - Instruction: add baseSystemPromptDefault (the mechanics) and composeSystemPrompt(base:style:). Rewrite Auto Clean, Formal, Friendly, and Translate to English as detailed style-only prompts (Formal, Friendly, and Translate are now as fleshed out as Auto Clean). - AppState: store an editable baseSystemPrompt, compose base + style at both rewrite call sites, and migrate unedited seeded instructions (all four) to the new style-only wording via exact-match, without touching customized prompts. - InstructionsTab: an editable "Base instructions" section with reset to default; the per-instruction field is now labelled Style, and new instructions are style-only. - Tests: cover compose, the style-only defaults, the base guard, and the migration map. 79/79 pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XiFsJRiNp8kKMrq2pYYDBp
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three app-side changes (each its own commit). Verified:
swift buildclean,swift run DictidyTests79/79. These ship in the next release (the app is released by tag, not auto-deployed), so nothing goes live on merge.1. App icon (was blank/white)
Adds an AppIcon built from the equalizer logo (the blue-to-indigo rounded-square badge with the white symmetric 5-bar equalizer), matching the menu-bar icon, favicon, and site.
Resources/AppIcon.svg(source),Resources/AppIcon.icns(generated),Scripts/make-icon.sh(regenerate),Info.plistCFBundleIconFile, andbuild-app.shcopies it into the bundle.2. Onboarding wizard: dictation and rewrite are now equal
The old wizard made rewrite mandatory and dictation an "Optional" toggle. New flow: Welcome, Dictation, Rewrite, Permissions, Done. Each feature gets its own screen, enabled by default, with no "optional" framing. Dictation gates on the Whisper download; Rewrite gates on a Claude key and/or the on-device model download; Permissions requests exactly what the enabled features need (Accessibility for either, Microphone for dictation), all verified live. Enabling dictation seeds a default shortcut (⌃⌥D); the body scrolls so nothing clips.
3. Base system prompt + style-only instructions
Instruction prompts used to repeat the output mechanics (return only the text, treat input as material, no dashes, keep language). Those move into one editable base system prompt, composed in front of each instruction at rewrite time, so every instruction is purely a style. Auto Clean, Formal, Friendly, and Translate are rewritten as detailed style-only prompts (Formal/Friendly/Translate now as fleshed out as Auto Clean). Unedited seeded instructions migrate automatically; customized ones are untouched. New "Base instructions" editor (with reset) in the Instructions tab.
To review the wizard and icon visually, build and run the app (I can't screenshot a macOS window here). Happy to adjust any screen.
🤖 Generated with Claude Code
https://claude.ai/code/session_01XiFsJRiNp8kKMrq2pYYDBp