Repository navigation
Conversation
SlideTranslationEntry is now { text, provenance }. Gone: SlideStatus,
status, reviewedAt, and the viewer's "unreviewed" badge, which told
viewers about text nobody was going to fix mid-service.
- resolveSlideTranslation returns the first entry along the fallback
chain. A Creole viewer with no Creole text now sees the French one
whatever produced it; before, an unreviewed French text was withheld.
- storeTranslations (server translate-ahead) fills missing keys only.
Keys are content-addressed, so an existing entry already translates
this exact text, and may be a reviewer's save or an agent follow-up's
revision. "Protect reviewed" was a special case of that rule.
- The review grid's chip says Saved, and after Re-translate the screen
asks the library what is saved instead of inferring it from status.
- 'imported' and 'llm-agent' provenance are gone (no writer / same as llm).
- Old library files keep status/reviewedAt on disk; nothing reads them.
Split out of #152; the per-slide notes half follows separately.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F2MPHXNLbLbVZuEDZToVvz
This was referenced Oct 26, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F2MPHXNLbLbVZuEDZToVvz
This was referenced Oct 26, 2026
This branch has not been deployed
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.
The tier-removal half of #152, rebuilt on current main (where translate-ahead moved from
slide_translator.pytoslideSync.tsand the review screen was reworked). The per-slide notes half is stacked on this one as #184.What
SlideTranslationEntryis now{ text, provenance }. Gone:SlideStatus,status,reviewedAt, and the viewer's "unreviewed" badge.resolveSlideTranslationreturns the first entry along the fallback chain. The old version made two passes and ranked entries by quality.storeTranslations(slideSync.ts, the server's translate-ahead) only fills missing keys. Keys are content-addressed, so an existing entry already translates this exact text. It may be a reviewer's save or an agent follow-up's revision (applyUpdateswrites those straight into the doc), and a fresh draft must not undo either one. "Protect reviewed" was a special case of this rule.status.PerSlideTranslationis now an alias ofSlideTranslationEntry, since they had become the same shape.'imported'provenance had no writer, and'llm-agent'was justllm. Both are gone.slideLibrary.tsno longer stampsstatus/reviewedAt. Old library files keep those fields on disk. Nothing reads them, and I left the data alone rather than rewriting records on load as Drop the reviewed/auto tier; surface the translator's per-slide notes #152 did.saveAllandunreviewedBadge, which were dead strings.Behavior change worth a look
A Haitian Creole viewer with no Creole text for a slide now sees the French text, whatever produced it. Before, an unreviewed French text was withheld and the slide read "(not translated)".
Smoke test
Touches §3 Proclaim sync: slide translations should still show for the on-air item, and the review screen's Save should still mark a cell Saved and update the viewer.
Verification
npm run typecheck,npm run lint,npm test(667 passed),uv run pytest: all green.🤖 Generated with Claude Code
https://claude.ai/code/session_01F2MPHXNLbLbVZuEDZToVvz