5707d70dff3c1fb3d89c335fb51adc0a5cd0f235
侧边栏(真机验证): - 砍掉悬浮态,只留收起⇄固定展开;TerminalSidebar 单一视图身份, 内容恒按 288pt 排版、收起=左侧裁切(clipped 宽度动画), 图标列两态同尺寸同位置,明细淡入淡出,终端随宽度盖上/让开 - 开合入口收敛:Logo 位(收起态=»展开键/展开态=Logo)+ 头部«; 删底部开合键与 Pin;LeadingHitShape 修 clipped 不裁触摸 - 修 GridBox 从不通知 UI:onGridChange→objectWillChange, 标题胶囊格子数随开合实时刷新 触控化走查(上一轮,真机部署验证): - 窗口按钮 13pt 色点→22pt 圆角方块常显字形;动作条改可点按钮 - TXTech 拼写/配色规范(SSH/mosh/tmux 官方写法+品牌色映射) - 首页会话卡固定 3 列 4:3;去掉未实现的 ⌘K 提示 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
terminalX
原生苹果生态终端运维 / vibe coding 工具。平台优先级:iPadOS > iOS > macOS(Apple Silicon)。
核心选型:libghostty(终端引擎) · mosh · Tailscale (tsnet 用户态) · tmux control mode hook。
接手/继续开发先读
docs/HANDOFF.md(项目全貌 + 里程碑 + 代码地图 + 下一步)与CLAUDE.md(构建/验证命令 + 环境约束 + 坑)。
当前进展(2026-07-24,均 iOS 模拟器验证,未上真机/未签名)
- M0 SSH 直连终端(libghostty 渲染/键盘/CJK、会话状态机+自动重连)✅
- M1 tsnet 用户态 + SSH-over-tsnet(fd 桥)✅
- M1.5 / tmux control-mode 原生 tab + 多 pane 分屏 + iPadOS 动态 resize ✅
- M2 mosh over tsnet(自编
MoshCore.xcframework+ UDP relay)✅ 端到端验证 - M3 mosh 挂起→恢复 <3s(唤醒脉冲 + 会话状态机三相)✅
- M4 安全:host key TOFU pin(MITM 防护)+ publickey 认证(SE 优先/软件回退)✅
- M5 合规提审 ⏸️ 暂缓
- UI 产品化(进行中) 对标 Moshi:深蓝黑 + 终端绿 + Catppuccin;主机管理页/终端 chrome/统一主题切换(app+终端同源,4 套 Catppuccin) ✅;会话缩略卡/设置细化待续。见
docs/HANDOFF.md §10。
四大核心需求(libghostty / tailscale / tmux / mosh)均已端到端验证。
仓库结构(实际)
packages/
TXCore 零依赖纯逻辑:tmux 解析器/layout、SessionMachine(状态机+重连+mosh三相)、
MoshConnect(解析)、SSH(线格式/ECDSA/host key)。50 单测。
TXTransport SSHSession(libssh2)、MoshSession(mosh_main 桥)、Transport 协议;
C shim: CSSH+CSSHCore(libssh2)、CMosh+MoshCore(mosh)。
apps/TerminalX iOS app(XcodeGen 生成):SSHTerminalModel(编排)/ContentView(主机管理页+
终端 chrome+设置)/TmuxController(pane-per-surface 网关)/Theme(TXPalette+
主题管理)/HostStore(主机持久化)/SigningKeyProvider/KeychainKnownHostsStore。
vendor/ 非 Swift 依赖本地化(认证代理不支持 SwiftPM,全 vendor):
libghostty-spm、libssh2、mbedtls、tsnet-bridge(Go)、mosh、protobuf。
artifacts/ 预编译 xcframework(CSSHCore/TsnetBridge/MoshCore,**有意提交**,克隆即可构建)。
计划中的
TXTailnet/TXSecurity/TXPTY/TXUI未单独成包——tsnet 逻辑在 app 的TsnetManager、 安全在 app 的SigningKeyProvider/KeychainKnownHostsStore、UI 直接在 app。macOS 本地 PTY 未建。
快速开始
# 纯逻辑单测(无需 Xcode/模拟器)
swift test --package-path packages/TXCore # 50 tests
# 构建 app(模拟器)——详见 CLAUDE.md
cd apps/TerminalX && xcodegen generate --spec project.yml
xcodebuild -project TerminalX.xcodeproj -scheme TerminalX \
-destination 'platform=iOS Simulator,id=<UDID>' -clonedSourcePackagesDirPath /tmp/tx-spm build
工具链
Xcode 26 / Swift 6.3 · Go 1.26(~/.local/go)+gomobile · CMake+Ninja+zig(vendor 构建)。构建命令与环境约束见 CLAUDE.md。
Description
Languages
C
84.7%
Swift
14.9%
Objective-C
0.4%