tokenizer_config declared eos_token = "<eos>" (id 1, document end), but the chat template ends a turn with <end_of_turn> (id 106) and upstream generation_config lists eos_token_id = [1, 106]. A runtime that derives its stop token from eos_token alone (swift-transformers does) never saw the turn terminator and generated to the token cap.
Render-safe: the template emits the terminator literally, not via {{ eos_token }}, so rendering is unchanged. Only this one field differs; the rest of the file is byte-identical.