acdream/src/AcDream.Headless/Hosting
Erik 353ae3bb0c fix(ui): night-round review — F2 HouseQuery fires at login, not tab-open
CM_House::Event_QueryHouse @0x006aaa00 (opcode 0x21e) tail-calls
unconditionally from the end of CPlayerSystem::InitializePlayer
@0x00563570 — the same once-per-session function
AttemptSendLoginCompleteNotification lives in (both guarded by the
player_initialized flag), right after that notification. Retail never
sends it from gmHouseUI::PostInit or gmMapUI::PostInit on House-tab
activation.

Moved WorldSession.SendHouseQuery() to the direct (non-portal)
first-entry completion edges — the same places acdream already sends
the analogous "initial session bootstrap" LoginComplete:
  - graphical: LiveSessionRuntimeFactory's RuntimeFirstEntryDriveController
    localPlayerCompleted callback
  - headless: HeadlessSessionHost's equivalent callback
  - headless content-less direct host: RuntimeLiveEntitySessionController.OnSpawned

Portal-space re-entries (LocalPlayerTeleportController's F751 path,
RuntimeLiveEntitySessionController.TryAdvancePortalCompletion) do NOT
resend it, matching retail's single-shot guard.

Removed the invented House-tab-open -> SendHouseQuery trigger
(InteractionRetainedUiComposition's HouseShown binding) and retired
register row AD-107, which had documented that adaptation.

Updated RuntimeLiveEntitySessionControllerTests' exact game-action
assertions for the content-less path, which now also captures the
HouseQuery send alongside LoginComplete.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 04:28:46 +02:00
..
HeadlessCharacterOptionsSeeder.cs feat(headless): Campaign OP slice OP7 — declared characterOptions with seed-diff sends 2026-08-11 02:45:08 +02:00
HeadlessGameplayOperations.cs fix(ui,runtime): OP4 review fixes — live re-seed, enable-gating, Combat panel re-point, universal timestamps 2026-08-11 05:30:26 +02:00
HeadlessGenerationResetHost.cs feat(headless): complete portable single-session host 2026-07-27 07:36:53 +02:00
HeadlessLocalPlayerFrameHost.cs fix(headless): #365 — collision-admission-open window drove the first-entry conductor into a permanent seal refusal 2026-08-10 11:34:36 +02:00
HeadlessMonotonicTime.cs feat(headless): add deterministic multi-session scheduler 2026-07-27 07:51:49 +02:00
HeadlessProcessContentOwner.cs feat(headless): hydrate isolated collision worlds 2026-07-27 09:25:58 +02:00
HeadlessProcessHost.cs feat(plugins): complete Campaign LA5 cross-host hosting 2026-08-14 18:12:59 +02:00
HeadlessProcessScheduler.cs fix(headless): #368 — one dedicated update thread owns the session lifecycle; the scheduler loop no longer migrates across Task.Delay resumptions 2026-08-10 18:21:35 +02:00
HeadlessRuntimePlacementProjectionSink.cs fix(physics): C4 route 3 — portal placement authority (local player) 2026-08-05 03:57:37 +02:00
HeadlessSessionEventRoute.cs feat(physics): C4 route 4b-1 — remote placement infrastructure (dormant) 2026-08-04 04:08:19 +02:00
HeadlessSessionHost.cs fix(ui): night-round review — F2 HouseQuery fires at login, not tab-open 2026-08-17 04:28:46 +02:00
HeadlessSessionWorldProjection.cs fix(chat): consolidated-review fixes — retail /help Detail extraction, seam wiring test 2026-08-10 16:22:36 +02:00
HeadlessStaticStateAudit.cs fix(chat): consolidated-review fixes — retail /help Detail extraction, seam wiring test 2026-08-10 16:22:36 +02:00