Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
f6ed945
Add Feishu reply TTS design spec
May 2, 2026
9181772
Add Feishu reply TTS implementation plan
May 2, 2026
a6be4d3
feat: add Feishu reply TTS platform path policy
May 2, 2026
2c9d96b
fix: harden Feishu reply TTS storage resolution
May 2, 2026
73d69f3
fix: isolate reply TTS storage probe paths
May 2, 2026
222bbae
feat: persist Feishu reply TTS user settings
May 2, 2026
fb7af41
test: strengthen Feishu reply TTS config coverage
May 2, 2026
2ba1a13
feat: add Feishu reply TTS platform services
May 2, 2026
8326634
fix: harden Feishu reply TTS platform behavior
May 2, 2026
615935f
fix: preserve TTS platform cancellation
May 2, 2026
aa56cd1
feat: add Feishu reply TTS controls to admin modal
May 2, 2026
ed0fb95
fix: harden reply TTS admin modal state
May 2, 2026
5637e82
fix: preserve reply TTS modal state on partial refresh
May 2, 2026
10b9db3
feat: add Feishu reply TTS speech pipeline
May 2, 2026
7b3be76
test: cover paragraph-first reply TTS chunking
May 2, 2026
f8ebfbd
fix: harden reply TTS transcode job paths
May 2, 2026
48699bc
feat: add Feishu audio upload and send support
May 2, 2026
9a31a80
fix: include Feishu audio upload file name
May 2, 2026
e5d8b36
feat: queue reply TTS after Feishu completion
May 2, 2026
f83f881
fix: normalize prompt test line endings
May 2, 2026
baf9e8b
feat: queue reply TTS for Feishu card actions
May 2, 2026
e3a5e74
test: harden Feishu card action reply TTS coverage
May 2, 2026
3f38f24
feat: add local MeloTTS wrapper service
May 2, 2026
bf1509e
fix: harden MeloTTS runtime fallback
May 2, 2026
10efab3
Make Feishu audio replies and external history resilient
May 5, 2026
65864f1
Define a minimal visual separation plan for streaming reply sections
May 5, 2026
79dc9d0
Record the implementation path for streaming reply section separation
May 5, 2026
090ec53
Enable /goal quick actions and clarify Feishu streaming card sections
May 5, 2026
1f77ab3
Ship Windows releases with the bundled reply TTS wrapper
May 5, 2026
01fe766
Integrate reply TTS and release packaging into main
May 5, 2026
72d1216
Normalize reply TTS test line endings across checkouts
May 5, 2026
4710099
Stabilize packaged startup and local TTS installer workflows
May 6, 2026
3c9a1de
Protect rollout history before provider resync overwrites it
May 6, 2026
e039157
Keep Codex goal detection aligned with Windows launcher wrappers
May 7, 2026
146e05c
Preserve streamed Feishu content when appending execution errors
May 7, 2026
28fea95
Add packaged skills for local installer and GitHub release workflows
May 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project>
<!-- See https://aka.ms/dotnet/msbuild/customize for more details on customizing your build -->
<PropertyGroup>
<Version>0.2.7</Version>
<Version>0.2.8</Version>
<NetVersion>10.0.1</NetVersion>
</PropertyGroup>
</Project>
124 changes: 124 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,25 @@

---

## 功能目录

- [项目简介](#项目简介)
- [当前重点能力](#当前重点能力)
- [多 AI CLI 接入](#多-ai-cli-接入)
- [Web、移动端、飞书统一会话流](#web移动端飞书统一会话流)
- [多用户与权限控制](#多用户与权限控制)
- [外部会话导入与恢复](#外部会话导入与恢复)
- [Codex `/goal` 快速目标能力](#codex-goal-快速目标能力)
- [Superpowers 工作流](#superpowers-工作流)
- [Windows 安装包发布](#windows-安装包发布)
- [`cc-switch` 托管模型](#cc-switch-托管模型)
- [快速开始](#快速开始)
- [配置说明](#配置说明)
- [Windows 发布维护](#windows-发布维护)
- [项目结构](#项目结构)
- [技术栈](#技术栈)
- [常用文档](#常用文档)

## 项目简介

WebCode 是一个基于 `Blazor Server + .NET 10` 的 AI CLI 工作平台。它不是单机聊天壳,而是把本地或服务器上的 AI CLI 包装成一个可管理、可部署、可协作、可远程访问的工作系统。
Expand Down Expand Up @@ -54,6 +73,47 @@ WebCode 是一个基于 `Blazor Server + .NET 10` 的 AI CLI 工作平台。它
- 支持导入本地 CLI 会话并继续在 WebCode 中使用
- 支持在移动端抽屉和飞书会话卡片里直接管理会话

#### 功能入口矩阵

下表用于快速说明三类主要入口当前各自覆盖的能力范围:

| 能力 | 桌面 Web | 移动端 | 飞书 |
|------|----------|--------|------|
| 创建、切换、关闭会话 | 支持 | 支持 | 支持 |
| 导入本地 CLI 会话 | 支持 | 支持 | 支持 |
| 会话级 Provider 同步 | 支持 | 支持 | 支持 |
| 工作区浏览与文件操作 | 支持最完整 | 支持常用操作 | 以会话/卡片操作为主 |
| 流式输出查看 | 支持最完整 | 支持 | 支持卡片流式回显 |
| `/goal` 快捷目标 | 支持 | 支持 | 支持 |
| `Superpowers` 快捷工作流 | 支持 | 支持 | 支持 |
| 多用户管理与系统配置 | 支持最完整 | 适合轻量查看/操作 | 不作为主要入口 |
| 安装与部署维护 | 主要依赖文档和本地脚本 | 不作为主要入口 | 不作为主要入口 |

补充说明:

- 桌面 Web 是能力最完整的主控制台,适合管理、调试、配置和重度会话操作
- 移动端保留高频会话操作,重点是随时查看、切换、继续和触发快捷动作
- 飞书更偏消息驱动和卡片驱动,适合在聊天上下文里直接继续会话、执行快捷动作和接收流式结果

#### 飞书能力清单

飞书当前不是“只做消息通知”,而是已经覆盖一条可直接工作的会话与卡片交互链路:

- 支持把飞书会话绑定到 WebCode 用户和本地/服务器侧 CLI 会话
- 支持在飞书卡片中创建、切换、关闭、继续会话
- 支持在飞书端浏览并导入外部 CLI 会话
- 支持在飞书卡片中触发 `/goal`、`Superpowers` 等快捷动作
- 支持流式卡片更新,在执行过程中持续回显输出内容
- 支持会话级 Provider 同步,确保飞书侧也遵循 `cc-switch` 当前激活状态
- 支持 Reply TTS 相关能力,用于把回复内容进一步转换为语音或语音服务调用链
- 支持帮助卡片、快捷入口卡片、会话管理卡片等多种交互载体

适合的飞书使用场景包括:

- 在群聊或私聊里直接继续一个已有 AI CLI 会话
- 在移动办公场景下用卡片完成高频操作,而不打开完整 Web 控制台
- 用机器人卡片承接流式输出、快捷动作、目标设定和会话切换

### 多用户与权限控制

- 用户启用/禁用
Expand All @@ -71,6 +131,49 @@ WebCode 是一个基于 `Blazor Server + .NET 10` 的 AI CLI 工作平台。它
- 同一个 `(ToolId, CliThreadId)` 只能被一个 WebCode 用户占用
- Web 端与飞书端都支持分页浏览、导入并切换到这些会话

### Codex `/goal` 快速目标能力

当前版本已经补齐 Codex `/goal` 相关能力,覆盖 Web 端、移动端和飞书卡片场景:

- WebCode 会先探测当前 Codex CLI 版本与 `goals` feature 是否可用
- 当探测结果可用时,会在会话级 `.codex/config.toml` 中自动注入 `goals = true`
- 用户可以通过快速输入或快捷动作把普通文本自动补成 `/goal ...`
- `/goal` 能力按会话生效,不要求手工长期维护全局 `config.toml`

说明:

- 当前要求 Codex CLI 版本不低于 `0.128.0`
- WebCode 在 Windows 下会自动解析 `codex.exe`、`codex.cmd`、`codex.bat`、`codex.ps1` 等入口,避免因包装脚本导致版本探测失败
- 如果 Codex 本身未提供 `goals` feature,WebCode 不会强行注入该配置

### Superpowers 工作流

当前仓库已经接入 `Superpowers` 工作流增强能力,用来把普通 CLI 会话提升为“带策略和快捷动作的执行流”:

- 支持在 Web 端、移动端和飞书卡片中触发工作流型快捷动作
- 支持把用户输入快速包装成结构化工作流提示,而不只是原样转发给 CLI
- 支持能力探测,按当前环境决定是否展示或启用对应的工作流入口
- 支持把 `Superpowers` 与现有 `Claude Code`、`Codex`、`OpenCode` 会话流结合使用

当前文档和实现已经覆盖的典型工作流包括:

- 计划类工作流,例如 `plan`、`ralplan`
- 持续执行类工作流,例如 `ralph`
- 深度澄清类工作流,例如 `deep-interview`
- 协作/并行类工作流,例如 `team`、`ultrawork`
- 快捷动作类封装,例如面向会话的一键注入提示词和工作流命令

说明:

- `Superpowers` 不是单独的 Web 页面,而是叠加在现有会话、快捷动作、飞书卡片交互之上的工作流层
- 哪些工作流可用,取决于当前工具、环境能力探测结果以及会话上下文
- 相关实现可参考:
- [WebCodeCli.Domain/Domain/Service/SuperpowersCapabilityService.cs](./WebCodeCli.Domain/Domain/Service/SuperpowersCapabilityService.cs)
- [WebCodeCli.Domain/Domain/Service/SuperpowersPromptBuilder.cs](./WebCodeCli.Domain/Domain/Service/SuperpowersPromptBuilder.cs)
- [WebCodeCli.Domain/Domain/Service/Channels/SuperpowersQuickActionCardHelper.cs](./WebCodeCli.Domain/Domain/Service/Channels/SuperpowersQuickActionCardHelper.cs)
- [WebCodeCli/Pages/CodeAssistant.razor.cs](./WebCodeCli/Pages/CodeAssistant.razor.cs)
- [WebCodeCli/Pages/CodeAssistantMobile.razor.cs](./WebCodeCli/Pages/CodeAssistantMobile.razor.cs)

### Windows 安装包发布

仓库已经内置 Windows 安装包构建脚本,可直接生成:
Expand All @@ -79,6 +182,7 @@ WebCode 是一个基于 `Blazor Server + .NET 10` 的 AI CLI 工作平台。它
- 便携版 `WebCode-vX.Y.Z-win-x64-portable.zip`
- 校验文件 `SHA256SUMS.txt`
- Release 说明 `RELEASE_NOTES.md`
- 包含 Reply TTS 服务与运行所需资源的 `tts-bundle/`

## `cc-switch` 托管模型

Expand Down Expand Up @@ -257,13 +361,29 @@ dotnet run --project WebCodeCli
powershell -ExecutionPolicy Bypass -File .\tools\build-windows-installer.ps1
```

如果你要生成“包含 Reply TTS / Kokoro 能力”的本地 Windows 安装包,应该优先走这条脚本,而不是单独 `dotnet publish`。原因是安装包脚本除了发布主程序外,还会额外处理这些内容:

- 调整发布目录里的 `appsettings.json`
- 拷贝 `tools/sherpa-kokoro-service`
- 组装 `tts-bundle`
- 生成 Inno Setup 安装包与 portable zip

脚本会读取 [Directory.Build.props](./Directory.Build.props) 中的版本号,并在 `artifacts/windows-installer/vX.Y.Z/` 下生成:

- `publish/`
- `WebCode-vX.Y.Z-win-x64-portable.zip`
- `installer/WebCode-Setup-vX.Y.Z-win-x64.exe`
- `SHA256SUMS.txt`
- `RELEASE_NOTES.md`
- `tts-bundle/`

在 Windows 机器上,如果默认输出目录存在旧文件锁定,或者 Inno Setup 遇到长路径问题,可以显式指定一个较短的输出目录,例如:

```powershell
powershell -ExecutionPolicy Bypass -File .\tools\build-windows-installer.ps1 -OutputRoot D:\wci
```

这种方式同样会生成完整的安装版、便携版和 TTS 资源目录,适合本地快速出包。

构建机要求:

Expand Down Expand Up @@ -311,6 +431,10 @@ WebCode/
- [DEPLOY_DOCKER.md](./DEPLOY_DOCKER.md)
- [docs/QUICKSTART_CodeAssistant.md](./docs/QUICKSTART_CodeAssistant.md)
- [docs/README_CodeAssistant.md](./docs/README_CodeAssistant.md)
- [docs/superpowers/plans/2026-04-30-superpowers-plan-quick-actions-implementation.md](./docs/superpowers/plans/2026-04-30-superpowers-plan-quick-actions-implementation.md)
- [docs/superpowers/specs/2026-04-30-superpowers-plan-quick-actions-design.md](./docs/superpowers/specs/2026-04-30-superpowers-plan-quick-actions-design.md)
- [docs/superpowers/plans/2026-04-24-ralph-runtime-implementation.md](./docs/superpowers/plans/2026-04-24-ralph-runtime-implementation.md)
- [docs/superpowers/specs/2026-04-24-ralph-runtime-design.md](./docs/superpowers/specs/2026-04-24-ralph-runtime-design.md)
- [docs/workspace-management-guide.md](./docs/workspace-management-guide.md)
- [docs/workspace-management-deployment-guide.md](./docs/workspace-management-deployment-guide.md)

Expand Down
Loading