You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(firefox): remove pre-supplied stdin and require live terminal input #57
PR #56 added Firefox JSPI live stdin but retained pre-supplied/buffered stdin. Remove that fallback entirely. Firefox must use live canonical terminal input when worker-side JSPI is available; otherwise it must report stdin unsupported without opening a dialog. Chromium must retain its SharedArrayBuffer live stdin path.
Out of scope: filesystem persistence/write-back, directory restoration, raw PTY behavior, and Chromium stdin redesign.
Remove stdinMode: buffered and stdinBuffer from the run contract; reject buffered requests and preserve only interactive, interactive-message, and none.
Keep Chromium on SharedArrayBuffer/Atomics. Select Firefox interactive-message only when Firefox meets the support floor and the compiler worker confirms JSPI.
When live stdin is unavailable, report a clear unsupported-runtime message and do not open a pre-supplied-input dialog or post a run request.
Removal and implementation
Delete the buffered stdin dialog module, markup, styles, imports, and tests. Remove buffered branches from terminal, WASI, worker validation, compatibility reporting, package scripts, README, and Firefox acceptance/release docs.
Preserve JSPI queued stdin, prompt-by-prompt UTF-8 line delivery, EOF, Ctrl+C cleanup, stale-session rejection, and clean reruns. Keep filesystem persistence/write-back out of scope.
Tests and acceptance
Update contract, WASI, terminal-stop, Firefox compatibility, and JSPI tests to prove buffered input is rejected, no dialog exists, Firefox without JSPI is unsupported, Firefox with JSPI uses live input, and Chromium remains unchanged.
Validate with lint, build, E2E, Firefox/Chrome smoke tests, and real Firefox runtime evidence. Acceptance requires std::cin/getline repeated reads, Ctrl+D EOF, Ctrl+C interruption, and no pre-supplied dialog.
Activity
kbuffardi commentedon Aug 1, 2026
Plan (prepared by plan-agent)
Contract and transport
stdinMode: bufferedandstdinBufferfrom the run contract; reject buffered requests and preserve onlyinteractive,interactive-message, andnone.interactive-messageonly when Firefox meets the support floor and the compiler worker confirms JSPI.Removal and implementation
Tests and acceptance
std::cin/getlinerepeated reads, Ctrl+D EOF, Ctrl+C interruption, and no pre-supplied dialog.Related: #55 and merged PR #56.