Skip to content

fix: remove the Silo description Translate button - #306

Merged
blurbery merged 6 commits into
mainfrom
fix/remove-description-translation
Nov 13, 2026
Merged

blurbery merged 6 commits into
mainfrom
fix/remove-description-translation

Conversation

@blurbery

@blurbery blurbery commented Nov 13, 2026 •

Copy link
Copy Markdown
Owner

Problem and reproduction

A tester on TestFlight 1.1 (8), Apple TV 4K (3rd generation), tvOS 27.0, on a Silo server, reported that the Translate button under the synopsis is partly hidden behind the cast line below it, on every movie and series.

The button is Silo's on-view description translation.
It only shows when the Silo server has AI metadata on with its on-view mode set to a button, and the title's description isn't in the viewer's metadata language yet.
On the Apple TV movie and series pages the synopsis and the button share a fixed 140 point area, the synopsis takes 112 of it, and the button doesn't fit in what's left.

I decided to remove the feature from Vivid rather than make room for it.

Implementation and impact

  • Removed the Translate button and the "Translating…" state from the movie, series and season pages on iPhone, iPad and Apple TV, including the automatic mode that translated on opening a page.
  • Removed the check Vivid made at sign-in and on each foreground to ask a Silo server whether it translates descriptions (/api/v1/metadata/ai/status, and its v2 route), and the translate-description call.
  • Removed the pendingTranslationLanguage field from the item model. The server can still send it and it is ignored.
  • On Apple TV the hero's synopsis blocks no longer take a caller-supplied view below the synopsis, since the button was the only thing that used it. The synopsis keeps its fixed height, so the rows below it stay where they were.
  • Removed publishRefetchedDetail, keepingPlayback and DetailTranslationPublishTests, which only served the button.
  • While hidden, the button was still an empty view that the stacks around it gave spacing to. A zero-size placeholder stays in its place on iPhone, iPad and the Apple TV standard hero, so nothing on the detail pages moves (without it, content under the synopsis would move up by 12 to 16 points on iPhone and iPad).
  • The privacy policy on the website and the in-app privacy text on both platforms no longer say Vivid asks a Silo server to translate descriptions, and their date is now 13 November 2026. The sentence saying Vivid doesn't send anything to an AI service itself, and that the server's operator controls any AI service the server uses, stays.

Silo only. Emby and Jellyfin never showed the button and are unchanged.
Descriptions still come back in the profile's metadata language, which Silo translates on the server. That setting is unchanged.

Anyone who relied on the button loses it. A title whose description hasn't been translated on the server now just shows the description the server returns.

Validation

  • xcodebuild build of VividTV for an Apple TV 4K (3rd generation) simulator and Vivid for an iPhone 18 Pro simulator, both ad hoc signed: both succeeded.
  • Ran those builds on a Silo profile and opened a movie page on the Apple TV, iPhone 18 Pro and iPad Pro 13-inch (M5) simulators: synopsis, credit line, technical row, selectors and actions all in place, no Translate button.
  • python3 scripts/ci/check-docs.py --base origin/main: passes.
  • Reviewed the diff for leftover references, Apple TV layout and focus, iPhone and iPad layout, and the networking, privacy text and String Catalog changes. That review found the spacing and dead code described above, both fixed here, and nothing that breaks a build.
  • Removed AIModelDecodingTests and DetailTranslationPublishTests, which only tested deleted code. No tests added.
  • Not run locally: the unit test suites (left to CI).

Performance

Not applicable, no performance claim. No benchmark was run. Vivid makes one less request to a Silo server at sign-in and on each foreground.

Testing status

  • Tested? Partly.
  • Environment: Apple TV 4K (3rd generation) on tvOS 27.0, iPhone 18 Pro and iPad Pro 13-inch (M5) simulators.
  • Revision: the commits on this branch.
  • Checks and results: movie detail pages open and lay out correctly on all three, on a Silo profile.
  • Limitations: I couldn't reproduce the report, because it needs a Silo server with on-view translation set to a button. Series and season pages were not opened after the change, and nothing was checked on a physical device or on Emby or Jellyfin.

Design impact and approval

  • Design impact: The Translate button and its progress text are gone from the detail pages on all three platforms. Nothing else moves.
  • Approval from blurbery: My own decision, made while looking at the bug report.

Documentation impact

  • website/public/privacy.html and the in-app privacy text: removed the translated descriptions sentence, kept the AI service sentence and updated the date.

  • docs/release/distribution.md: removed translated descriptions from the review server setup and the App Review notes.

  • docs/cores/silo.md: says Vivid doesn't offer Silo's on-view description translation.

  • String Catalog synced: "Translate", "Translating…" and the old privacy date are marked stale, and the new date carries its translations over.

  • I checked the docs this change affects and updated them in this PR, or explained above why none needed changes.

AI disclosure

I implemented these changes and used Claude Fable 5.2 as a tool.

View guided diff

The Translate button under the synopsis was partly covered by the cast line on Apple TV. Vivid no longer offers Silo's on-view description translation on iPhone, iPad or Apple TV, in either its button or automatic mode, and no longer asks a Silo server whether it translates descriptions.

Descriptions still come back in the profile's metadata language, which Silo translates on the server.

The privacy policy, the in-app privacy text and the App Review notes no longer mention translated descriptions.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude review of the whole PR at 28616db. The summary comment lists everything found.

@github-actions

github-actions Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

Claude review of the new commits 23607fd..328bd28

I reviewed the changes since 23607fd: the reordered AI sentence in the iPhone and Apple TV privacy texts (IOSSettingsOverview.swift, TVSettingsComponents.swift) and the reworded placeholder comment in TVDetailHeroPanel.swift. The AI sentence now follows the server logs sentence, so "that information" points back at the device details, and the comment now describes the placeholder accurately. The privacy paragraphs aren't keyed in the String Catalog, so the reorder loses no translations. Nothing needs fixing. I didn't build the app or run any tests.

I checked the two new changes since 23607fd: the reworded placeholder comment in TVDetailHeroPanel.swift and the reordered AI sentence in the iPhone/iPad and Apple TV privacy texts. The comment now matches what the zero-size view does. "That information" again follows the device-identification sentence. The AI wording is the same in the in-app texts and website/public/privacy.html. The reordered strings aren't keys in Localizable.xcstrings, so the String Catalog needs no update. Nothing needs fixing.

claude-sonnet-5-5, high effort, 6 turns, about US$0.11 of API credit

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 26 files

Reply with feedback, questions, or to request a fix.

View guided diff | Re-trigger cubic

Comment thread website/public/privacy.html Resolved
…cing

publishRefetchedDetail, keepingPlayback and DetailTranslationPublishTests only served the removed Translate button. A zero-size placeholder stays where the hidden button sat on iPhone, iPad and the Apple TV standard hero, so the stacks keep the spacing they had.
A local package resolve rewrote it and it was committed by mistake.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude review of the new commits 28616db..0a6eef4. The summary comment lists everything found.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude review of the new commits 0a6eef4..23607fd. The summary comment lists everything found.

@blurbery
blurbery merged commit 4a5d13b into main Nov 13, 2026
25 checks passed
@blurbery
blurbery deleted the fix/remove-description-translation branch November 13, 2026 01:51
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