The paragraph claimed later child output reaches only the scrollback. Output after a settle still reaches the scrollback and whichever send is active when it arrives — appendOutput writes both (session.ts:302-307), and settleActive clears `active` rather than suppressing delivery. Only the settled operation stops receiving it, which is what the timing bound protects.
pty/ — persistent PTY capability family
English | 中文
PTY stands for Pseudo-Terminal(伪终端). This capability provides persistent, owner-scoped terminal sessions for workflows that require state across tool calls or interactive stdin. PTY complements the one-shot bash and filesystem tools; it does not replace their stronger per-operation contracts.
| Package | Role | ctx key |
|---|---|---|
pty (@deepseek-ai/dsh-pty) |
Backend registry, branded ids, exact-Agent ownership, session operations, and awaited cleanup | ctx.pty |
pty-local (@deepseek-ai/dsh-pty-local) |
Local node-pty backend, readiness detection, bounded terminal state, sandboxing, and process-session supervision |
registers on ctx.pty |
tool-pty (@deepseek-ai/dsh-tool-pty) |
Six model-facing tools and generic task integration for background sends | registers on ctx.tools |
The design and deferred boundaries live in the persistent PTY Agent Note.