feat: nudge follow-ups: the button on This week, the setting in exports, and a reminder for people with no linked Discord (#1158) #1179

Merged
claude-bot merged 8 commits from feat/1158-nudge-follow-ups into main 2026-10-13 19:17:46 +00:00
Collaborator

Follow-ups to #1158 (PR #1168), at the owner's request for 4.5.1.

  1. The remind button is on This week too, for a GM, under the next confirmed session's "Are you in?". Same component and the same route. The This week payload's GM block gains rsvp_nudged_at and unanswered_players (additive; a player's payload has no GM block).
  2. The nudge setting travels with a campaign. rsvp_nudge_minutes is written by the export and read by the import. A missing key imports as the default; a present null (turned off) stays off. The export schema version stays "20": it is an optional scalar in the campaign object, like timezone and reminder_offsets_minutes, which were not bumped for.
  3. People with no linked Discord are reminded in Quest Board. On a Discord campaign they get a session_reminder in their bell instead of a ping; the Discord line ends with a count, never names: "2 others have not linked Discord: /link connects your account, so your reactions count." When nobody unanswered is linked, nothing is posted, everyone gets the bell reminder, and the button says "None of them has linked Discord, so they were reminded in Quest Board." "Reminded N people" counts both routes. Muted members are neither reminded nor counted. The bot-feature check now applies only when there is someone to ping, with #1176's two refusals.

Bot: rsvp_nudge appends the count line from extra.unlinked_count (a non-negative int; "99+" above 99); still no person-written text. Additive on the wire; no BOT_CONTRACT_VERSION bump. No migration.

Verified

On docker-test: test_rsvp_nudge.py, test_this_week.py, tests/export/test_export_nudge.py (59 passed); an earlier wider run with tests/export and the wiki guard tests; the bot suite (1185 passed, before the last backend-only commits); ruff; version and changelog checks; frontend lint; vitest for This week, the button and the session pages (545 passed). J2 run for real in the desktop project (7 passed).

Not run: anything after merging main (one conflict in rsvp_nudge_service.py, resolved by hand: the branch's "only when someone is linked" check with main's refusal sentences); the full suites. Not checked: whether the bell row shows the answer buttons or a plain line. Not checkable on dev: the Discord side.

🤖 Generated with Claude Code

Follow-ups to #1158 (PR #1168), at the owner's request for 4.5.1. 1. **The remind button is on This week too**, for a GM, under the next confirmed session's "Are you in?". Same component and the same route. The This week payload's GM block gains `rsvp_nudged_at` and `unanswered_players` (additive; a player's payload has no GM block). 2. **The nudge setting travels with a campaign.** `rsvp_nudge_minutes` is written by the export and read by the import. A missing key imports as the default; a present `null` (turned off) stays off. The export schema version stays "20": it is an optional scalar in the `campaign` object, like `timezone` and `reminder_offsets_minutes`, which were not bumped for. 3. **People with no linked Discord are reminded in Quest Board.** On a Discord campaign they get a `session_reminder` in their bell instead of a ping; the Discord line ends with a count, never names: "2 others have not linked Discord: `/link` connects your account, so your reactions count." When nobody unanswered is linked, nothing is posted, everyone gets the bell reminder, and the button says "None of them has linked Discord, so they were reminded in Quest Board." "Reminded N people" counts both routes. Muted members are neither reminded nor counted. The bot-feature check now applies only when there is someone to ping, with #1176's two refusals. Bot: `rsvp_nudge` appends the count line from `extra.unlinked_count` (a non-negative int; "99+" above 99); still no person-written text. Additive on the wire; no `BOT_CONTRACT_VERSION` bump. No migration. ## Verified On `docker-test`: `test_rsvp_nudge.py`, `test_this_week.py`, `tests/export/test_export_nudge.py` (59 passed); an earlier wider run with `tests/export` and the wiki guard tests; the bot suite (1185 passed, before the last backend-only commits); ruff; version and changelog checks; frontend lint; vitest for This week, the button and the session pages (545 passed). J2 run for real in the desktop project (7 passed). Not run: anything after merging main (one conflict in `rsvp_nudge_service.py`, resolved by hand: the branch's "only when someone is linked" check with main's refusal sentences); the full suites. Not checked: whether the bell row shows the answer buttons or a plain line. Not checkable on dev: the Discord side. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merge main into feat/1158-nudge-follow-ups
All checks were successful
CI / Backend lint (ruff) (pull_request) Successful in 30s
CI / Feedback site tests (pull_request) Successful in 52s
CI / Which journeys does this change need? (pull_request) Successful in 22s
CI / Does this change touch the recording path? (pull_request) Successful in 24s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Has been skipped
CI / Bot/backend version sync (pull_request) Successful in 29s
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 1m6s
CI / Docker image build (pull_request) Successful in 34s
CI / Bot tests and audit (pull_request) Successful in 2m19s
CI / End-to-end journeys (desktop) (desktop) (pull_request) Successful in 12m41s
CI / Frontend (shard 2/2) (pull_request) Successful in 14m7s
CI / Frontend (shard 1/2) (pull_request) Successful in 17m34s
CI / Backend migration, tests, and audit (pull_request) Successful in 46m26s
522dabe494
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-13 18:31:19 +00:00
claude-bot deleted branch feat/1158-nudge-follow-ups 2026-10-13 19:17:47 +00:00
Sign in to join this conversation.
No description provided.