From 1df882102860554db57c95b642e57c9c418c5f2d Mon Sep 17 00:00:00 2001 From: Chapman Pendery Date: Sun, 8 Mar 2026 17:13:24 -0700 Subject: [PATCH 1/2] fix: remove win32 input mode from traces Signed-off-by: Chapman Pendery --- src/terminal/ansi.ts | 1 + src/trace/tracer.ts | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/terminal/ansi.ts b/src/terminal/ansi.ts index f491627..a7159c8 100644 --- a/src/terminal/ansi.ts +++ b/src/terminal/ansi.ts @@ -18,6 +18,7 @@ const keyCtrlD = String.fromCharCode(4); const saveScreen = CSI + "?47h"; const restoreScreen = CSI + "?47l"; const clearScreen = CSI + "2J"; +export const enableWin32InputMode = CSI + "?9001h"; const cursorTo = (x: number, y: number) => { return CSI + (y + 1) + SEP + (x + 1) + "H"; }; diff --git a/src/trace/tracer.ts b/src/trace/tracer.ts index c8bd711..80f6d1a 100644 --- a/src/trace/tracer.ts +++ b/src/trace/tracer.ts @@ -7,6 +7,7 @@ import zlib from "node:zlib"; import process from "node:process"; import fsAsync from "node:fs/promises"; import { promisify } from "node:util"; +import { enableWin32InputMode } from "../terminal/ansi.js"; export type TracePoint = DataTracePoint | SizeTracePoint; @@ -75,12 +76,22 @@ export const saveTrace = async ( if (!fs.existsSync(traceFolder)) { await fsAsync.mkdir(traceFolder, { recursive: true }); } + + // remove win32-input-mode enable sequence if it comes through data + const cleanedTracePoints = tracePoints.map((tracePoint) => { + if ("data" in tracePoint) { + return { ...tracePoint, data: tracePoint.data.replaceAll(enableWin32InputMode, "") }; + } + return tracePoint; + }); + const trace: Trace = { - tracePoints, + tracePoints: cleanedTracePoints, attempt, ...testName(testId), }; + await fsAsync.writeFile( path.join(traceFolder, filename), await zipDeflate(Buffer.from(JSON.stringify(trace), "utf8")) From dd5dc543096a5510d0dec210b3ed38f87b8d3ea9 Mon Sep 17 00:00:00 2001 From: Chapman Pendery Date: Sun, 8 Mar 2026 17:15:39 -0700 Subject: [PATCH 2/2] fix: style Signed-off-by: Chapman Pendery --- src/trace/tracer.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/trace/tracer.ts b/src/trace/tracer.ts index 80f6d1a..e69ffc5 100644 --- a/src/trace/tracer.ts +++ b/src/trace/tracer.ts @@ -80,7 +80,10 @@ export const saveTrace = async ( // remove win32-input-mode enable sequence if it comes through data const cleanedTracePoints = tracePoints.map((tracePoint) => { if ("data" in tracePoint) { - return { ...tracePoint, data: tracePoint.data.replaceAll(enableWin32InputMode, "") }; + return { + ...tracePoint, + data: tracePoint.data.replaceAll(enableWin32InputMode, ""), + }; } return tracePoint; }); @@ -91,7 +94,6 @@ export const saveTrace = async ( ...testName(testId), }; - await fsAsync.writeFile( path.join(traceFolder, filename), await zipDeflate(Buffer.from(JSON.stringify(trace), "utf8"))