refactor(runtime): own communication and social state
Construct chat history, negotiated channels, friends, squelch, and reply targets in one presentation-independent Runtime owner. Make live routing, retained UI, devtools, and current-runtime projections borrow the exact instances, preserve reconnect reset semantics, and publish failure-isolated reentrant-safe chat commits. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
e321410770
commit
c9d25ade50
19 changed files with 684 additions and 117 deletions
|
|
@ -13,6 +13,20 @@ namespace AcDream.UI.Abstractions.Tests.Panels.Chat;
|
|||
/// </summary>
|
||||
public sealed class ChatVMRetellAndProvidersTests
|
||||
{
|
||||
[Fact]
|
||||
public void BorrowedCommandTargetsRemainLiveAfterOneViewModelDisposes()
|
||||
{
|
||||
var log = new ChatLog();
|
||||
using var targets = new ChatCommandTargetState(log);
|
||||
var first = new ChatVM(log, commandTargets: targets);
|
||||
using var second = new ChatVM(log, commandTargets: targets);
|
||||
|
||||
first.Dispose();
|
||||
log.OnTellReceived("Bestie", "incoming", 0x50000001u);
|
||||
|
||||
Assert.Equal("Bestie", second.LastIncomingTellSender);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ResetSessionTargets_ClearsReplyAndRetellWithoutClearingTranscript()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue