fix: ask the titler for the length the thread title bound allows #919
No reviewers
Labels
No labels
move-to-repo
coilyco-bridge-deploy
move-to-repo
coilyco-flight-deck-agent-compose
move-to-repo
coilyco-gaming-eco-app
move-to-repo
coilysiren-inbox
move-to-repo
unknown
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!919
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-904-thread-title-length"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The clip was never a truncation. Fixes what actually decided title length.
What was happening
threadTitleRuneswas 50 andthreadNameRuneswas 100. Neither is near thirty, and nothing else trims a title. The titler was asked to "name this request in at most six words", and six words is about thirty characters. So the bound was a ceiling the model never approached, and the reported clip was the model complying with its instructions.Raising the cap alone, which is what the issue asks for on its face, would have changed nothing a member could see.
What changed
SIRENS_ECHO_THREAD_TITLE_WORDS, default 9, a new knob inconfig.go.threadTitlePromptbecomes a function built from it, the same shapethreadTitleRetryPromptalready had for the rune bound.SIRENS_ECHO_THREAD_TITLE_RUNES50 to 60, the value the scope update asked to pin.agent/rendered/knobs.txtregenerated byjust knobs.Nine words reaches roughly 54 characters, inside the 40 to 60 range, and under the 60 ceiling so the regeneration path does not start firing on every title.
The issue's second ask
"Confirm whether the earlier clip fix is still in place so the two truncations are not mistaken for one." Both are, and neither is this:
threadNameRunesat 100 bounds the derived name at Discord's own cap, inthreadNameFrom.thread.title.trimmed.There were two bounds and one instruction, and the instruction was the binding one.
Tests
TestTheTitlerIsAskedForTheLengthTheBoundAllowsasserts the word budget reaches the prompt, that the reachable length clears the 40 floor, that the rune bound sits in the 40 to 60 range, and that the words do not overshoot the bound.TestAnOverLongTitleIsRegeneratedWithTheLimitStatedasserted the literal string"50 characters", which is how a bound change strands a test. It now builds the sentence from the knob.just gatePASS.closes #904