Skip to content

Auto Retry

ExtensionNo adult content

.moonsight.auto_retryPublished 25 September 2026

Auto Retry

Automatically retry failed, empty, stalled, or cut-off replies, with optional refusal detection.

About

A Lumiverse extension. It re-runs an AI reply when it fails, comes back empty, stalls partway, gets cut off mid-sentence, or refuses by mistake, so you do not have to catch it and press regenerate yourself.

It works alongside Auto Refine. Auto Retry decides whether a reply is worth keeping. Auto Refine improves the ones that are.

Permissions

5 permissions

Granted on install1 permission

  1. ui_panels

    Open floating widgets and docked panels.

Needs an admin to approve4 permissions

  1. generation

    Run text generations for you and see your connection profiles.

  2. chats

    Read, change and delete your chats.

  3. characters

    Read, create, change and delete your characters.

What it adds

5 additions

Found in the extension’s code. Anything named only while it runs is not listed.

  • UI surfaces4
  • Input bar action

  • Drawer tab: Auto Retry

  • Float widget

  • Input bar action: Auto Retry settings

  • Generation hooks1
  • Prompt interceptor

Version and source

2 details · 1 link

Details2 details

Version

5.8.2

Minimum Lumiverse version

0.1.0

Links1 link

What it does

It watches each reply and tries again when:

  • the provider sends back an error (by default it skips errors that will not go away, like a wrong API key)

  • the reply comes back empty, including one that "thinks" but never writes anything

  • the reply is cut off mid-sentence (see Cut-off detection)

  • the reply is an accidental out-of-character refusal, or the model breaks off mid-scene
    (see Accidental-refusal detection)

  • the reply stops arriving partway and nothing more comes for a while

  • a reply never starts or never finishes

  • (optional, off by default) the reply is very short

  • (optional, off by default) the model leaves the scene to offer real-world support
    (see Stopping to offer support, and Safety before switching it on)

Also:

  • Every retry waits a little longer than the last, and longer again when the server says it is busy.

  • All the reasons share one retry limit, so no reply is retried more than you allow, and it can never loop forever.

  • A reply written by Impersonate into your input box is never retried.

Unsupported formatting is hidden here. The original text is preserved in downloads.

Install

  1. In Lumiverse, open Extensions.

  2. Install from this address:

    https://github.com/starlitcode/Lumiverse-Auto-Retry
  3. To see its settings, open the chat input bar, tap Extras, and choose Auto Retry settings.

It works with no setup. Everything else is optional.

You are in control

  • Stop, or Cancel on the retry pop-up, stops it right away. Any waiting retry is dropped, the count resets, and a stopped reply cannot start again by itself.

  • Cancel on the pop-up belongs to the extension, so it always works.

  • To switch it off for one chat, or everywhere, see Turning it off.

Unsupported formatting is hidden here. The original text is preserved in downloads.

More from the README

4 items

  1. Not for sexual content involving minors

    Auto Retry is not intended for sexual content involving minors, and I do not condone or support anybody using it for that.

    So nobody has to guess what that means for their own chats, here is exactly what it does:

    • It never reads your story to judge it, and never changes a word of it. It watches how a reply ended and, when that looks wrong, presses Lumiverse's own retry button. It has no rules about what a story may contain.

    • A retry asks your model again for the same reply. Whether anything is written is still up to your model and your provider. Retries stop at Most tries per message, 4 by default.

    • It recognises a refusal about a character's age for one reason: models sometimes misread an adult character, written as an adult, as a minor, and that refusal should not have happened. It cannot tell a mistaken refusal from a correct one, so with It looks like an accidental refusal on, which it is by default, any refusal it recognises is retried the same way, up to that limit. It is not there to get sexual content involving a minor past a model.

    • A provider that blocks a request before anything is written is treated as a refusal too, for the same reason, and with the same limit.

    • The retry notes are off by default. Switched on, one is sent with a refusal retry. None of them mentions age or any subject, and every word of each is on the panel before you pick it.

    The words it recognises refusals by, including the ones about age, are listed on When it retries. None of them reaches a prompt.

    I cannot control what somebody does with an extension once they have it. What I can do is say plainly where I stand.

  2. Documentation

    • When it retries: cut-off detection and accidental-refusal detection

    • All settings: every option with its default, the panel, and turning it off

    • Buttons it clicks: fixing the regenerate button, Regeneration Feedback, writing selectors

    • The on-screen panel: the log, the prompt viewer and the stats

    • Import and export: moving your setup between devices

    • Reporting a bug

    • Safety: who this is built for, the one setting that asks before it turns on, and what the retry loop can turn into

    • Privacy: what the extension can and cannot reach, what it keeps, and how to check any of it

    • Security policy: how to report a security problem

    • Changelog: what changed in every version

  3. How it works

    • It listens to Lumiverse's own generation events. When a reply goes wrong, it presses your swipe or regenerate button to try again.

    • Pressing that button is the only part that depends on the page layout. If a Lumiverse update moves the buttons, Buttons it clicks shows how to point it at the new ones.

    • A small backend keeps your settings with your account, not in one browser, and holds the retry note for the one reply it is meant for.

    • It makes no network calls of its own. Privacy covers the five permissions it asks for and what still works without each one.

    • The files Lumiverse loads are dist/frontend.js and dist/backend.js. They are plain, readable JavaScript, not minified. Privacy goes through the rest of the repo file by file.

Unsupported formatting is hidden here. The original text is preserved in downloads.