Convert, Polish, and Explain
The scope, output, retry, and write-back behavior of each text action.
| Action | No-selection scope | Host result |
|---|---|---|
| Convert | Current paragraph, with a typed-buffer fallback | Replaces the captured text |
| Polish | Sentence around the caret, with a typed-buffer fallback | Replaces the captured text |
| Explain | Sentence around the caret, with a typed-buffer fallback | Opens a panel; host text is unchanged |
An explicit selection overrides every automatic scope.
Convert
Convert sends the captured text to the configured model. Local Swift code does not decide whether a Latin fragment is English or Pinyin and does not block a paragraph because it looks like code. The model receives instructions for the enabled languages and makes that semantic decision.
If the first model result is identical to the request text, UnimeType retries once with a stronger instruction. Recognized Mini and Lite routes use their Pro counterpart for this retry when available. A second structurally valid unchanged result is reported as Unchanged, not as a failed action.
Polish
Polish keeps the original language mix and information anchors. Local validation
requires line breaks, Markdown prefixes, protected tokens, and number-like
anchors to remain stable. After the model responds, a comma immediately before
Chinese text is normalized from , to ,.
Explain
Explain makes one model request and shows up to a short explanation in a panel near the caret. It never replaces host text. Protected values remain masked during the request and are restored only for local display.