Skip to content

0.1.42: stop match in assistant prefill ends generation with finish=stop #1950

Closed as not planned

Description

@antoniovitale

Environment: Strata 0.1.42 release binary with serve/server.py at the same tag, Windows 11, RTX 5070 12 GB, single GPU. Reproduced with two models and their stock configs (Swift IQ2_XS, IQ3_XXS). Did not occur on 0.1.39 with the same stop list and full prompt shape.

Repro (<served-model> = the loaded model name):

curl -s http://127.0.0.1:8080/v1/chat/completions -H "Content-Type: application/json" -d '{"model":"<served-model>","messages":[{"role":"user","content":"Write the body."},{"role":"assistant","content":"Here:\n```python\nfrom typing import List\n\n\ndef f(x):\n    pass\n"}],"max_tokens":2048,"temperature":0,"reasoning_budget_tokens":1024,"stream":true,"stop":["\ndef"]}'

Expected: the model continues the body. Actual: finish_reason: stop after ~35 served chars (fence and imports echo). The served text contains no newline-def.

Notes, each run repeatedly with identical results:

  • "stop": [] or an impossible stop string: full correct body.
  • ["\ndef"]: 35-char stub. Same on the 337-token variant of this prompt.
  • ["\nclass"] on the same prompt: full 550-char body.
  • "\ndef" in the user message only, or "\n#" in a prefill: full answers.
  • stream: false and omitting the budget key give the same result on the full prompt.

Effect: any client that prefills the assistant turn and passes code stops gets truncated completions with a stop finish reason.

Activity

  1. changed the title [-]0.1.42: stop string present in the assistant prefill halts generation after the first chunk (finish=stop), though never generated[/-] [+]0.1.42: stop match in assistant prefill ends generation with finish=stop[/+] on Oct 11, 2026
  2. Niko1221 commented on Oct 19, 2026

    @Niko1221
    Owner

    Thanks for taking the time to report this.

    We're resetting the tracker for 0.2.0-beta. There are more than 1,300 open issues and pull requests, too many for us to read properly, so we're closing everything that isn't being worked on right now. Closed here does not mean rejected.

    To reopen it takes about two minutes:

    1. Re-test on 0.2.0-beta. It may already be fixed. Write down what you see.
    2. Start the title with its area: [Engine], [GUI], [TUI], [Benchmark], [Docs] or [Other].
    3. Fill in the parts of the issue form: what happened, the Strata version, your graphics card, memory and system.
    4. Comment /reopen. A check runs and either reopens the issue or lists what is still missing.

    The rules are in CONTRIBUTING.md.

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions