Commit Graph
11 Commits
Author SHA1 Message Date
Tianyi Cui 29729f83cf Test the TUI through ConPTY on Windows 2026-07-20 20:59:22 +08:00
Tianyi Cui b5d112a251 Skip TUI PTY smoke on Windows 2026-07-20 20:40:44 +08:00
Tianyi Cui 2191d45ece Merge origin/master into codex/remove-stdio-agent
# Conflicts:
#	examples/repl-agent/cordis.yml
2026-07-20 19:58:40 +08:00
Tianyi Cui 4cadf096ce Remove the stdio agent 2026-07-20 19:26:04 +08:00
Tianyi Cui 41d3e78d3a test(snapshots): require explicit delegation depth 2026-07-20 17:59:13 +08:00
Tianyi Cui 0893aaa7cb test: rename golden snapshot files to expected 2026-07-19 17:45:49 +08:00
Tianyi Cui c06e6bea0b Merge origin/master into feat/tui-package
Master unifies every live agent with its exact SessionId and moves declarative startup failures to agent-loop/config-start-failed. Keeping the branch’s AgentId label binding would let the TUI target the wrong lifecycle after reload and would miss asynchronous resume failures.

Resolve that contract migration by giving the selected terminal front door the same generated or resumed SessionId as agent-core, mounting the front door first, and entering fullscreen only after the matching root appears. Refresh the source-derived catalogs and keyless terminal goldens so Code Mode, workflow, Cordis-tool, and transient UI scenarios all exercise the merged identity model.
2026-07-19 11:37:14 +08:00
Tianyi Cui b5e8e4e9c1 fix(tui): neutralize terminal controls at display boundary
Model responses, replayed session data, tool presenter output, question metadata, configuration, and diagnostics all cross into ANSI-aware pi-tui renderers. Passing their C0 or C1 controls through unchanged lets an otherwise ordinary transcript emit OSC, CSI, cursor, or title operations in the user terminal.

Introduce one displayText boundary that preserves line-feed layout but renders every other C0/C1 control as visible \\xNN text before application styling is applied. Route transcript blocks, streaming output, tool cards, diffs, plans, dialogs, headers, cwd/title data, notices, errors, and pre-mount startup failures through that boundary while leaving pi-tui and the theme responsible for legitimate terminal control sequences.

Pin the contract at three levels: a settled headless-terminal golden spans the main untrusted display sources, unit coverage checks the pre-fullscreen failure path, and the real Loader/PTY conversation streams hostile OSC, cursor, and C1 probes and proves only their inert textual forms reach the terminal stream.
2026-07-19 10:50:19 +08:00
Tianyi Cui 81ca81e23d test(tui): stabilize snapshot workspace width 2026-07-19 01:42:16 +08:00
Tianyi Cui e68cef1be1 test(tui): replay recorded sessions through real tools 2026-07-19 01:31:55 +08:00
Tianyi Cui bea6a74ea0 refactor(examples): give TUI its own agent leaf 2026-07-19 01:09:20 +08:00