From 569ecdccd0d1b5e4c15ff4c82a50f56dcbe70ec2 Mon Sep 17 00:00:00 2001 From: Konstantin Hudyakov Date: Fri, 11 Apr 2025 17:49:18 +0300 Subject: [PATCH] [terminal] IJPL-182482 Ignore read time during serialization We need this `readTime` only locally on the backend and put it to the event object only for simplicity. It is not a good design, but for now there is no suitable alternative. Ideally, we need to have the separate serializable DTO classes hierarchy for RPC. Or switch to plain longs for measuring the time. GitOrigin-RevId: f8e20acdfe0d856c73750711d1a14917fc9b5973 --- .../src/com/intellij/terminal/session/TerminalOutputEvent.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/platform/execution-impl/src/com/intellij/terminal/session/TerminalOutputEvent.kt b/platform/execution-impl/src/com/intellij/terminal/session/TerminalOutputEvent.kt index c2815b32aeee..c85596c14c95 100644 --- a/platform/execution-impl/src/com/intellij/terminal/session/TerminalOutputEvent.kt +++ b/platform/execution-impl/src/com/intellij/terminal/session/TerminalOutputEvent.kt @@ -6,6 +6,7 @@ import com.intellij.terminal.session.dto.TerminalBlocksModelStateDto import com.intellij.terminal.session.dto.TerminalOutputModelStateDto import com.intellij.terminal.session.dto.TerminalStateDto import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient import org.jetbrains.annotations.ApiStatus import kotlin.time.TimeMark @@ -20,7 +21,9 @@ data class TerminalContentUpdatedEvent( val text: String, val styles: List, val startLineLogicalIndex: Long, - val readTime: TimeMark?, + /** This value is used only on Backend. It is always null on the Frontend. */ + @Transient + val readTime: TimeMark? = null, ) : TerminalOutputEvent @ApiStatus.Internal