-
9d6a5cc3b9
feat(home-dialog): populate home_dialog_list on /mypage/index
gamer147
2026-06-08 18:55:48 -04:00
-
7e757ebcd2
feat(home-dialog): per-session suppression tracker
gamer147
2026-06-08 18:53:33 -04:00
-
6d60edaa2a
feat(home-dialog): IGlobalsRepository.GetActiveHomeDialogsAsync
gamer147
2026-06-08 18:52:32 -04:00
-
7a82f4e189
feat(home-dialog): add HomeDialogEntry entity + migration
gamer147
2026-06-08 18:51:12 -04:00
-
d3488c3bc6
fix(viewer): default ClassExp.Level to 1 for new viewers
gamer147
2026-06-08 18:49:45 -04:00
-
20ddba4c5f
Merge battle-engine-extraction: engine port + multi-instancing
gamer147
2026-06-08 10:21:09 -04:00
-
-
5a23f93152
docs(engine-ambient): explain why _components GetOrAdd factory is contention-safe
gamer147
2026-06-08 08:25:34 -04:00
-
fbac66fd0b
chore(engine-ambient): harden shim + LocalLog statics for fixture parallelism
gamer147
2026-06-08 08:02:49 -04:00
-
45344e6d83
chore(engine-ambient): audit script for static-write regressions
gamer147
2026-06-07 23:31:09 -04:00
-
ab4545b274
test(engine-ambient): tighten MultiInstanceEngineTests post-setup assertions
gamer147
2026-06-07 23:28:21 -04:00
-
c789d836f1
feat(engine-ambient): delete static fallbacks; add MultiInstanceEngineTests
gamer147
2026-06-07 23:19:37 -04:00
-
9e93a7b198
refactor(engine-ambient): wrap residual UnitTests + delete EngineSessionGate
gamer147
2026-06-07 22:43:18 -04:00
-
8af1be6555
test(engine-ambient): TestBattleScope + HeadlessFixture split for multi-instance
gamer147
2026-06-07 22:24:21 -04:00
-
1ba75c565a
refactor(engine-ambient): GameMgr.GetIns throws Require; wrap SessionBattleEngine entry points
gamer147
2026-06-07 21:56:34 -04:00
-
18da7fd19e
test(engine-ambient): cover BattleRecoveryInfo setter ambient write-through
gamer147
2026-06-07 21:42:55 -04:00
-
fe146fde50
refactor(engine-ambient): ViewerId/RealTimeNetworkAgent/BattleRecoveryInfo read ambient first
gamer147
2026-06-07 21:37:58 -04:00
-
4e756a6c46
refactor(engine-ambient): BattleManagerBase.GetIns reads ambient first, static fallback
gamer147
2026-06-07 21:23:27 -04:00
-
92da7819f4
chore(engine-ambient): refresh BattleManagerBase manifest sha + add patch artifact
gamer147
2026-06-07 21:16:57 -04:00
-
3b5f2e18b3
refactor(engine-ambient): IsForecast/IsRandomDraw read ambient first, static fallback
gamer147
2026-06-07 21:11:49 -04:00
-
4829e8c263
feat(engine-ambient): add BattleAmbientContext + AsyncLocal scope
gamer147
2026-06-07 21:04:21 -04:00
-
addeb021d2
fix(battlenode): shadow engine tracks live PvP wire-truth (full battle, multiple bid regressions)
gamer147
2026-06-07 19:05:07 -04:00
-
2a8c44a6d7
build(battleengine): pin LangVersion 12.0 (was 'latest') so C# 14's 'field' keyword doesn't break the decompiled engine under newer SDKs
gamer147
2026-06-07 08:03:01 -04:00
-
25751462f4
fix(battlenode): translate live isSelf target frames to engine vid shape on ingest (live PvP fidelity)
gamer147
2026-06-07 07:44:53 -04:00
-
97e4664cc4
docs(battlenode): regen-guard banners on hand-edited .g.cs + accessor-band null-policy invariant (M-HC-4 final review)
gamer147
2026-06-07 01:02:00 -04:00
-
8bd8d1db2f
docs(battlenode): correct EVOLUTION_SELECT deferral rationale — skill data is present (M-HC-4)
gamer147
2026-06-07 00:52:22 -04:00
-
f1c96ed37d
refactor(battlenode): M-HC-4 cleanup — EpCount rename, dedupe evolve-ramp, drop tautological guard
gamer147
2026-06-07 00:47:33 -04:00
-
a30a496265
refactor(battlenode): engine-first token identity (cardId); keep wire-mining fallback (M-HC-4f, partial)
gamer147
2026-06-07 00:36:49 -04:00
-
d3508d7bd4
fix(battlenode): PlayedCardTribe degrades to 0 not empty; clan/tribe builder tests (M-HC-4e review)
gamer147
2026-06-07 00:23:07 -04:00
-
693fba5003
feat(battlenode): emit engine-resolved clan/tribe on knownList entries (M-HC-4e)
gamer147
2026-06-07 00:11:28 -04:00
-
daaec20afb
test(battlenode): board-dependent when_evolve_other cost validated headless (M-HC-4d)
gamer147
2026-06-06 23:54:13 -04:00
-
3285097d1b
test(battlenode): target-discriminating + documented choice shape (M-HC-4c review)
gamer147
2026-06-06 23:46:59 -04:00
-
3add58f939
feat(battlenode): target/choice ops resolve on engine state via view-untangle (M-HC-4c)
gamer147
2026-06-06 23:34:39 -04:00
-
2e8f9ab64e
feat(battlenode): evolve resolves on engine state via view-untangle (M-HC-4b)
gamer147
2026-06-06 23:08:59 -04:00
-
7a02cb3626
docs(battlenode): note _playerInfoPair seeded ahead for evolve (M-HC-4a review)
gamer147
2026-06-06 22:59:16 -04:00
-
c5a511e4fe
feat(battlenode): attack resolves on engine state via view-untangle (M-HC-4a)
gamer147
2026-06-06 22:48:26 -04:00
-
0d7136787a
refactor(battlenode): retire spellboost bookkeeping, engine owns cost+spellboost (M-HC-3)
gamer147
2026-06-06 21:48:50 -04:00
-
51419d15cd
feat(battlenode): emit engine-resolved cost on every knownList entry (M-HC-3)
gamer147
2026-06-06 21:18:29 -04:00
-
b73f0f7157
test(battlenode): reveal test stresses cardId substitution with mismatched seed (M-HC-2 review)
gamer147
2026-06-06 21:01:01 -04:00
-
07ffc8906d
feat(battlenode): opponent reveal resolves on engine state via ReplaceReceivedCards (M-HC-2)
gamer147
2026-06-06 20:51:55 -04:00
-
b1d17fb97d
test(battlenode): unify DealBody helper + assert seat-B deck (M-HC-1 review)
gamer147
2026-06-06 20:43:04 -04:00
-
f0977ab45c
feat(battlenode): mulligan+turn ops track on engine state (M-HC-1)
gamer147
2026-06-06 20:30:39 -04:00
-
e96cc3363c
refactor(battlenode): guard generated iface-impl against regen + stub visibility (M-HC-0 review)
gamer147
2026-06-06 20:20:34 -04:00
-
35e9847911
feat(battlenode): receive conductor resolves self Deal+Play headless via view-untangle (M-HC-0)
gamer147
2026-06-06 20:08:53 -04:00
-
50294c10b1
test(battlenode): harness stub fails loud + non-parallelizable (M-HC-0 review)
gamer147
2026-06-06 19:42:55 -04:00
-
ca91fca028
test(battlenode): node-native battle harness for headless conductor (M-HC-0)
gamer147
2026-06-06 19:37:41 -04:00
-
fcc30ffe5e
refactor(battlenode): drop obsolete pre-ingest spellboost peek (Phase 2 revised, O-HC-5)
gamer147
2026-06-06 19:28:21 -04:00
-
fcd64c8c11
feat(battlenode): engine read surface for played-card spellboost (Phase 2 N2 Task 3 — oracle BLOCKED)
gamer147
2026-06-06 16:55:47 -04:00
-
eb52890251
feat(battlenode): per-session charaId + single-active-engine gate (Phase 2 N2 carried-risk B)
gamer147
2026-06-06 16:35:42 -04:00
-
6e8af4e68b
fix(battlenode): EngineGlobalInit guarantees full-master postcondition (Phase 2 N2 review)
gamer147
2026-06-06 16:29:04 -04:00
-
5e0723c182
feat(battlenode): host-owned engine global init (Phase 2 N2 carried-risk A)
gamer147
2026-06-06 16:19:21 -04:00
-
e982300c6d
feat(battlenode): inject SessionBattleEngine into BattleSession in pure shadow (Phase 2 N1 exit)
gamer147
2026-06-06 15:35:35 -04:00
-
fa86739ac2
test(battlenode): N1 shadow replay tracks captured battle state (Phase 2 N1)
gamer147
2026-06-06 15:28:08 -04:00
-
6740313446
feat(battlenode): Receive ingests a captured PlayActions headless (Phase 2 N0)
gamer147
2026-06-06 15:05:36 -04:00
-
eaa7b4d85c
test(battlenode): capture-replay helper + battle_test fixtures (Phase 2 N1)
gamer147
2026-06-06 14:59:48 -04:00
-
c9841c012b
feat(battlenode): Setup builds two-seat network battle headless (Phase 2 N0)
gamer147
2026-06-06 14:51:51 -04:00
-
f6cbde723b
feat(battlenode): SessionBattleEngine skeleton + types (Phase 2 N0)
gamer147
2026-06-06 14:49:18 -04:00
-
83f82efe1b
feat(battlenode): reference SVSim.BattleEngine (Phase 2 N0 wire-up)
gamer147
2026-06-06 14:46:37 -04:00
-
e6a561b30f
test(battle-engine M13): shared NetworkEmitFixtureBase teardown — close IsForecast/agent global leak
gamer147
2026-06-06 13:03:07 -04:00
-
bfd99c4829
docs(battle-engine M13): note _notEmit precondition on TryReadStockedEmitData (review polish)
gamer147
2026-06-06 12:42:45 -04:00
-
feb47f6437
test(battle-engine M13): best-effort emit-payload presence (Inconclusive => deferred to structural validation)
gamer147
2026-06-06 12:37:24 -04:00
-
73286ba78b
chore(battle-engine M13): align OnEmit line-cite + HEADLESS marker spelling (review polish)
gamer147
2026-06-06 12:34:53 -04:00
-
ac0886389a
feat(battle-engine M13): M3 spell emits PlayActions headless via OperateMgr -> NetworkBattleSender (O1 read = GO)
gamer147
2026-06-06 12:23:51 -04:00
-
25e9ae9573
test(battle-engine M13): NewNetworkEmitBattle harness + OnEmit capture seam
gamer147
2026-06-06 12:00:04 -04:00
-
6b2c825eb8
chore(battle-engine M13): drop unused using + complete shim comment (review polish)
gamer147
2026-06-06 11:56:23 -04:00
-
2f6bc5b6c0
test(battle-engine M13): HeadlessNetworkBattleMgr constructs headless (construction probe)
gamer147
2026-06-06 11:48:52 -04:00
-
0fe45517da
test(rng-seam): reset IsRandomDraw in RandomDrawOracleTests teardown (avoid cross-fixture leak)
gamer147
2026-06-06 10:57:39 -04:00
-
ffc0fcaa43
test(rng-seam): M12 oracle — scripted RNG draws a known deck card (genuine multi-outcome roll)
gamer147
2026-06-06 10:46:35 -04:00
-
2fd0aac5b6
test(rng-seam): M12 constants + NewAuthoritativeBattle harness factory
gamer147
2026-06-06 10:40:59 -04:00
-
f6e3b67be1
docs(rng-seam): note stableRandomCount divergence in HeadlessBattleMgr
gamer147
2026-06-06 10:38:58 -04:00
-
c47f8d9fa7
feat(rng-seam): HeadlessBattleMgr override + decoupling/parity tests (F2 resolved)
gamer147
2026-06-06 10:33:59 -04:00
-
201158db5d
patch(rng-seam): make StableRandomDouble/StableRandomOnlySelf virtual (DP5, zero logic change)
gamer147
2026-06-06 10:25:35 -04:00
-
1a108fa393
feat(rng-seam): ScriptedRandomSource (throw-on-overrun deterministic source)
gamer147
2026-06-06 10:21:44 -04:00
-
2fd42c10cf
feat(rng-seam): SeededRandomSource mirrors the engine's two System.Random streams
gamer147
2026-06-06 10:18:19 -04:00
-
c77d789558
feat(rng-seam): IRandomSource interface + RandomSourceBridge arithmetic
gamer147
2026-06-06 10:14:50 -04:00
-
7370a35e9c
test(battle-engine-port): M11 — gated conditional resolves headless (the GATE is the oracle)
gamer147
2026-06-06 09:10:45 -04:00
-
c3590e9c9b
test(battle-engine-port): M10 — first dynamic {}-value card resolves headless
gamer147
2026-06-06 09:02:59 -04:00
-
eee8450144
feat(battle-engine-port): M9 COMPLETE — when_play draw resolves headless (hand/deck-delta oracle)
gamer147
2026-06-06 08:47:04 -04:00
-
4f76fb21f0
feat(battle-engine-port): M8 COMPLETE — lethal damage proves follower death via combat math
gamer147
2026-06-06 08:34:22 -04:00
-
9fc97abee7
feat(battle-engine-port): M7 COMPLETE — targeted destroy resolves headless (follower death / board-removal)
gamer147
2026-06-06 08:23:53 -04:00
-
c8314bd3c0
test(battle-engine-port): M6 COMPLETE — targeted when_play damage spell resolves headless (selection-routing oracle)
gamer147
2026-06-06 08:08:01 -04:00
-
62a28fe2d4
feat(battle-engine-port): M5 COMPLETE — summon_token spell resolves headless (board-count delta oracle)
gamer147
2026-06-06 03:19:12 -04:00
-
b13cfa0fad
test(battle-engine-port): M4 COMPLETE — when_play self-buff follower resolves headless (4/4 green)
gamer147
2026-06-06 02:36:02 -04:00
-
c47ae93027
feat(battle-engine-port): M3 COMPLETE — fixed-damage spell resolves headless (leader-life-delta oracle passes)
gamer147
2026-06-06 02:19:54 -04:00
-
171f07ec74
feat(battle-engine-port): M2 COMPLETE — vanilla follower resolves headless (go/no-go = GO)
gamer147
2026-06-06 01:57:15 -04:00
-
2b506574e7
feat(battle-engine-port): M2 step 1 — SingleBattleMgr constructs headless
gamer147
2026-06-06 01:36:22 -04:00
-
1078b1ef50
port(m1): wave 7k — M1 COMPLETE: 0 compile errors, headless engine builds (12->0)
gamer147
2026-06-06 01:03:58 -04:00
-
f63d1cc2e2
port(m1): wave 7j — Material/Plane/Socket overloads + IDictionary extension (24->12)
gamer147
2026-06-06 01:00:12 -04:00
-
ad58994b8e
port(m1): wave 7i — RoomMatch/Story/Effect app members + ROOM_URI enum (40->24)
gamer147
2026-06-06 00:57:51 -04:00
-
59cb089c97
port(m1): wave 7h — Unity overloads + SDK return types + RoomRoot:UIBase (56->40)
gamer147
2026-06-06 00:54:47 -04:00
-
3a88b27752
port(m1): wave 7g — Unity coroutine/overload + app-member tail (88->56)
gamer147
2026-06-06 00:52:18 -04:00
-
5c5a58af3c
port(m1): wave 7f — VFX containers / Create factories / dropped event / ctor cascade (112->88)
gamer147
2026-06-06 00:49:07 -04:00
-
981f903504
port(m1): wave 7e — Unity/NGUI/Spine member tail (142->112)
gamer147
2026-06-06 00:44:04 -04:00
-
7d3d92981e
port(m1): wave 7d — LoginBonus/Story data ctors + nested BuildInfo/FileNamePair (158->142)
gamer147
2026-06-06 00:42:03 -04:00
-
57f1f0c25e
port(m1): wave 7c — SelectionProcessing Parameter + Touch-processor ctors (174->158)
gamer147
2026-06-06 00:38:58 -04:00
-
38ab33a765
port(m1): wave 7b — Main-namespace dialog dupes + IReplayRecordManager (190->174)
gamer147
2026-06-06 00:34:12 -04:00
-
fc54dac081
port(m1): wave 7a — namespace-aware ProcessingBase collapses Story SelectionProcessing cluster (198->190)
gamer147
2026-06-06 00:31:29 -04:00
-
6e9c5c059f
port(m1): wave 6i — Networking/Facebook/BestHTTP CS0103 statics (210->198)
gamer147
2026-06-06 00:20:22 -04:00
-
8bb392dcd6
port(m1): wave 6h — CS0246 app types + Unity members/enums (236->210)
gamer147
2026-06-06 00:15:46 -04:00
-
d4364ae4b1
port(m1): wave 6g — CS1061 member cluster (304->236)
gamer147
2026-06-06 00:11:43 -04:00
-
e5e05deadb
port(m1): wave 6f — Unity primitive operators (362->304)
gamer147
2026-06-06 00:08:11 -04:00