Skip to content

feat: Add Ctrl+O live process stdout viewer#75

Merged
qorzj merged 2 commits into
lessweb:mainfrom
Lellansin:dev/ctrl-o-process-output
May 17, 2026
Merged

feat: Add Ctrl+O live process stdout viewer#75
qorzj merged 2 commits into
lessweb:mainfrom
Lellansin:dev/ctrl-o-process-output

Conversation

@Lellansin
Copy link
Copy Markdown
Contributor

@Lellansin Lellansin commented May 16, 2026

变更内容

  • 新增 ProcessStdoutView 全屏覆盖层组件,实时展示运行中 bash 命令的 stdout/stderr 输出流
  • bash-handler 的 stdout/stderr data 事件中,通过 onProcessStdout 回调链将输出块实时推送至 UI 层
  • executor / session / App 之间建立 onProcessStdout 回调传递链路,以 Map<pid, string> 存储并限制每进程上限 1MB
  • PromptInput 绑定 Ctrl+O 快捷键:有运行中的进程时弹出 stdout 查看器,无进程时提示 "No running process to inspect"
  • 底部提示栏(footer)在检测到运行中的进程后追加 · ctrl+o view output 提示
  • 查看器支持 ↑↓ 逐行翻 10 行、PageUp/PageDown 翻 100 行,Ctrl+O 或 Esc 关闭

背景

当 LLM 执行长时间 bash 命令(如 npm install、编译等)时,用户无法看到实时输出,只能等待命令完成后查看一次性结果。本次改动引入一个非侵入式的全屏覆盖层,允许用户在命令运行期间按 Ctrl+O 随时查看流式输出,提升交互感和可观测性。

验证

  • npm test -- --test-reporter=spec
  • npm run typecheck
  • npm run lint
  • npm run format:check
  • git diff --check main...HEAD

截图

未展开状态:命令右侧提示 ctrl+o 展开
image

展开状态(可以使用 ctrl + o or Esc 收起):
image

@Lellansin Lellansin force-pushed the dev/ctrl-o-process-output branch from ec1525e to 8451d59 Compare May 16, 2026 02:16
- Add onProcessStdout callback chain through executor → bash-handler → session → App
- Stream real-time stdout/stderr from bash commands to UI ref (capped at 1MB)
- Add ProcessStdoutView fullscreen overlay with scroll support
- Bind Ctrl+O in PromptInput to toggle the stdout view
- Footer hint shows 'ctrl+o view output' when a process is running
@Lellansin Lellansin force-pushed the dev/ctrl-o-process-output branch from 553cb84 to 5e3540c Compare May 16, 2026 07:20
@qorzj qorzj merged commit 75d68f4 into lessweb:main May 17, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants