بنقرة واحدة
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 ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
改动 PTY 会话、libghostty-vt 桥接、终端输入、OSC/HTML 适配时使用。覆盖终端状态唯一真相源、会话协议、输出合并与输入路径。
做渲染/滚动/输出性能优化,或需要判断"正确性 vs 流畅 vs 可读性"取舍时使用。覆盖脏行渲染、缓存层、合并、render loop 禁忌。
改动 ProGhostty 渲染层(Metal 直渲 / cell-grid 回退 / 滚动 / 脏行)时使用。覆盖三层降级梯、不可变快照契约、像素滚动路径与渲染边界。
| 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。