Skip to content

October 2026 Release 3 - #21

Merged
jmgasper merged 6 commits into
masterfrom
develop
Oct 21, 2026
Merged

jmgasper merged 6 commits into
masterfrom
develop

Conversation

@jmgasper

Copy link
Copy Markdown
Contributor
  • PM-6252
  • PM-6253
  • PM-6594

What was broken
Registrants and copilots missed new challenge-topic emails and could not
manage a challenge-wide watch preference.

Root cause
Notifications resolved only explicit topic/ancestor watches. Top-level
challenge-topic creation also skipped the post-commit notification path.

What was changed
Resolve default challenge-wide watches from Submitter and Copilot resource
assignments. Persist explicit watch/unwatch choices in ChallengeForumWatch,
expose authenticated member preference endpoints, and include forum watchers
in new-topic/post notifications using the existing visibility and ban policy.
Publish top-level challenge starter notifications after commit. Add the
migration, regenerate the exported Prisma client, and document deployment.

Any added/updated tests
Add resource/default-watch and preference authorization tests, new-topic
recipient and post-commit tests, and HTTP opt-out/re-watch coverage.
Lint and build pass. The normal suite plus moderation database checks passes
181 tests. Running every PostgreSQL suite passes 188 tests and reproduces one
pre-existing public-import provenance failure on unchanged origin/develop.
All five migrations and empty-forum preference persistence pass locally.
PM-6594: Watch challenge forums for registrants and copilots
PM-6253: link challenges in forum notification emails
What was broken
The previous fix added resource-based forum defaults and new-topic emails, but
QA found that unwatching the forum left topic and announcement watch states
unchanged and individual topic opt-outs did not survive forum re-watching.

Root cause
Topic reads only checked whether a TopicWatch row existed. Unwatching deleted
that row, leaving no explicit opt-out to override forum notification defaults.
Challenge authors also received automatic topic watches on creation.

What was changed
Resolve inherited topic watches from the effective forum preference. Persist
challenge-topic opt-outs and exclude them from notification recipients. Preserve
individual opt-ins across forum toggles and let new challenge topics inherit
without an automatic author watch. Add the TopicWatch.watching migration,
regenerate Prisma exports, and update API and deployment documentation.
Existing watch rows remain opt-ins because historical manual/author provenance
was not recorded. General-topic author watches and unwatch behavior remain intact.

Any added/updated tests
Add registrant/copilot HTTP regressions for list/detail/email consistency through
forum toggles, announcements, individual overrides, and new authored topics.
Add real PostgreSQL preference/projection tests and command/recipient regressions.
Lint and build pass. The normal suite with database checks passes 193 tests.
Enabling all database suites passes 200 tests and reproduces one pre-existing
public-import provenance failure on unchanged origin/develop.
PM-6594: Apply forum watch inheritance and persist topic opt-outs
@jmgasper
jmgasper merged commit a436ef3 into master Oct 21, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant