ワンクリックで
workspace-domain
改动工作区、分屏树、pane 生命周期、App 层协调 (AppModel)、或 App↔Core 分层时使用。覆盖唯一 owner、值类型分屏树与分层边界。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
改动工作区、分屏树、pane 生命周期、App 层协调 (AppModel)、或 App↔Core 分层时使用。覆盖唯一 owner、值类型分屏树与分层边界。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
改动 PTY 会话、libghostty-vt 桥接、终端输入、OSC/HTML 适配时使用。覆盖终端状态唯一真相源、会话协议、输出合并与输入路径。
做渲染/滚动/输出性能优化,或需要判断"正确性 vs 流畅 vs 可读性"取舍时使用。覆盖脏行渲染、缓存层、合并、render loop 禁忌。
改动 ProGhostty 渲染层(Metal 直渲 / cell-grid 回退 / 滚动 / 脏行)时使用。覆盖三层降级梯、不可变快照契约、像素滚动路径与渲染边界。
SOC 職業分類に基づく
| name | workspace-domain |
| description | 改动工作区、分屏树、pane 生命周期、App 层协调 (AppModel)、或 App↔Core 分层时使用。覆盖唯一 owner、值类型分屏树与分层边界。 |
改任何 Sources/ProGhosttyCore/Workspace/、Sources/ProGhosttyApp/、或跨 App↔Core 边界的代码前读本文件。
PaneWorkspaceController 是工作区运行时状态的唯一 owner。 别在别处存一份工作区/pane 状态。App → Core,Workspace → Session → PTY → libghostty-vt。禁止回指。ProGhosttyCore 绝不 import SwiftUI(scripts/check-architecture.sh 守卫)。TerminalSessionID 和轻量元数据,不知道会话如何渲染。Package.swift)ProGhosttyApp(executable,SwiftUI+AppKit)→ 依赖 ProGhosttyCore。ProGhosttyCore(library)→ 依赖 C shim ProGhosttyGhosttyVT / ProGhosttyPTY。ProGhosttyPG(pg helper)→ 依赖 Core。.v6。PaneWorkspaceController(Workspace/PaneWorkspaceController.swift,@MainActor final class)— 唯一 owner。持 workspaceLayouts: [WorkspaceLayout] + activeWorkspaceID。依赖注入 TerminalSessionManager + TerminalFocusStore(组合根装配,不在类内 new)。open/split/close/rename/updatePaneCwd 都经它。PaneTreeReducer(纯值)— 分屏树 reduce / listLeaves。SplitRatioLayout(纯值)— 比例布局几何。WorkspaceStore(纯值)— 工作区持久化。WorkspaceLayout → root: PaneNode,PaneNode = leaf(TerminalPane) | split(SplitPane),SplitPane = axis, ratio, first, second。TerminalPane 只存元数据 + TerminalSessionID。这些纯值类型可测、干净——新增工作区逻辑优先做成纯函数放进 reducer/layout,而非塞进 controller 或 view。
AppModel(ProGhosttyApp/UI/AppModel.swift,~1632 行,14 个 @Published)— 当前兼任组合根 + 视图模型 + 事件路由。正在按 .claude/ARCHITECTURE_PLAN.md 阶段 3 拆分成一组 Feature Controller(ConfirmationPrompts / TitleFormatting / TerminalWindowSizingController / PaneSplitAvailabilityController / NotificationPresenter / UtilityWindowController / AppComposition / AppearanceViewModel)。handle()、switcher 同步、输入路由、布局快照、更新检查适配。App 层只依赖:
TerminalSessionManager、TerminalSurfaceRegistry。TerminalSessionID、TerminalEvent、TerminalSessionConfig、WorkspaceLayout、TerminalPane。App 层不得依赖 GhosttyVTBridge、C/Zig 头文件、具体渲染后端类型。
TerminalWindowAppearance(窗口 chrome/外观)目前误放在 Core,计划移到 App/UI(阶段 0)。别再往 Core 加窗口 chrome/外观类型。Settings/AppSettings.swift 因字体查询用 NSFont/NSFontManager 仍 import AppKit——是 arch guard 白名单里已记录的待偿债(阶段 5 抽 FontCatalog)。别以它为先例在 Core 其它地方引 AppKit。PaneWorkspaceController)。GhosttyVTBridge。new 协作者(用组合根注入)。docs/architecture/ownership-map.md、.claude/ARCHITECTURE_PLAN.md。测试:PaneWorkspaceControllerTests、PaneTreeReducerTests、SplitRatioLayoutTests、WorkspaceStoreTests、WorkspaceSwitcherStateTests。