Toutsu
1d62f69ff0
fix(data): lock racing portfolio publications
2026-06-02 07:10:37 +03:00
Toutsu
d762ecc377
fix(data): serialize portfolio future reschedules
2026-06-01 20:58:53 +03:00
Toutsu
a28b75dd5b
fix(data): align portfolio mutation lock order
2026-06-01 20:23:43 +03:00
Toutsu
da0a306340
fix(data): enforce completed portfolio sessions
2026-06-01 15:04:20 +03:00
Toutsu
f493836b77
fix(data): reject stale portfolio trigger snapshots
2026-06-01 14:39:04 +03:00
Toutsu
6e7a0cb493
fix(data): enforce portfolio validation isolation
2026-06-01 14:28:51 +03:00
Toutsu
76b3ff7ddf
fix(data): serialize portfolio publication validation
2026-06-01 14:12:29 +03:00
Toutsu
3c1a98bcc4
fix(data): harden portfolio publication concurrency
2026-06-01 09:46:18 +03:00
Toutsu
d591e5ed5a
fix(data): protect portfolio publication invariant
2026-06-01 09:20:27 +03:00
Toutsu
5809a470b9
test(data): scope portfolio migration assertions
2026-06-01 09:07:47 +03:00
Toutsu
ed842d2195
test(data): harden portfolio migration contract
2026-05-30 23:37:40 +03:00
Toutsu
a0040ec9fb
test(data): tighten portfolio moderation schema assertion
2026-05-30 23:25:12 +03:00
Toutsu
67b8aafd97
feat(data): add completed game portfolio schema
2026-05-30 23:21:31 +03:00
Toutsu
b52d4000b4
fix(web): restore public game pages
...
PR Checks / test-and-build (pull_request) Successful in 11m56s
Use the existing group_managers.created_at column when picking owner profile links for public pages.
Bump version -> 3.5.1
2026-05-29 09:27:01 +03:00
Toutsu
0c1d3abd7e
feat(web): add public master profiles
...
PR Checks / test-and-build (pull_request) Successful in 12m32s
Add sanitized public GM profiles with publication controls, public /gm/{slug} pages, and links from public game surfaces.
Bump version -> 3.5.0
2026-05-29 00:08:14 +03:00
Toutsu
5b6971fda5
test: consolidate capacity tests, add GameSystem edge cases, remove ShowcaseQueryTests
2026-05-28 16:40:11 +03:00
Toutsu
b496a401fc
test: add GameSystem fuzzy matching and showcase query tests
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-28 16:33:29 +03:00
Toutsu
3418d1a46c
feat: add public club pages
...
PR Checks / test-and-build (pull_request) Successful in 12m47s
Add publication settings for clubs and sessions, read-only public club/session pages, dashboard controls, privacy-focused public queries, docs, and tests.
Bump version to 3.3.0
2026-05-28 12:23:47 +03:00
Toutsu
fac5d75c7e
Fix Discord co-GM management
Deploy Telegram Bot / build-and-push (push) Successful in 5m58s
Deploy Telegram Bot / scan-images (push) Successful in 3m39s
Deploy Telegram Bot / deploy (push) Successful in 34s
2026-05-27 16:32:47 +03:00
Toutsu
c2cc7fd9a8
fix(web): show discord sessions and integration labels
Deploy Telegram Bot / build-and-push (push) Successful in 5m46s
Deploy Telegram Bot / scan-images (push) Successful in 3m29s
Deploy Telegram Bot / deploy (push) Successful in 29s
2026-05-26 14:43:33 +03:00
Toutsu
5e3028e470
fix: SameSite=Lax for auth cookie + bidirectional identity linking
...
Deploy Telegram Bot / build-and-push (push) Successful in 4m45s
Deploy Telegram Bot / scan-images (push) Successful in 2m7s
Deploy Telegram Bot / deploy (push) Successful in 28s
- Change cookie auth SameSite from Strict to Lax so Discord OAuth callback
can see existing Telegram auth session and perform linking instead of
creating a new standalone Discord session (root cause of broken linking).
- Add linking logic to /auth/telegram endpoint for Discord→Telegram linking.
- Add Telegram Login Widget in Profile.razor for Discord users.
- Add CookieAuthOptionsTests to verify Lax SameSite configuration.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 14:58:25 +03:00
Toutsu
baa25f2e1e
feat: unify Telegram and Discord accounts via identity linking
...
PR Checks / test-and-build (pull_request) Successful in 7m6s
- Add V020 migration: player_links + identity_audit_log tables
- Add ISessionStore methods: ResolveEffectivePlayerId, LinkIdentity, UnlinkIdentity, GetLinkedIdentities
- Update SessionService to resolve effective player id for all permission checks
- Add /auth/discord/callback linking flow when already authenticated
- Add /api/me/identities GET/DELETE endpoints
- Add Profile.razor page for managing linked accounts
- Update NavMenu with profile link and v3.0.0 badge
- Bump version to 3.0.0 across all files
Bump version → 3.0.0
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 13:51:10 +03:00
Toutsu
7e02e86cd6
fix: add Discord OAuth token exchange logging for production diagnostics
...
PR Checks / test-and-build (pull_request) Failing after 6m20s
- Log status code and response body when Discord /oauth2/token fails
- Helps identify why ExchangeCodeAsync returns null in production
Bump version → 2.8.1
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 12:46:56 +03:00
Toutsu
50f5307aac
feat(web): finalize Discord OAuth and platform-agnostic auth
...
PR Checks / test-and-build (pull_request) Successful in 5m47s
- Bump version to 2.8.0 across all versioned files
- Fix AuthorizedSessionServiceTests for platform-agnostic identity
- Update Razor Pages to use *ForCurrentUserAsync APIs
- Add backward-compatible constructors to WebGameGroup/WebGroupManager
- Make DiscordOAuthOptions properties non-required for config binding
Bump version → 2.8.0
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 11:47:54 +03:00
Toutsu
5fa7e26f72
test(web): add Discord auth and platform identity tests
...
- DiscordAuthServiceTests: authorize URL, token exchange, profile fetch
- PlatformIdentityTests: Telegram fallback, Discord identity, avatar URL
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 11:13:08 +03:00
Toutsu
105b3c59d7
fix: address review feedback for health check endpoints
...
PR Checks / test-and-build (pull_request) Successful in 8m34s
- Install wget in Web Dockerfile for compose healthcheck
- Ensure HttpListener response is always closed in BotHealthCheckHostedService
- Use ephemeral port in Bot health check test to avoid port conflicts
- Rename NpgsqlHealthCheck test to reflect actual behavior
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-13 11:16:58 +03:00
Toutsu
3bea327043
feat: add health check endpoints for Bot and Web
...
PR Checks / test-and-build (pull_request) Successful in 8m53s
- Web: add /health endpoint with PostgreSQL readiness check (returns 200+JSON or 503)
- Web: add /alive endpoint for liveness probe
- Bot: add BotHealthCheckHostedService serving /health on port 8081 via HttpListener
- Bot: expose port 8081 in Dockerfile and install wget for healthcheck
- compose.yaml: add healthcheck sections for bot and web services
- tests: add TDD tests for both health endpoints
Bump version -> 1.16.0
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-13 10:54:22 +03:00
Toutsu
e2303490e9
feat( #15 ): add session audit log history tests and bump version to 1.12.0
...
PR Checks / test-and-build (pull_request) Successful in 4m4s
Adds missing tests for GetSessionHistoryForGmAsync authorization.
Syncs version across all 4 files for the 1.12.0 minor release.
Bump version -> 1.12.0
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-10 18:57:07 +03:00
Hermes Agent
d0a25895ab
fix( #15 ): make test time stable — use same DateTime instance for unchanged fields
PR Checks / test-and-build (pull_request) Successful in 3m11s
Deploy Telegram Bot / build-and-push (push) Successful in 3m52s
Deploy Telegram Bot / deploy (push) Failing after 7s
2026-05-07 12:46:12 +00:00
Hermes Agent
05faa9e32d
fix( #15 ): correct test — only title changes when other fields stay same
PR Checks / test-and-build (pull_request) Failing after 3m9s
2026-05-07 12:41:30 +00:00
Hermes Agent
0dbd4064ac
fix( #15 ): bump NavMenu version and fix audit log test expectations for MaxPlayers
PR Checks / test-and-build (pull_request) Failing after 3m11s
2026-05-07 12:37:36 +00:00
Hermes Agent
35894bf89e
feat( #15 ): session audit log domain, store, and instrumentation
2026-05-07 12:16:54 +00:00
root
706f20e403
fix: add GetGroupAttendanceStatsAsync stub to FakeSessionStore in tests
...
PR Checks / test-and-build (pull_request) Successful in 3m14s
Resolves CS0535 build failure in test project.
2026-05-07 11:26:22 +00:00
Toutsu
5dee2d87f5
test: cover Telegram landing promise smoke
Deploy Telegram Bot / build-and-push (push) Successful in 5m32s
Deploy Telegram Bot / deploy (push) Successful in 12s
2026-05-05 13:06:09 +03:00
Toutsu
25c22b2ff5
fix: stabilize session table layout
Deploy Telegram Bot / build-and-push (push) Successful in 4m6s
Deploy Telegram Bot / deploy (push) Successful in 12s
2026-05-02 15:40:24 +03:00
Toutsu
2a76ec0fb8
fix: stabilize mini app login and safe area
Deploy Telegram Bot / build-and-push (push) Successful in 3m53s
Deploy Telegram Bot / deploy (push) Successful in 17s
2026-04-28 20:25:18 +03:00
Toutsu
57c8714889
fix: refresh login fallback in mini app
Deploy Telegram Bot / build-and-push (push) Successful in 4m11s
Deploy Telegram Bot / deploy (push) Successful in 12s
2026-04-28 17:20:29 +03:00
Toutsu
8220f2060f
fix: refresh mini app login state
Deploy Telegram Bot / build-and-push (push) Successful in 4m23s
Deploy Telegram Bot / deploy (push) Successful in 12s
2026-04-28 17:03:53 +03:00
Toutsu
41f2ea6e90
feat: add telegram mini app dashboard
Deploy Telegram Bot / build-and-push (push) Successful in 23s
Deploy Telegram Bot / deploy (push) Successful in 10s
2026-04-28 14:56:55 +03:00
Toutsu
5082dd4fcf
fix: stack sidebar template nav item
Deploy Telegram Bot / build-and-push (push) Successful in 3m45s
Deploy Telegram Bot / deploy (push) Successful in 9s
2026-04-28 10:36:52 +03:00
Toutsu
cfbda4ca05
fix: move campaign templates to dedicated tab
Deploy Telegram Bot / build-and-push (push) Successful in 3m28s
Deploy Telegram Bot / deploy (push) Successful in 12s
2026-04-28 10:22:12 +03:00
Toutsu
0218890a7a
feat: add campaign templates and recurring schedules
Deploy Telegram Bot / build-and-push (push) Successful in 3m49s
Deploy Telegram Bot / deploy (push) Successful in 10s
2026-04-28 10:01:18 +03:00
Toutsu
2529df4157
feat: support co-gm group delegation
Deploy Telegram Bot / build-and-push (push) Successful in 3m51s
Deploy Telegram Bot / deploy (push) Successful in 11s
2026-04-27 14:27:16 +03:00
Toutsu
a8f2b10956
feat: send personal player notifications
Deploy Telegram Bot / build-and-push (push) Successful in 3m36s
Deploy Telegram Bot / deploy (push) Successful in 11s
2026-04-27 10:11:11 +03:00
Toutsu
3228e77c7f
fix: improve select dropdown contrast
Deploy Telegram Bot / build-and-push (push) Successful in 3m29s
Deploy Telegram Bot / deploy (push) Successful in 10s
2026-04-27 09:46:40 +03:00
Toutsu
621ef553e7
feat: add web batch bulk operations
Deploy Telegram Bot / build-and-push (push) Successful in 3m21s
Deploy Telegram Bot / deploy (push) Successful in 11s
2026-04-27 09:31:51 +03:00
Toutsu
9c91057798
feat: add session capacity waitlist
Deploy Telegram Bot / build-and-push (push) Failing after 4m42s
Deploy Telegram Bot / deploy (push) Has been skipped
2026-04-24 13:28:01 +03:00
Toutsu
bb8cbb7a40
test: cover core bot and web scenarios
Deploy Telegram Bot / build-and-push (push) Successful in 4m18s
Deploy Telegram Bot / deploy (push) Successful in 20s
2026-04-23 21:08:41 +03:00
Toutsu
1c4cfb71c0
fix: close web access to foreign groups and sessions
Deploy Telegram Bot / build-and-push (push) Successful in 7m25s
Deploy Telegram Bot / deploy (push) Successful in 18s
2026-04-23 20:09:22 +03:00