DevToolsMessage

@Serializable
sealed class DevToolsMessage(source)

DevTools network protocol messages.

These messages are used for communication between DevTools clients and server. Data capture types (CapturedAction, etc.) are imported from reaktiv-crash-capture.

Inheritors

Types

Link copied to clipboard
@Serializable
data class ActionDispatched(val clientId: String, val timestamp: Long, val actionType: String, val actionData: String, val stateDeltaJson: String, val moduleName: String = "") : DevToolsMessage

Sent when an action is dispatched. Wraps CapturedAction from crash-capture.

Link copied to clipboard
@Serializable
data class ClientListUpdate(val clients: List<ClientInfo>) : DevToolsMessage
Link copied to clipboard
@Serializable
data class ClientRegistration(val clientName: String, val clientId: String, val platform: String, val isGhost: Boolean = false) : DevToolsMessage
Link copied to clipboard
@Serializable
data class CrashReport(val clientId: String, val timestamp: Long, val exceptionType: String, val exceptionMessage: String?, val stackTrace: String?, val failedCallId: String?, val sessionJson: String?) : DevToolsMessage

Sent when a crash occurs in a logic method. Carries crash info and optional session snapshot for real-time crash reporting.

Link copied to clipboard
@Serializable
data class GhostDeviceRegistration(val sessionId: String, val originalClientInfo: ClientInfo, val crashException: CrashException? = null, val eventCount: Int = 0, val logicEventCount: Int = 0, val sessionStartTime: Long, val sessionEndTime: Long, val sessionExportJson: String? = null) : DevToolsMessage

Registers a ghost device from an imported session. Ghost devices represent recorded sessions that can be replayed.

Link copied to clipboard
@Serializable
data class GhostDeviceRemoval(val ghostClientId: String) : DevToolsMessage

Request to remove a ghost device.

Link copied to clipboard
@Serializable
data class GhostSessionRestore(val ghostClientId: String, val sessionExportJson: String) : DevToolsMessage

Sent by the server to restore ghost session data on client reconnect. Contains the full session export JSON so the WASM UI can rebuild its state.

Link copied to clipboard
@Serializable
data class ListenerAttached(val listenerId: String) : DevToolsMessage

Sent by the server to a publisher when a new listener attaches. The publisher should respond by sending a full StateSync.

Link copied to clipboard
@Serializable
data class LogicMethodCompleted(val clientId: String, val timestamp: Long, val callId: String, val result: String?, val resultType: String, val durationMs: Long) : DevToolsMessage

Sent when a traced logic method completes successfully.

Link copied to clipboard
@Serializable
data class LogicMethodFailed(val clientId: String, val timestamp: Long, val callId: String, val exceptionType: String, val exceptionMessage: String?, val stackTrace: String? = null, val durationMs: Long) : DevToolsMessage

Sent when a traced logic method fails with an exception.

Link copied to clipboard
@Serializable
data class LogicMethodStarted(val clientId: String, val timestamp: Long, val callId: String, val logicClass: String, val methodName: String, val params: Map<String, String>, val sourceFile: String? = null, val lineNumber: Int? = null, val githubSourceUrl: String? = null) : DevToolsMessage

Sent when a traced logic method starts execution.

Link copied to clipboard
@Serializable
data class PublisherChanged(val newPublisherId: String?, val previousPublisherId: String?, val reason: String) : DevToolsMessage

Notification when the publisher changes.

Link copied to clipboard
@Serializable
data class RoleAcknowledgment(val clientId: String, val role: ClientRole, val success: Boolean, val message: String? = null) : DevToolsMessage
Link copied to clipboard
@Serializable
data class RoleAssignment(val targetClientId: String, val role: ClientRole, val publisherClientId: String? = null) : DevToolsMessage
Link copied to clipboard
@Serializable
data class SessionHistorySync(val clientId: String, val sessionStartTime: Long, val initialStateJson: String = "{}", val actionEvents: List<DevToolsMessage.ActionDispatched>, val logicStartedEvents: List<DevToolsMessage.LogicMethodStarted>, val logicCompletedEvents: List<DevToolsMessage.LogicMethodCompleted>, val logicFailedEvents: List<DevToolsMessage.LogicMethodFailed>) : DevToolsMessage

Sent by a publisher to sync its session history on connect. Allows the WASM orchestrator to track and export the session.

Link copied to clipboard
@Serializable
data class StateSync(val fromClientId: String, val timestamp: Long, val stateJson: String, val moduleName: String = "", val orchestrated: Boolean = false) : DevToolsMessage