Files
oai-swift/oAI
rune 8dee77541f Use non-chat-like delimiters for merge transcripts, log truncation
Rune retested after the previous merge fix (bigger token budget,
stronger instruction) with the exact same DDNS Docker debugging
conversations and got the identical failure — same error text,
same models. Logs showed a single ~86s request with a large prompt
(31k tokens cached) and no truncation signal available to check.

The remaining suspect: the transcript was formatted as "**User:**" /
"**Assistant:**" markdown, which closely mimics a live chat turn
format. Over a long, noisy transcript that includes something reading
like a directive ("no more editing", etc), the model can lose track of
"this is data to merge" and slip into continuing/replying to it
instead — matching exactly what was observed. Replaced the transcript
markers with synthetic, non-chat-like tokens (<<<USER_TURN>>> etc) and
added an explicit "this is not a live conversation" framing both
before and after the transcript block, not just once at the top.

Also: log OpenRouter's finishReason when it's "length" (i.e. the
response was actually cut off) so a future failure like this is
distinguishable from a formatting/instruction-following miss without
guessing from the log lines Rune already has available.
2026-07-28 14:11:11 +02:00
..
2026-06-29 14:04:27 +02:00