Skip to main content

Data Model: Fix Audit Chat Active Conversation Preservation

Feature: 093-fix-audit-chat-active-preserve Date: 2026-03-17

No Schema Changes​

This bug fix does not introduce or modify any data entities. All changes are to client-side filter logic within the existing Zustand store.

Existing Entities (Reference)​

Conversation (Zustand store)​

FieldTypeDescription
idstringConversation UUID
titlestringDisplay title
messagesMessage[]Loaded messages (empty until loadMessagesFromServer fetches them)
a2aEventsA2AEvent[]Agent-to-agent events
sseEventsSSEEvent[]Server-sent events for dynamic agents
createdAtDateCreation timestamp
updatedAtDateLast update timestamp
agent_idstring?Dynamic agent ID (undefined = Platform Engineer)
owner_idstring?Email of conversation owner
sharingSharingConfig?Sharing settings (is_public, shared_with, shared_with_teams)

Store State (relevant fields)​

FieldTypeDescription
conversationsConversation[]All known conversations
activeConversationIdstring | nullCurrently viewed conversation
streamingConversationsMapConversations with active SSE streams

Filter Predicate Change​

The localOnlyPreserved filter in loadConversationsFromServer changes from:

streaming OR (active AND has_messages)

to:

streaming OR active

This aligns with the server-returned conversation path which already uses isActive without a message count check.