feat(home-dialog): per-session suppression tracker

Singleton keyed by ShortUdid; lock on per-viewer set to avoid
cross-viewer contention. Process lifetime — restart re-fires.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
gamer147
2026-06-08 18:53:33 -04:00
parent 6d60edaa2a
commit 7e757ebcd2
3 changed files with 92 additions and 0 deletions

View File

@@ -117,6 +117,10 @@ public class Program
builder.Services.AddMemoryCache();
builder.Services.AddSingleton<IDeckCodeService, DeckCodeService>();
// Per-process per-viewer tracker for home_dialog_list suppression on /mypage/index.
// Restart re-fires once per viewer — documented trade in the design spec.
builder.Services.AddSingleton<IHomeDialogSessionTracker, HomeDialogSessionTracker>();
#endregion
builder.Services.AddBattleNode(opt =>