feat(web): add public master profiles #113

Closed
Toutsu wants to merge 0 commits from feature/issue-40-master-profiles into main
Owner

Summary

Closes #40.

Adds public master profiles for GM-Relay: a master can publish a sanitized profile from /profile, and public game surfaces link to published profiles at /gm/{slug}.

Changes

  • Added master_profiles migration and session store contracts.
  • Added profile publication controls on /profile.
  • Added public /gm/{slug} page with clubs and published sessions.
  • Linked published master profiles from public club, public session, and showcase surfaces.
  • Kept public profile data sanitized: no Telegram/Discord IDs, external user IDs, linked identities, or avatar URLs in the public profile contract/page.
  • Included co-GM managed public games in master profile associations.
  • Updated README/C4 docs and bumped version to 3.5.0.

Test plan

  • dotnet test tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter "FullyQualifiedName~MasterProfilesTests" --verbosity minimal
  • dotnet test tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --verbosity normal
  • dotnet build
  • dotnet format --verify-no-changes --verbosity diagnostic
  • git diff --check
  • Subagent code review approved
  • Gitea Actions run #278 passed

Workflow

  • CI passes
  • Code review approved
  • Deployed via Gitea Actions run #279
  • Release published: v3.5.0

Note: PR was integrated into main via fallback merge commit b32f962f1159a81fad3d9f288a914122692194e3 after API merge returned 405 and self-approval was unavailable.

## Summary Closes #40. Adds public master profiles for GM-Relay: a master can publish a sanitized profile from `/profile`, and public game surfaces link to published profiles at `/gm/{slug}`. ## Changes - Added `master_profiles` migration and session store contracts. - Added profile publication controls on `/profile`. - Added public `/gm/{slug}` page with clubs and published sessions. - Linked published master profiles from public club, public session, and showcase surfaces. - Kept public profile data sanitized: no Telegram/Discord IDs, external user IDs, linked identities, or avatar URLs in the public profile contract/page. - Included co-GM managed public games in master profile associations. - Updated README/C4 docs and bumped version to `3.5.0`. ## Test plan - [x] `dotnet test tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --filter "FullyQualifiedName~MasterProfilesTests" --verbosity minimal` - [x] `dotnet test tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj --verbosity normal` - [x] `dotnet build` - [x] `dotnet format --verify-no-changes --verbosity diagnostic` - [x] `git diff --check` - [x] Subagent code review approved - [x] Gitea Actions run #278 passed ## Workflow - [x] CI passes - [x] Code review approved - [x] Deployed via Gitea Actions run #279 - [x] Release published: v3.5.0 Note: PR was integrated into `main` via fallback merge commit `b32f962f1159a81fad3d9f288a914122692194e3` after API merge returned 405 and self-approval was unavailable.
Toutsu added 1 commit 2026-05-29 00:09:31 +03:00
feat(web): add public master profiles
PR Checks / test-and-build (pull_request) Successful in 12m32s
0c1d3abd7e
Add sanitized public GM profiles with publication controls, public /gm/{slug} pages, and links from public game surfaces.

Bump version -> 3.5.0
Author
Owner

Интегрировано в main через локальный fallback merge commit b32f962f1159a81fad3d9f288a914122692194e3, потому что API merge вернул 405, а self-approval для PR недоступен.

Релиз: v3.5.0
Deploy: Gitea Actions run #279 — success

Интегрировано в `main` через локальный fallback merge commit `b32f962f1159a81fad3d9f288a914122692194e3`, потому что API merge вернул 405, а self-approval для PR недоступен. Релиз: [v3.5.0](https://git.codeanddice.ru/Toutsu/GmRelayBot/releases/tag/v3.5.0) Deploy: Gitea Actions run #279 — success
Toutsu closed this pull request 2026-05-29 00:36:19 +03:00
Some checks are pending
PR Checks / test-and-build (pull_request) Successful in 12m32s

Pull request closed

Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Toutsu/GmRelayBot#113