diff --git a/frontend/src/composables/useTerminal.ts b/frontend/src/composables/useTerminal.ts index 2d3407b..2cc499e 100644 --- a/frontend/src/composables/useTerminal.ts +++ b/frontend/src/composables/useTerminal.ts @@ -114,8 +114,14 @@ export function useTerminal(sessionId: string): UseTerminalReturn { } try { - const decoded = atob(b64data); - terminal.write(decoded); + // atob() returns Latin-1 — each byte becomes a char code 0x00–0xFF. + // We must reconstruct the raw bytes, then decode as UTF-8. + const binaryStr = atob(b64data); + const bytes = new Uint8Array(binaryStr.length); + for (let i = 0; i < binaryStr.length; i++) { + bytes[i] = binaryStr.charCodeAt(i); + } + terminal.write(new TextDecoder().decode(bytes)); } catch { // Fallback: write raw if not valid base64 terminal.write(b64data);