Skip to content

[EPIC-GW-01] 搭建 Gateway 独立进程骨架与 IPC 通信契约 #250

Description

@pionxe

[EPIC-GW-01] 步骤 1: 搭建 Gateway 独立进程骨架与 IPC 通信契约

目标 (Goal)
建立可独立运行的 neocode-gateway 进程,先跑通本地 IPC + Ping/Pong,作为后续适配器统一入口。

涉及范围 (Scope)

  • 新增文件:cmd/neocode-gateway/main.go
  • 新增文件:internal/gateway/transport/server.go
  • 新增文件:internal/gateway/transport/npipe_windows.go
  • 新增文件:internal/gateway/transport/uds_unix.go
  • 新增文件:internal/gateway/protocol/jsonrpc.go
  • 新增文件:internal/gateway/handlers/ping.go
  • 新增文件:internal/gateway/adapters/core_mock.go
  • 新增文件:internal/gateway/bootstrap.go
  • 修改文件:go.mod(仅新增 IPC 依赖,如 Windows Named Pipe 库)
  • 不涉及范围:URL Scheme、剪贴板监听、悬浮窗、CLI/TUI 行为改造

实现清单 (Checklist / To-Do)

  • 定义网关进程启动配置与传输选择(auto/npipe/uds)。
  • 定义最小 Core 端口接口与 Mock 实现。
  • 落地 JSON-RPC 解码、路由、编码骨架。
  • 落地 core.ping -> Pong 处理器。
  • 提供集成测试(启动服务器、发送 Ping、断言 Pong)。
  • 代码片段示意(接口骨架):
type CoreClient interface {
	Ping(ctx context.Context) (string, error)
}

type RPCRequest struct {
	JSONRPC string `json:"jsonrpc"`
	ID      string `json:"id,omitempty"`
	Method  string `json:"method"`
	Params  any    `json:"params,omitempty"`
}

验收标准 (Acceptance Criteria)

  • go run ./cmd/neocode-gateway 能启动并监听本地 IPC。
  • 测试客户端发送 {"jsonrpc":"2.0","method":"core.ping"} 能收到 Pong
  • go test ./... 通过。
  • 旧版 go run ./cmd/neocode 行为无变化。

依赖的前置 PR (Depends On)

  • 无(第一步)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Fields

No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions