fix(threads): name a thread from our own words, never the member's #1058
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!1058
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/thread-names"
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?
Closes #1036.
One correction to the issue's premise
#1036 says Discord takes the thread name from the summoning message and truncates it. Discord never chose those names - we did.
threadCreationNamefell back tothreadNameFor, which lifts the member's message and trims it tothreadTitleRunes, which is 60. That is exactly the "about 60 characters" the issue measured. The mechanism is ours and it is one function.This matters because it makes the fix smaller and more certain than the issue expected: nothing needs to be worked around, one fallback needs to stop existing.
What changed
The derivation is deleted rather than bounded. Bounding it better would still put somebody else's sentence under "Dowel started a thread:".
threadTitleand its one regeneration are untouched, so #1036's second rejected alternative is not being introduced - it already shipped and this does not extend it.threadNameFallback, which the harness already owned for the all-punctuation case. Nothing new was invented to name a thread.threadNameFromstays. It still cleans the titler's own output at line 95, so removing it would be removing a different guard.Acceptance, against the issue's own wording
Both hold by construction now: there is no code path from a member's message to a thread name.
Tests
Two tests asserted the old behaviour, one of them named
TestAThreadNameComesFromTheMemberNotFromUs. Keeping them would have locked in the defect, so they are replaced by one asserting the opposite, run against the real string from the export:and checking that none of
exhibitors,cracked,rosterreaches the name. A second test covers the half that must not regress: a generated title still survives, and still gets bounded.go test ./...clean apart fromTestRenderedPromptsStayInsideTheirBudget, which is main's and which #1055 fixes.Scope
One file plus its test. No deploy config, no roster, no chart. It rides the next image with everything else.