fix(chat): CH2 SpewBox lease was acquired but never transferred — startup crash
The composition scope's completion contract threw 'unpublished resources: spew box' on every graphical launch with the retail UI: scope.Acquire's returned lease was discarded, so it could never be Transfer()ed alongside its siblings. Suite missed it because the composition tests run with RetainedUi absent, so the acquire block never executed. Ownership after transfer matches the wait-notice no-tunnel arm: the retained-UI root's teardown reclaims the element tree. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
38f0c0defc
commit
d1c1368a5e
1 changed files with 8 additions and 2 deletions
|
|
@ -1078,10 +1078,15 @@ internal sealed class LivePresentationCompositionPhase
|
|||
// Campaign CH slice CH2: the SpewBox is retail's OTHER on-screen
|
||||
// interface-text surface (research doc §1.1/§7.3/§7.4) — modeled
|
||||
// directly on the PortalWaitNoticeController lease immediately
|
||||
// above, wired into the same retained-UI host.
|
||||
// above, wired into the same retained-UI host. Like the wait notice
|
||||
// in its no-tunnel arm, the transferred controller is reclaimed by
|
||||
// the retained-UI root's own teardown (its Dispose only detaches
|
||||
// children from that root).
|
||||
CompositionAcquisitionScope.CompositionAcquisitionLease<
|
||||
SpewBoxController>? spewBoxLease = null;
|
||||
if (interaction.RetainedUi is { } spewBoxRetainedUi)
|
||||
{
|
||||
scope.Acquire(
|
||||
spewBoxLease = scope.Acquire(
|
||||
"spew box",
|
||||
() => new SpewBoxController(
|
||||
spewBoxRetainedUi.Host.Root,
|
||||
|
|
@ -1300,6 +1305,7 @@ internal sealed class LivePresentationCompositionPhase
|
|||
portalDepthLease.Transfer();
|
||||
portalTunnelLease?.Transfer();
|
||||
portalWaitNoticeLease?.Transfer();
|
||||
spewBoxLease?.Transfer();
|
||||
skyLease.Transfer();
|
||||
particleLease.Transfer();
|
||||
bindingsLease.Transfer();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue