docs(voices-seat): every voice prefixes an empty think block unless the caller disables it

Found while smoke-testing the lv-mccarthy ship. Measured live:

  default                 -> '<think>\n\n</think>\n\nThere were no horses in the road...'
  enable_thinking=false   -> 'The sun was hot on the dry riverbed and the stones were red...'

This is the Qwen3-4B-Instruct CHAT TEMPLATE, not an adapter property, so it applies
to lv-yarros, lv-bronte and lv-hemingway equally and has done since this seat went
up on 2026-09-16.

No gate number is affected: gen_beats_chat_yarros.py sets enable_thinking when the
template supports it, so every arm in every r49 gate was generated without the tags.
But a caller that does not pass chat_template_kwargs gets 17 junk characters at the
head of every passage -- and any word-count or in-band check run over that string is
counting the tags as prose. Skaldsong should be checked.
This commit is contained in:
Vuong Hoang
2026-09-21 18:02:56 -07:00
parent 17db37e1cc
commit 6692701571
+13
View File
@@ -48,6 +48,19 @@
# MEASURED RESIDENCY: 10,740 MiB, against a requested 0.11 x 94.97 GiB = 10,700 MiB — a 40 MiB
# miss on a box where the util fraction has been wrong by 8-10 GB in BOTH directions. Pinning
# --kv-cache-memory in bytes is what makes the fraction predictive; do not remove it.
# ⚠⚠ CALLERS MUST SEND `chat_template_kwargs: {"enable_thinking": false}` OR EVERY VOICE
# PREFIXES AN EMPTY `<think></think>` BLOCK TO ITS OUTPUT. Measured live 2026-09-21 on
# lv-mccarthy, and it is a property of the Qwen3-4B-Instruct CHAT TEMPLATE rather than of any
# adapter -- so it applies to lv-yarros, lv-bronte and lv-hemingway too, and has done since
# this seat went up on 2026-09-16:
#
# default -> '<think>\n\n</think>\n\nThere were no horses in the road...'
# enable_thinking=false -> 'The sun was hot on the dry riverbed and the stones were red...'
#
# The r49 gate harness passes it (gen_beats_chat_yarros.py sets enable_thinking when the
# template supports it), which is why no gate number is affected -- but a caller that does NOT
# pass it gets 17 junk characters at the head of every passage, and a word-count or an
# in-band check run over that string is measuring the tags as prose. Check Skaldsong.
name: voices-seat
services: