Skip to content

[FIX] Shape before translating, and record what actually landed - #111

Merged
tornikegomareli merged 1 commit into
mainfrom
fix/shaping-order-and-quit-grace
Sep 2, 2026
Merged

[FIX] Shape before translating, and record what actually landed#111
tornikegomareli merged 1 commit into
mainfrom
fix/shaping-order-and-quit-grace

Conversation

@tornikegomareli

Copy link
Copy Markdown
Owner

Follow-ups to #68, found while reviewing it. All three come from the same cause: prompt shaping arrived from a branch that predates translation, so the two transforms ended up in an order nobody chose.

Shaping now runs before translation. A prompt carries its own language and its one-shot example in that language, so handing it a translation asks it to work in a language it was not written for. A translator handed cleaned-up words also has less to get wrong.

The history write moves last, still ahead of insertion so a failed paste cannot lose the words. Where it was, the delivered line recorded a translation nobody received, because shaping had not run yet. The spoken half is unchanged.

And finishGrace covered a translation but not a shaping pass, so a finish could outlast the quit hold by shaping's ten seconds and take the words with it, history included. That is the same mistake I made in 0.7.0 one step further out, so it now names every bounded step a finish can be inside.

Both new tests fail against the previous order.

Prompt shaping arrived from a branch that predates translation, so the two
transforms ended up in an order nobody chose: recognise, translate, write
history, shape, insert.

Shaping now runs first. A prompt carries its own language and its one-shot
example in that language, so handing it a translation asks it to work in a
language it was not written for, and a translator given cleaned-up words has
less to get wrong.

History moves last, still before insertion so a failed paste cannot lose the
words (ADR-0007). Written where it was, the delivered line held a
translation nobody received, because shaping had not run yet. The spoken half
is unchanged.

The quit grace covered a translation and not a shaping pass, so a finish
could outlast it by the ten seconds shaping is allowed and take the words
with it, history included. Same mistake as 0.7.0's, one step further out: it
now names every bounded step a finish can be inside.
@tornikegomareli
tornikegomareli merged commit a19c4ee into main Sep 2, 2026
1 check passed
@tornikegomareli
tornikegomareli deleted the fix/shaping-order-and-quit-grace branch September 2, 2026 19:56
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.
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