Emails open with the news, not a second "Quest Board"; the D171 record-start comment (#945 follow-ups) #949

Merged
claude-bot merged 2 commits from fix/945-leftovers into main 2026-09-30 06:39:04 +00:00
Collaborator

These are the three things #945 noticed but didn't change (#736):

  1. The email's <h2> repeated "Quest Board" under the brand line. EX-040 draws the brand and then the body, with no heading. render() now takes heading=None and leaves the <h2> out, and notification emails pass it. Recaps keep their "Session Recap: …" heading.
  2. The stale comment in session_record_start said the bot refuses when it can't announce. Since D171 it records anyway and returns announced_in: null. This is a comment-only change.
  3. The answer-buttons email has no link to the session page. I left it as drawn: EX-040's answer email carries only the three buttons. The answer page those buttons open now links to the session instead (#901, in its own PR).

Tests:

  • test_email_templates.py gains two: a notification email has no <h2> and its text starts with the line; render(heading=None) leaves the heading out. Both fail on main.
  • The four modules that touch these symbols pass: test_email_templates, test_email_routes, test_table_live and wiki/test_body_readers (99 tests).
  • ruff check and format are clean over app/, tests/, scripts/ and e2e/.
  • changelog.py check passes.

Changelog: changelog.d/945-email-heading.changed.md.

🤖 Generated with Claude Code

These are the three things #945 noticed but didn't change (#736): 1. **The email's `<h2>` repeated "Quest Board"** under the brand line. EX-040 draws the brand and then the body, with no heading. `render()` now takes `heading=None` and leaves the `<h2>` out, and notification emails pass it. Recaps keep their "Session Recap: …" heading. 2. **The stale comment in `session_record_start`** said the bot refuses when it can't announce. Since D171 it records anyway and returns `announced_in: null`. This is a comment-only change. 3. **The answer-buttons email has no link to the session page.** I left it as drawn: EX-040's answer email carries only the three buttons. The answer page those buttons open now links to the session instead (#901, in its own PR). **Tests:** - `test_email_templates.py` gains two: a notification email has no `<h2>` and its text starts with the line; `render(heading=None)` leaves the heading out. Both fail on main. - The four modules that touch these symbols pass: `test_email_templates`, `test_email_routes`, `test_table_live` and `wiki/test_body_readers` (99 tests). - ruff check and format are clean over `app/`, `tests/`, `scripts/` and `e2e/`. - `changelog.py check` passes. Changelog: `changelog.d/945-email-heading.changed.md`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(email): no "Quest Board" heading under the brand line; D171 comment (#945 follow-ups)
Some checks failed
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 56s
CI / Docker image build (pull_request) Successful in 22s
CI / Does this change touch the recording path? (pull_request) Successful in 27s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Has been skipped
CI / Bot tests and audit (pull_request) Successful in 1m55s
CI / Bot/backend version sync (pull_request) Successful in 1m12s
CI / Backend lint (ruff) (pull_request) Successful in 1m23s
CI / Feedback site tests (pull_request) Successful in 2m4s
CI / Frontend (shard 2/2) (pull_request) Failing after 5m19s
CI / Frontend (shard 1/2) (pull_request) Successful in 7m1s
CI / End-to-end journeys (desktop) (pull_request) Successful in 6m52s
CI / End-to-end journeys (phone) (pull_request) Successful in 7m18s
CI / Backend migration, tests, and audit (pull_request) Successful in 15m1s
CI / End-to-end journeys (keyboard) (pull_request) Successful in 15m53s
e5f9b7130f
- Notification emails open with the news itself, as EX-040 draws them;
  render() takes heading=None to leave the <h2> out. Recaps keep theirs.
- session_record_start's comment said the bot refuses when it can't
  announce; since D171 it records anyway and returns announced_in: null.
- The answer-buttons email stays without a session link, as drawn; the
  answer page it opens links the session (#901).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merge remote-tracking branch 'origin/main' into fix/945-leftovers
All checks were successful
CI / Backend lint (ruff) (pull_request) Successful in 34s
CI / Feedback site tests (pull_request) Successful in 43s
CI / Bot/backend version sync (pull_request) Successful in 35s
CI / Docker image build (pull_request) Successful in 16s
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 59s
CI / Does this change touch the recording path? (pull_request) Successful in 28s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Has been skipped
CI / Bot tests and audit (pull_request) Successful in 1m59s
CI / Frontend (shard 2/2) (pull_request) Successful in 5m48s
CI / End-to-end journeys (phone) (pull_request) Successful in 7m33s
CI / End-to-end journeys (keyboard) (pull_request) Successful in 9m55s
CI / End-to-end journeys (desktop) (pull_request) Successful in 10m12s
CI / Frontend (shard 1/2) (pull_request) Successful in 14m50s
CI / Backend migration, tests, and audit (pull_request) Successful in 16m37s
0cdeb27b0b
Sign in to join this conversation.
No description provided.