The shortcut and toolbar read window.getSelection() without a limit, so a
select-all on a very large page handed prepareAction millions of
characters. Every binary-search probe re-encoded the whole candidate
prefix: about 1.1 s for 5M characters, paid again by the dialog.
Each code point adds at least one character to the URL, so nothing past
the first MAX_URL_CHARS can fit. Cap there before any encoding. A capped
source never takes the ready path: renderPrompt trims, so a prefix of
mostly whitespace could fit and silently drop the rest without consent.
Output is unchanged: 2,000 random cases matched develop exactly.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ChatGPT can require signing in, and it does not always send a prefilled
prompt. The README and options panel mentioned pressing Enter only in
passing. Give both a prominent note covering sign-in and Enter or Send,
and drop the inline mentions it replaces.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>