Skip to content

feat(cli): add OpenCode-compatible session forking - #1913

Merged
limityan merged 1 commit into
GCWing:mainfrom
limityan:feat/tui-session-fork
Jul 31, 2026
Merged

feat(cli): add OpenCode-compatible session forking#1913
limityan merged 1 commit into
GCWing:mainfrom
limityan:feat/tui-session-fork

Conversation

@limityan

Copy link
Copy Markdown
Collaborator

概要

  • 在 Embedded 与 Shared TUI 中加入 OpenCode 对齐的 /fork 入口,不增加 /branch 等别名或自创快捷键;多余参数明确返回 Usage: /fork
  • 弹窗支持 Full session 与历史用户提示词。选择提示词时只复制该 Turn 之前的持久化历史,并把原提示词放回 composer,不自动发送。
  • 在 runtime-ports、Agent Runtime、Core persistence 中补齐显式 before-turn 语义;保留既有 inclusive at-turn 行为和 provider 默认兼容。
  • Shared IPC 升级到私有协议 v9:fork 仅允许当前 controller 的空闲 Session,成功结果完成大小检查后才原子切换 lease;失败保留源 Session 控制权。
  • TUI transcript 保留稳定 Turn ID;边界守卫、架构文档与 CLI 文档同步更新。

设计与兼容性

  • before-turn 分叉不会继承源会话边界之后的 turns、snapshots、compression transcripts 或未来压缩计数。
  • Embedded 与 Shared 共用同一 Runtime owner/持久化路径;IPC 只承担强类型映射与本机控制权协调。
  • 远程 Session fork 仍明确不支持;Relay、扩展/定制化、archive、replay、observer 和通用 controller transfer 不在本 PR 范围。
  • 私有 IPC 协议从 v8 升级到 v9,需要 Shared TUI client/server 同版本运行;该 wire 仍不是公开 SDK 合同。
  • 未新增或提交 docs/superpowers/** 内容。

范围

  • 37 个文件,1326 additions / 126 deletions,单一 commit。
  • 主要影响 TUI、session fork persistence、Agent Runtime port 和 Shared IPC;无 Relay 代码变更。

验证

  • node scripts/core-boundaries/self-test.mjs
  • node scripts/check-core-boundaries.mjs
  • cargo check --workspace
  • cargo test -p bitfun-runtime-ports -p bitfun-services-core -p bitfun-agent-runtime -p bitfun-agent-runtime-ipc -p bitfun-core -p bitfun-cli --no-fail-fast

另尝试了 cargo test --workspace;Windows 上被当前 main 已存在的 src/crates/services/terminal/src/exec.rs 测试模块缺少 PathBuf 导入阻塞。该文件不在本 PR diff 中,受影响的六个包完整测试均已通过。

Add exclusive before-turn persistence semantics, Shared IPC v9 controller transfer, and the /fork TUI selector for Embedded and Shared deployments.
@limityan
limityan marked this pull request as ready for review July 31, 2026 01:52
@limityan
limityan merged commit 0da4640 into GCWing:main Jul 31, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant