[FEATURE] Prompt Shaping gets its own section, and a better HUD band - #114
Merged
Conversation
The toggle, the prompt pick and a Manage Prompts button sat in the Dictation section, where a picker showing three names asked the reader to remember what each one does. The section shows the library as rows: the name, the prompt's own instruction underneath, and the pick as a checkmark on the row itself. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012Abfbei4sXuCngAWEH8Z2k
The recording band flanked the pick with two 24pt bold chevrons and a colon label. It now draws the picks either side of the current one, faint and smaller, so the arrows need no glyphs: what Left lands on is drawn on the left, and a press slides the names the way it moved them. The shaping phase loses its progress bar. FoundationModels reports no progress, so the bar could only time the wait, and a full bar on a request about to succeed read as a failure. A highlight sweeping through the caption's letters claims nothing beyond still running. It also retires a Reduce Motion bug: that path rendered the bar instantly full and left it there for the whole wait. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012Abfbei4sXuCngAWEH8Z2k
The band carried the pick at reading size while speaking, which took the glance the voice visual and the draft are there for, and it grew the shape. The pick is now a tag in the same capsule as the language pair, on the opposite shoulder, so it reads as context. The shaping caption takes the draft's place in the text band instead of a band of its own. The shape now grows nothing for shaping in either phase, and the phase no longer sits under a draft still saying Listening. Both tags reserve their room from a measured text width. The estimate they replace overshot a language pair by 40% and still undershot a prompt name, which left the draft touching the tag. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012Abfbei4sXuCngAWEH8Z2k
The shoulder tag put it where nothing was looking. It is now centered in a slim strip at the bottom, at 11 points and tracked wide, so it reads as a caption on the session rather than as chrome. Its glyphs carry the Edge Glow palette's colors through a stitchable shader, travelling about six times faster at full voice than at silence and lifting out of a resting dim, so the line says shaping is armed and says it in the palette the user already picked. Aurora was considered and not adopted: it is iOS-only, its palettes are presets rather than the Edge Glow pick, and its technique is already how every HUD visual works here. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012Abfbei4sXuCngAWEH8Z2k
The phase had its own presentation in the text band, a white shimmer under whatever the draft last said, which was usually Listening. It now uses the caption the pick rides in: same strip, same font, same palette colors. There is no live level to follow once speech ends, so the color pulses on its own. A line at rest would say nothing is happening while the words are being rewritten. The listening placeholder is cleared when the phase starts. That is the fourth path through that text and the first that clears it, so it joins the others in HUDPlaceholderTests. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012Abfbei4sXuCngAWEH8Z2k
jhampton
added a commit
to Swagatar-LLC/Talkify
that referenced
this pull request
Sep 3, 2026
The shaping work those notes described has now landed upstream (tornikegomareli#68, tornikegomareli#111, tornikegomareli#113, tornikegomareli#114) along with the insertion-clock fix (tornikegomareli#115), so keeping it in fork-unreleased.md would republish upstream release notes as if they were fork-only changes. The file accumulates again as fork work lands; empty is the correct resting state, and swagatar-release.sh already falls back to the build disclaimer when it is. Co-Authored-By: Vorno <agents-noreply@swagatar.co>
jhampton
added a commit
to Swagatar-LLC/Talkify
that referenced
this pull request
Sep 3, 2026
The shaping work those notes described landed upstream in tornikegomareli#68, tornikegomareli#111 and tornikegomareli#114, and the insertion-clock fix in tornikegomareli#115, so shipping them from the fork would republish upstream's release notes as fork-only changes. The file accumulates again as fork work lands; empty is its resting state, and swagatar-release.sh falls back to the build disclaimer when it is.
jhampton
added a commit
to Swagatar-LLC/Talkify
that referenced
this pull request
Sep 4, 2026
The shaping work those notes described landed upstream in tornikegomareli#68, tornikegomareli#111 and tornikegomareli#114, and the insertion-clock fix in tornikegomareli#115, so shipping them from the fork would republish upstream's release notes as fork-only changes. The file accumulates again as fork work lands; empty is its resting state, and swagatar-release.sh falls back to the build disclaimer when it is.
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.
Prompt Shaping lived in the Dictation section behind a picker of three names and a Manage Prompts button, so choosing a prompt meant remembering what each name did. It now has its own section under Dictation, and the library is a list of rows: the name, the prompt's own instruction underneath it, and the pick as a checkmark on the row you tap.
The editor sheet is rebuilt around one prompt instead of a list. The instruction gets a real multi-line field, and the closing instruction, the worked example and the exact text sent to the model fold away under Advanced, because all three built-in prompts leave those empty. The sheet can also run the prompt: type a sample sentence, press Try, and read what came back. It calls the same PromptShapingService a session calls, so writing a prompt stops being guesswork and the sheet cannot disagree with what a session gets.
Deleting the picked prompt, or restoring the defaults over it, used to leave a selection resolving to nothing, which silently means no shaping at all. Both now move the pick to the first prompt in the library, and the section says so when nothing is picked.
The HUD band changed too. The recording band flanked the pick with two 24pt bold chevrons and a colon label; it now draws the picks either side of the current one, faint and smaller, so the arrows need no glyphs of their own and a press slides the names the way it moved them. The shaping phase loses its progress bar in favour of a highlight sweeping through the caption's own letters, because FoundationModels reports no progress and a bar could only ever time the wait, with a full bar on a request about to succeed reading as a failure. That also retires a Reduce Motion bug where the bar rendered instantly full and stayed there for the whole wait.
New pure types carry the rules that used to live in views, so both are pinned by tests, and the offscreen HUD render harness gained both band states.