Skip to content

[FEATURE] Prompt Shaping gets its own section, and a better HUD band - #114

Merged
tornikegomareli merged 5 commits into
mainfrom
feature/prompt-shaping-section
Sep 3, 2026
Merged

[FEATURE] Prompt Shaping gets its own section, and a better HUD band#114
tornikegomareli merged 5 commits into
mainfrom
feature/prompt-shaping-section

Conversation

@tornikegomareli

@tornikegomareli tornikegomareli commented Sep 3, 2026

Copy link
Copy Markdown
Owner

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.

tornikegomareli and others added 2 commits September 3, 2026 09:42
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
@tornikegomareli tornikegomareli changed the title [FEATURE] Give Prompt Shaping its own Settings section [FEATURE] Prompt Shaping gets its own section, and a better HUD band Sep 3, 2026
tornikegomareli and others added 3 commits September 3, 2026 10:52
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
@tornikegomareli
tornikegomareli merged commit 731ed51 into main Sep 3, 2026
1 of 3 checks passed
@tornikegomareli
tornikegomareli deleted the feature/prompt-shaping-section branch September 3, 2026 20:36
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.
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.

1 participant