Skip to content

Releases: TesterBender/Intercede

Intercede v0.7.0 — Your Prompt, Your Backend

Choose a tag to compare

@TesterBender TesterBender released this 02 Aug 04:17
cac7154

The rewrite instruction has more influence over an intercession than almost anything else, and until now it was fixed wording tuned against one setup.

Intercede v0.7.0 hands that instruction over to you.

Requires SillyTavern 1.18.0+. Intercede has no server plugin, telemetry, or Intercede-operated service. Generation continues to use the backend already configured in SillyTavern.

Highlights

Choose the rewrite instruction

Extensions → Intercede → Prompt now offers four options:

  • Scene notes — the existing default instruction, unchanged from v0.6.0.
  • Direct — the same general framing with fewer tokens.
  • Terse — shorter wording intended for smaller local models that tend to repeat the instruction as a preamble.
  • Custom… — supply your own complete instruction template.

Edit each rewrite strength

The wording behind all three rewrite strengths can now be changed independently:

  • Preserve closely
  • Adapt naturally
  • Reimagine remainder

Empty fields use their built-in defaults, so clearing a field is enough to undo an edit. Reset prompt to default clears every prompt customization and returns to Scene notes.

Preview the assembled prompt

A collapsible preview shows the complete instruction with a sample continuation inserted.

The preview updates while the prompt is edited and warns when a custom template is unusable. A template missing {{suffix}} is never sent: Intercede falls back to the safe default instead of silently dropping the continuation.

Custom-template placeholders

A custom template supports two markers:

  • {{suffix}} is required and marks where the set-aside continuation is inserted.
  • {{mode}} is optional and marks where the selected rewrite-strength wording is inserted. When omitted, the wording is appended to the end.

Placeholders are interpreted only in text written as part of the template.

Placeholder-looking text inside the continuation remains literal. A character can say {{mode}}, a code sample can contain {{suffix}}, and text such as $& or $' is inserted without being interpreted as replacement syntax.

Mode wording is also inserted as data and is never recursively processed.

Each immediate container wrapping a {{suffix}} marker is protected against being closed early by matching text inside the continuation. Multiple suffix markers and differently named containers remain supported.

Compatibility

Users who never edit the Prompt section continue to send the same default instruction as v0.6.0, byte for byte.

New settings initialize automatically. Existing preferences, chats, snapshots, and recovery data require no migration.

Swipes and regenerations apply the prompt configuration that is active when they are requested.

Diagnostics and privacy

/intercede diagnostics now reports:

  • the selected prompt preset;
  • whether its wording has been customized;
  • whether an invalid custom template caused fallback to the default.

The actual prompt text is never included in diagnostics, because diagnostic reports may be pasted into public issues.

SillyTavern macros such as {{char}} and {{user}} are not expanded inside Intercede prompt templates.

What was tested

Automated validation:

  • 18 test files passed.
  • 304 tests passed.
  • ESLint passed.
  • The default prompt remains byte-identical to v0.6.0 for every rewrite strength.

Live validation included:

  • a custom template reaching the outgoing backend request;
  • literal {{mode}} text surviving unchanged inside the set-aside continuation;
  • mode wording appearing separately from the template marker;
  • swiping a continuation after changing the active prompt configuration;
  • ordinary intercession and request assembly through a Claude chat-completion setup.

Coverage notes

The Terse preset has not yet been tuned against a broad selection of small local models. It should be treated as a starting point rather than a universally validated configuration.

The following broader coverage gaps remain from v0.6.0:

  • non-streaming cancellation;
  • text-completion backends;
  • a broad range of local-LLM backends;
  • mobile and keyboard-only workflows;
  • extended repeated-use sessions;
  • a broad third-party-extension compatibility matrix.

Known limitations

  • Prompt customization is global rather than per chat or per character.
  • SillyTavern macros are not expanded inside templates.
  • Preset import and export are not implemented.
  • Heuristics that warn when a model discusses the rewrite are advisory. Heavily customized terminology may produce fewer warnings, but these warnings never block or alter a commit.

Installation

In SillyTavern:

  1. Open Extensions.
  2. Select Install extension.
  3. Paste the Intercede repository URL.
  4. Reload SillyTavern after installation or updating.

No separate release asset is required.

License

MIT.

Intercede v0.6.0

Choose a tag to compare

@TesterBender TesterBender released this 01 Aug 11:50
25e077d

Respond inside an already completed assistant message. Pick a boundary, write your reply, and Intercede regenerates the remainder as a real Assistant → User → Assistant exchange, while keeping the original continuation as recoverable, non-canonical reference material.

Requires SillyTavern 1.18.0+.

Intercede has no server plugin, no telemetry, and no Intercede-operated external service. Generation uses the backend you already have configured in SillyTavern. Undo snapshots and the recovery journal remain in your browser profile.

Highlights

  • Real three-role history

    • The preserved prefix stays as the original assistant text before the cut.
    • Your insertion becomes a genuine user-role message.
    • The rewritten remainder becomes a normal assistant message that can be swiped, compared, or interceded again.
  • Transactional safety

    • Intercede snapshots first, validates cuts against raw message text, proves message ownership before removing anything, and rolls back selectively instead of truncating by length.
    • A recovery journal is kept for interrupted operations such as crashes or refreshes.
  • One-generation prompt lease

    • The rewrite instruction is installed only for the intended generation and cleared on every exit path.
    • If another generation overlaps and strips the instruction, Intercede rolls back rather than committing a continuation that never received it.
  • Exact undo at the chat tail

    • While the intercession is still the latest chat change, undo restores the original message text, swipes, and metadata.
  • Useful diagnostics

    • /intercede diagnostics reports lifecycle and transaction state in a way that is safe to paste into bug reports.

Reliability improvements in v0.6.0

This first release includes the lifecycle and safety work needed to behave correctly on current SillyTavern 1.18.0 behavior:

  • correct handling of generation lifecycle events;
  • abandoned slash-command generation starts no longer accumulate as false concurrent generations;
  • diagnostics now reconcile and report state consistently;
  • continuation capture is conservative without falling back to “just take the latest message”;
  • overlapping quiet/background generations fail closed and roll back safely;
  • failure and recovery notices were polished so users receive clearer, less contradictory messages.

Diagnostics

  • /intercede reset and Intercede.resetDiagnostics() clear diagnostic counters and logs only.
  • A bounded lifecycle log of metadata only can be included for debugging.
  • The log is designed not to include prompt or chat content.
  • Composer diagnostics may report 0 open — 1 reconciled now, because the command itself creates a start that SillyTavern abandons before normal generation proceeds.

What was tested for this release

Automated suite:

  • 257 tests across 17 files

Live testing on SillyTavern 1.18.0 with a streaming chat-completion backend included:

  • clean diagnostics baseline;
  • three consecutive composer /intercede diagnostics calls with no records accumulating;
  • a normal intercession commit;
  • the comparison view;
  • undo restoring the original;
  • cancellation during generation;
  • a deliberately provoked nested quiet generation that stripped the rewrite instruction, which Intercede correctly rolled back instead of committing.

Coverage notes

The following were not exercised for this release:

  • non-streaming cancellation;
  • text-completion backends;
  • local-LLM backends;
  • mobile layout;
  • full keyboard-only pass;
  • extended soak/repetition testing in one session;
  • broad third-party extension compatibility matrix.

These are coverage gaps, not known faults. Reports from environments outside the tested set are welcome, and /intercede diagnostics is intended to make those reports more useful.

Known limitations

  • Latest completed assistant message only.
  • One intercession at a time.
  • Group chats are not supported yet.
  • Undo is available only while the intercession is still the chat tail.
  • Undo snapshots live in browser storage and do not travel with exported chats.
  • Intercede does not cut inside code fences, inline code, HTML tags, macros, paired Markdown emphasis, list runs, or links.
  • If another extension disturbs an intercession mid-generation, Intercede rolls back rather than trying to repair the result.

Installation

Install as a SillyTavern extension from this repository.

License

MIT.