Skip to content

[EPIC-INT-01B] 阶段 2:TUI 通信层下沉适配 (Client Migration - Phase 1) #361

@pionxe

Description

@pionxe

🎯 目标 (Goal)

引入 RemoteRuntimeAdapter,在不大改 TUI 核心业务层的前提下,把 TUI 的运行请求与流式事件改为经由 Gateway(优先 IPC 管道)转发。

🔍 涉及范围 (Scope)

  • 新增 TUI 侧的网关 JSON-RPC 客户端与远程 Runtime 适配器。
  • 保留旧接口外观,极小化 internal/tui/core 的改动。
  • 注意:本阶段不进行“彻底去除 runtime import”的重构(留给阶段 3),保留本地直连降级能力。

📁 待修改文件 (Proposed Files)

  • internal/tui/services/remote_runtime_adapter.go (新增)
  • internal/tui/services/gateway_rpc_client.go (新增)
  • internal/tui/services/gateway_stream_client.go (新增)
  • internal/tui/services/runtime_bridge.go
  • internal/app/bootstrap.go
  • internal/cli/root.go (增加 --runtime-mode 切换开关)
  • 以及对应的 _test.go 测试文件

✅ 实现清单 (To-Do List)

  • 实现 TUI 到 Gateway 的统一 JSON-RPC 客户端(支持 IPC、静默认证、超时重试、错误映射)。
  • 实现 RemoteRuntimeAdapter:发起业务会话前自动执行 gateway.authenticategateway.bindStream
  • 实现流式通道消费逻辑:监听 gateway.event 通知,并映射为 TUI 可消费的内部事件形态。
  • 启动时静默读取 ~/.neocode/auth.json 获取 Token。
  • 在 CLI 根命令增加 --runtime-mode=local/gateway 开关,默认保持 local 以便平滑灰度测试。
  • 增加 Metrics 联调测试,断言网关请求计数随 TUI 操作增长。

🎉 验收标准 (Acceptance Criteria)

  • 开启 --runtime-mode=gateway 模式下,TUI 可正常对话并无损渲染大模型打字机流式输出。
  • 所有的交互动作均能在网关日志中产生完整的 request_id 审计记录。
  • 访问 /metrics 可观察到对应方法的请求计数增长。
  • 回退到 local 模式依然可用,go test ./... 通过。

🔗 依赖关系 (Dependencies)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions