feat(bot): posts name the session by number and title in the embed title (#1184) #1185

Merged
claude-bot merged 2 commits from feat/1184-session-title-in-bot-posts into main 2026-10-14 01:14:44 +00:00
Collaborator

Closes #1184 (D304, replacing D86 for embed titles).

The owner saw the first 4.5.1 reminder on prod, "In an hour: Session 14", and asked for the session's title in it.

  • Bot. faces.session_heading gives "Session 14 · The Amberwake Council" (the number alone when untitled). It is used in the embed title of every face that names a session there: poll and closed poll ("When should Session 14 be? · {title} · {campaign}"), time added, confirmed, short-handed, reminder, cancelled, played, audio going, summary approved, votes so far, and the recording and recovery faces. The title is one-lined and is the only part cut to fit Discord's 256 characters. Descriptions and field values keep the number.
  • The two lines that ping stay number-only (vote_nudge, rsvp_nudge, #1166 rule 1), and their events no longer carry a title at all. notification_dm is unchanged (D152).
  • Backend. bot_post_facts.session_facts sends title only when the session has a real one. Nine events that used to send a placeholder ("Session 14", "Untitled Session") as title no longer do, so the bot can trust the key.

Additive on the wire; no BOT_CONTRACT_VERSION bump. A 4.5.1 bot against this backend keeps naming sessions by number.

Verified

On docker-test: bot suite (1211 passed); backend test_bot_post_facts.py, the reminder, nudge, approval, scheduling, vote and notification modules and the wiki title-reader guard (387, then the one failing assertion fixed and its module re-run); ruff; version and changelog checks; J2 run for real in the desktop project (7 passed) before the poll-heading reorder, not after.

Not verified: how Discord's client draws * or _ in an embed title (it may show emphasis; it cannot ping or link). The dev bot has no Discord token, so the first real look is on prod.

🤖 Generated with Claude Code

Closes #1184 (D304, replacing D86 for embed titles). The owner saw the first 4.5.1 reminder on prod, "In an hour: Session 14", and asked for the session's title in it. - **Bot.** `faces.session_heading` gives "Session 14 · The Amberwake Council" (the number alone when untitled). It is used in the **embed title** of every face that names a session there: poll and closed poll ("When should Session 14 be? · {title} · {campaign}"), time added, confirmed, short-handed, reminder, cancelled, played, audio going, summary approved, votes so far, and the recording and recovery faces. The title is one-lined and is the only part cut to fit Discord's 256 characters. Descriptions and field values keep the number. - **The two lines that ping stay number-only** (`vote_nudge`, `rsvp_nudge`, #1166 rule 1), and their events no longer carry a `title` at all. `notification_dm` is unchanged (D152). - **Backend.** `bot_post_facts.session_facts` sends `title` only when the session has a real one. Nine events that used to send a placeholder ("Session 14", "Untitled Session") as `title` no longer do, so the bot can trust the key. Additive on the wire; no `BOT_CONTRACT_VERSION` bump. A 4.5.1 bot against this backend keeps naming sessions by number. ## Verified On `docker-test`: bot suite (1211 passed); backend `test_bot_post_facts.py`, the reminder, nudge, approval, scheduling, vote and notification modules and the wiki title-reader guard (387, then the one failing assertion fixed and its module re-run); ruff; version and changelog checks; J2 run for real in the desktop project (7 passed) before the poll-heading reorder, not after. Not verified: how Discord's client draws `*` or `_` in an embed title (it may show emphasis; it cannot ping or link). The dev bot has no Discord token, so the first real look is on prod. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
An embed title that names a session now reads "Session 14 · Smudged Maps
and Soft Beds" (D304, replacing D86's number-only for titles). Descriptions,
fields and the two pinging lines stay number-only; notification_dm is
unchanged. session_facts sends the stored title when there is one, and no
event sends a placeholder under "title" any more. Additive on the wire:
no BOT_CONTRACT_VERSION bump.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix(bot): poll titles keep the question on the number, title after it (#1184)
All checks were successful
CI / Bot/backend version sync (pull_request) Successful in 26s
CI / Backend lint (ruff) (pull_request) Successful in 50s
CI / Feedback site tests (pull_request) Successful in 47s
CI / Does this change touch the recording path? (pull_request) Successful in 26s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Has been skipped
CI / Which journeys does this change need? (pull_request) Successful in 23s
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 1m36s
CI / Bot tests and audit (pull_request) Successful in 3m3s
CI / Docker image build (pull_request) Successful in 5m21s
CI / Frontend (shard 2/2) (pull_request) Successful in 8m28s
CI / Frontend (shard 1/2) (pull_request) Successful in 9m56s
CI / End-to-end journeys (desktop) (desktop) (pull_request) Successful in 11m11s
CI / Backend migration, tests, and audit (pull_request) Successful in 28m34s
f25a5ccdfc
"When should Session 14 be? · {title} · {campaign}", the title cut first. The vote
reminder event no longer carries a title, like the RSVP nudge.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-bot scheduled this pull request to auto merge when all checks succeed 2026-10-14 00:46:08 +00:00
claude-bot deleted branch feat/1184-session-title-in-bot-posts 2026-10-14 01:14:44 +00:00
Sign in to join this conversation.
No description provided.