| D-M2-18-0 |
2026-10-22 |
Built on an old integration branch with M2-08 and M2-09 stacked, then ported onto main once both had landed: only the ticket's own commits were taken over, the chapter names follow main (09-agents.md), the generated clients were regenerated, and the run-driven tests stand in for pollAgentEvents with runs.Delivery like the M2-09 tests (the world has no gateway). |
The steering task wins over the brief; the merged names win (D-W-100). |
| D-M2-18-1 |
2026-10-21 |
The placeholder words are data per language in internal/chat/domain/title/wordlists/<lang>.txt (SPDX line first, # comments, one normalised entry per line), embedded with embed.FS and parsed once at initialisation; the schema default of thread.placeholder_titles is title.DefaultConfigText(), the union in language and file order without repeats, so the words exist once. A new language is a new file plus the new default in 09 section 21. |
REUSE 5.1 "Adaptation", D-L4; reading an embedded file touches only memory, so the domain stays free of input and output. |
| D-M2-18-2 |
2026-10-21 |
The default holds no empty entry; the empty title is a placeholder through 09 section 12 point 2 itself, and a configured entry that is blank after normalisation is ignored. Replaces M1-55/2 for the order of the default. |
The loader rejects an empty list element (M1-07). |
| D-M2-18-3 |
2026-10-21 |
Numbered form: a normalised title P + " " + D with D one or more ASCII digits and P a non-empty entry under strings.EqualFold; the empty entry has no numbered form, so "2026" is a real title. |
09 section 12 point 2 "with an appended number"; other digits and characters are real titles. |
| D-M2-18-4 |
2026-10-21 |
No Unicode NFKC and no "only punctuation up to a fixed length" rule, although REUSE 5.1 names both. |
09 section 12 point 2 ends with "Otherwise the source becomes manual"; NFKC needs a library outside the standard library, a fixed length would be a threshold without a key. |
| D-M2-18-5 |
2026-10-21 |
The placeholder rule applies to every creation by a person that carries a title, forum post and thread from a message alike. |
The reason of 09 section 12 point 2 ("New chat" is not a title anyone wants to keep) holds for both. |
| D-M2-18-6 |
2026-10-21 |
A person's title change always gives manual, also with a placeholder text and on a manual thread. |
Placeholder detection runs only at creation (R-AG-15); a person who sets a title chose it. |
| D-M2-18-7 |
2026-10-21 |
An agent or app other than the thread's operator agent that passes thread.title.update (as creator) sets manual; 09 section 12 point 1 and the description of setThreadTitle say so now. |
05 thread.title.update exempts only the operator agent, and the core contract wins (SPEC 8). |