- 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>
48 lines
1.4 KiB
YAML
48 lines
1.4 KiB
YAML
name: TerminalX
|
||
options:
|
||
bundleIdPrefix: ai.athom.terminalx
|
||
deploymentTarget:
|
||
iOS: "17.0"
|
||
createIntermediateGroups: true
|
||
|
||
packages:
|
||
# 本地 vendored(构建环境的认证代理不被 SwiftPM 支持,改用 local-path 零网络)。
|
||
GhosttyKit:
|
||
path: ../../vendor/libghostty-spm
|
||
TXTransport:
|
||
path: ../../packages/TXTransport
|
||
TXCore:
|
||
path: ../../packages/TXCore
|
||
|
||
targets:
|
||
TerminalX:
|
||
type: application
|
||
platform: iOS
|
||
deploymentTarget: "17.0"
|
||
sources:
|
||
- path: iOS
|
||
dependencies:
|
||
- package: GhosttyKit
|
||
product: GhosttyTerminal
|
||
- package: GhosttyKit
|
||
product: GhosttyTheme
|
||
- package: TXTransport
|
||
product: TXTransport
|
||
- package: TXCore
|
||
product: TXCore
|
||
# gomobile bind 产出的 tsnet 桥接(动态 framework,需嵌入+签名拷贝)。
|
||
- framework: ../../artifacts/TsnetBridge.xcframework
|
||
embed: true
|
||
settings:
|
||
base:
|
||
PRODUCT_BUNDLE_IDENTIFIER: ai.athom.terminalx
|
||
MARKETING_VERSION: "0.0.1"
|
||
CURRENT_PROJECT_VERSION: "1"
|
||
SWIFT_VERSION: "6.0"
|
||
GENERATE_INFOPLIST_FILE: YES
|
||
TARGETED_DEVICE_FAMILY: "1,2"
|
||
INFOPLIST_KEY_UILaunchScreen_Generation: YES
|
||
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents: YES
|
||
# M0 渲染自检无需签名(仅模拟器);真机/上架在 M4/M5 配置。
|
||
CODE_SIGNING_ALLOWED: NO
|