Skip to content

TTSR on DeepSeek V4.1 Flash (thinking max): DSML leak misclassified as collapse-repetition, and the 'once' rule bricks the session #4621

Open

Description

@code-yeongyu

Summary

On DeepSeek V4.1 Flash at thinking level max, the collapse-repetition stream rule fires repeatedly. Because the rule corrects only once per session (repeatMode: "once", nudgeKey: "collapse-repetition"), every turn after the first correction ends immediately with ttsr-loop-stopped and no recovery attempt, so the session becomes unusable. Reported in detail by a community member in code-yeongyu/oh-my-openagent#11610 (thank you, @asmond-lab).

Evidence (from the report)

  • omo 5.1.46 (engine senpi 2026.10.23-1), desktop on Windows; several routes to the same model family.
  • 21 collapse-repetition triggers and 8 hard stops across 6 sessions, all at thinking max.
  • The model emits DeepSeek DSML tool-call envelopes (<|DSML| invoke …>) inside thinking. The runtime keeps them, and later output imitates them until it collapses.
  • The control-token-leak detector does not recognize DSML tokens, so the leak is classified as collapse-repetition instead of going to the resample path.
  • The same session-ending pattern also occurs in threads with no DSML at all.
  • The desktop launches the runtime with fixed arguments, so a user has no way to pass --ttsr-disabled.

Related

code-yeongyu/oh-my-openagent#11610 (report), #3883 (bracket/known-control evidence vs collapse classification), #4537 / #4538 (repetitive-turns pausing productive turns).

Acceptance criteria

  • DeepSeek DSML envelopes in thinking are stripped (or never persisted/echoed), test-proven with a recorded stream shape.
  • The control-token leak classifier recognizes DSML special tokens and routes them to resample, not collapse-repetition (test).
  • A "once" stream rule can never brick a session: after the one correction, later turns get bounded recovery (e.g. a fresh correction budget per user turn, or a resample) instead of an immediate ttsr-loop-stopped on every turn (test covering the repeated-trigger sequence).
  • Hosts that launch the runtime with fixed arguments (desktop) can still turn TTSR rules off or down through a setting.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions