Skip to content

v6.8.6 — Inline tracker prompt-following + two-tier recovery

Choose a tag to compare

@xenofei xenofei released this 07 Apr 18:43
· 252 commits to main since this release

Highlights

Two targeted improvements to the inline (Together) generation path that reduce tracker omissions and make the cases that still happen significantly cheaper to recover from.

Added

  • Head-anchor injection for the inline tracker prompt — a short reminder is prepended to the start of the chat context in addition to the existing tail reminder. Counters lost-in-the-middle attention behavior on long prompts: as the injected schema spec plus accumulated snapshot state grows past ~3k tokens, the appendix instruction at the end can lose attention weight and the model may forget to emit the tracker block entirely. The head anchor primes the model's planning phase to know structured output is required before it begins narrative generation.

  • Two-tier recovery for tracker omission — when extraction fails because no tracker markers are present in the response, ScenePulse now attempts a cheap continuation re-prompt before escalating to a full separate generation. The continuation passes only the response text and asks for a tracker JSON object for it.

    • Cost: ~600–2500 prompt tokens vs ~6000 for the existing full fallback
    • Latency: ~10–15s vs ~40s
    • The tracker is generated from the exact text already on screen rather than being re-derived from chat context, so it stays in sync
    • Falls through to the existing full separate generation if the continuation fails — worst-case behavior is unchanged
    • Triggered only for the "no SP markers" failure mode when response length is between 500 and 2500 chars
    • The "markers found, JSON unparseable" failure mode skips this tier and goes straight to the full fallback, since re-prompting will not change the underlying sampling/formatting glitch

Notes

Both changes target the inline (Together) generation path only. Neither touches cleanJson or the vendored jsonrepair library. The full separate-generation fallback is unchanged and remains the final tier of recovery.


Full changelog: v6.8.5...v6.8.6