kid 5dbe937222 feat: M4b publickey 认证(SE 优先/软件回退,sign_callback)
- TXTransport: SSHSigner 协议 + Authentication.publicKeyCallback;SSHSession 用
  @convention(c) sshSignCallback(abstract 桥 SignerBox + malloc 出参)接 libssh2_userauth_publickey
- app SigningKeyProvider: SE 优先(kSecAttrTokenIDSecureEnclave),未签名/无 SE 回退软件 P-256
  (导出落文件持久化),同一 SSHSigner 路径;SecKeyCreateSignature(ecdsa)→ECDSAConv.derToSSHSignature
- 公钥 blob=ecdsa-sha2-nistp256||nistp256||X963;-txPubkeyAuth 日志打 authorized_keys 行
- 验证(192.168.9.199):不给密码,公钥加 authorized_keys 后免密登录成功(whoami=kid);
  模拟器 SE 生成 hw=true 可达,真机 SE 硬件签名+keychain 持久化待补

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-24 18:17:30 +08:00

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)

开发

# M0:纯逻辑包,命令行即可测,无需 Xcode 工程
cd packages/TXCore && swift test

工具链要求

  • Xcode 26+ / Swift 6.x(M0)
  • Go + gomobile(M1,tsnet)
  • CMake + Ninja + zig(M1/M2,vendor 构建)
Description
No description provided
Readme 68 MiB
Languages
C 84.7%
Swift 14.9%
Objective-C 0.4%