- M0: libghostty SSH 终端(渲染/输入/连接)+ 白屏修复(OutputGate) + 会话状态机/自动重连 - M1: tsnet 用户态组网 + SSH-over-tsnet(fd 桥),shell 级真机验证;R5(Go+gvisor+C+++Swift 同进程) retire - M1.5: tmux -CC 原生 tab(MVP) - 结构: packages/(TXCore·TXTransport), apps/TerminalX, vendor/(libghostty-spm/libssh2/mbedtls/tsnet-bridge), artifacts/ - 文档: CLAUDE.md + docs/HANDOFF.md(新会话入口) - 环境: 认证代理→依赖 vendor 本地化;Go 在 ~/.local/go;仅模拟器/未签名 - 待续: M2 mosh, tmux 多 pane, M4 安全(host key/SE) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
37 lines
1.6 KiB
Markdown
37 lines
1.6 KiB
Markdown
# terminalX
|
||
|
||
原生苹果生态终端运维 / vibe coding 工具。平台优先级:**iPadOS > iOS > macOS(Apple Silicon)**。
|
||
|
||
核心选型:**libghostty**(终端引擎) · **mosh** · **Tailscale (tsnet 用户态)** · **tmux control mode hook**。
|
||
|
||
> 设计与决策见 `docs/`(若缺失,参见会话记忆 / 架构蓝图)。当前处于 **M0**(骨架 + 引擎 + libssh2 直连),走 SSH-first 路线。
|
||
|
||
## 仓库结构
|
||
|
||
```
|
||
packages/ 纯 Swift SPM 包(源码构建,依赖只向下)
|
||
TXCore 零依赖:模型 / 状态机 / 协议 / 纯算法(含 tmux control-mode 解析器)
|
||
TXTransport SSH(libssh2) 引导 · mosh 驱动 · UDP relay · 连接编排 [M1+]
|
||
TXTailnet tsnet 多节点 · DialerRouter · fd 桥 [M1+]
|
||
TXTerminal GhosttyKit 包装:Metal 渲染 · 键盘 · IME [M0]
|
||
TXSecurity Keychain / Secure Enclave / known_hosts [M4]
|
||
TXPTY 本地 PTY(仅 macOS) [M4]
|
||
TXUI SwiftUI 界面层 [M0+]
|
||
apps/ Xcode app targets(XcodeGen 生成,iOS/iPadOS 合一 + macOS 独立)
|
||
vendor/ 非 Swift 语言源(zig/go/c++),CI 产出 xcframework [M1+]
|
||
artifacts/ 预编译 xcframework 落地(gitignore)
|
||
```
|
||
|
||
## 开发
|
||
|
||
```sh
|
||
# M0:纯逻辑包,命令行即可测,无需 Xcode 工程
|
||
cd packages/TXCore && swift test
|
||
```
|
||
|
||
## 工具链要求
|
||
|
||
- Xcode 26+ / Swift 6.x(M0)
|
||
- Go + gomobile(M1,tsnet)
|
||
- CMake + Ninja + zig(M1/M2,vendor 构建)
|