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
The /terminal docs page's TypeScript column shows a pty key that names nothing the
bridge spawns into, and an effect call the emitter refuses. Following it produces a
blank terminal with no error anywhere. The Zig column on the same page is correct.
Checked against the live page and v0.7.1 (19519dd5), 2026-08-01.
A computed key is not expressible.Cmd.ptyWrite/ptyKill take the key as a string literal (NS1027), so Cmd.ptyWrite(shellKey, …) — a variable — does not
transpile at all. The page's own snippet fails the checker.
Why it survived
None of the three core.ts examples the SDK ships (ai-chat-ts, soundboard-ts, system-monitor-ts) mounts a <terminal>, so the TS-core + terminal combination has no
example holding the page honest.
What a correct column needs to say
the spawn key is a string literal, and every later op naming it is a literal too;
the value <terminal pty> binds is the engine key, pty_key_base + slot, not the
string and not an app-chosen number;
Summary
The
/terminaldocs page's TypeScript column shows a pty key that names nothing thebridge spawns into, and an effect call the emitter refuses. Following it produces a
blank terminal with no error anywhere. The Zig column on the same page is correct.
Checked against the live page and v0.7.1 (
19519dd5), 2026-08-01.What the page shows
and, in prose: "The pty key is ordinary model data — pick it like an effect key."
Why it does not work
Cmd.ptySpawnnames a stringsession key;
ts_core_host.zigmaps it to the first free slot in its own table andspawns the engine session at
pty_key_base + index(
pub const pty_key_base: u64 = 0x5453_5054_0000_0000).<terminal pty={n}>mustname that engine key. Binding
1mounts nothing — no diagnostic, no log, an emptygrid. (Background in Feature gap: a transpiled TS core cannot bind
<terminal pty>— TS pty commands and the terminal element fail to meet at the binding #229.)Cmd.ptyWrite/ptyKilltake the key as astring literal (NS1027), so
Cmd.ptyWrite(shellKey, …)— a variable — does nottranspile at all. The page's own snippet fails the checker.
Why it survived
None of the three
core.tsexamples the SDK ships (ai-chat-ts,soundboard-ts,system-monitor-ts) mounts a<terminal>, so the TS-core + terminal combination has noexample holding the page honest.
What a correct column needs to say
<terminal pty>binds is the engine key,pty_key_base + slot, not thestring and not an app-chosen number;
allocation or reads the bound key back from
TerminalState.pty(feat(terminal): carry the bound pty key on canvas.TerminalState #221).Related: #229 (the binding gap this page post-dates), #224.