# Phase 1: Core Infrastructure - Context
**Gathered:** 2026-03-11
**Status:** Ready for planning
## Phase Boundary
创建、列表、销毁、恢复 tmux 会话,带持久化状态,支持多用户隔离的会话管理基础设施。这是整个 gsd-openclaw 技能的底层核心,后续所有命令桥接和 GSD 集成都依赖于此。
## Implementation Decisions
### Session Naming
- **命名格式**: 仅项目名(单用户场景,如 `gsd-project-alpha`)
- **同名冲突**: 自动添加时间戳后缀(如 `-20260311-001`)
- **显示名**: 支持用户自定义友好名称,存储映射:显示名 → tmux 名
- **会话限制**: 每用户可配置最大会话数(默认值由 planner 决定)
### State Storage
- **位置**: 每项目独立目录 `~/gsd-workspaces/{project}/.gsd/`
- **检查点频率**: 每 30 秒自动保存
- **状态内容**:
- 会话元数据(ID、项目名、创建时间)
- tmux 引用(会话名、窗格 ID)
- 活动统计(最后活跃时间、命令计数)
- 最后输出快照
- **原子写入**: 是(先写临时文件再 rename)
- **备份策略**: 保留 1 个备份(`.gsd/state.json.bak`)
### Workspace Structure
- **根目录**: `~/gsd-workspaces/{project}/`
- **目录布局**:
```
~/gsd-workspaces/{project}/
├── .gsd/
│ ├── state.json # 会话状态
│ ├── state.json.bak # 状态备份
│ └── session-dump/ # 会话转储
├── code/ # 项目代码(可选)
└── io-logs/
└── {session-id}.log # I/O 日志
```
- **I/O 日志保留**: 7 天
- **会话结束处理**: 销毁会话时删除工作空间
### Recovery Strategy
- **崩溃恢复**: 启动时自动检测状态文件,提示用户是否恢复
- **孤儿会话处理**: 自动清理没有状态文件的 tmux 会话
- **状态验证**: 恢复前验证状态文件完整性和版本兼容性
- **备份使用**: 主状态文件损坏时自动尝试备份
### Claude's Discretion
- 检查点的精确触发时机(命令后 vs 定时器)
- 状态文件 schema 版本号设计
- 日志文件命名格式
- 错误消息的具体措辞
## Specific Ideas
- 工作空间结构参考 dev-workflow 的 `.planning/` 模式
- 状态文件使用 JSON 格式,与 dev-workflow 的 state.json 一致
- tmux 会话名前缀统一使用 `gsd-` 避免与其他 tmux 用途冲突
## Existing Code Insights
### Reusable Assets
- **dev-workflow/state_manager.py**: JSON 状态管理模式可直接复用
- `load_state()`, `save_state()`, `init_state()` 函数签名
- 原子写入模式(temp file + rename)
- ISO 时间戳格式
- **dev-workflow/orchestrator.py**: 命令行参数解析模式
- argparse 结构
- 阶段管理逻辑
### Established Patterns
- **状态路径查找**: 从当前目录向上查找 `.planning/` 定位项目根
- **目录创建**: `mkdir(parents=True, exist_ok=True)` 模式
- **错误处理**: 中文错误消息 + sys.exit(1)
### Integration Points
- 本 phase 产出的 `state_manager.py` 将被 Phase 3 的 `orchestrator.py` 调用
- `tmux_session_manager.py` 将被 Phase 3 的命令桥接调用
- 工作空间目录结构将被 Phase 4 的 GSD 集成使用
## Deferred Ideas
- 多用户前缀(当前为单用户场景,如需多用户隔离可后续添加)
- 会话池化和 LRU 淘汰(v2 特性)
- 会话分支和克隆(v2 特性)
- 实时状态同步到 OpenClaw 控制面板(Phase 5)
---
*Phase: 01-core-infrastructure*
*Context gathered: 2026-03-11*