Skip to content

Commit deb73f6

Browse files
authored
Merge pull request #4 from spencerkit/feature/workspace-transport-implementation
Implement WS-driven workspace artifact sync
2 parents a0b8a28 + 9a1c1bc commit deb73f6

62 files changed

Lines changed: 3905 additions & 409 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,29 @@ jobs:
4848
- run: pnpm install --no-frozen-lockfile
4949
- run: pnpm test:cli
5050

51+
transport-windows-smoke:
52+
name: Transport Windows Smoke
53+
runs-on: windows-2022
54+
needs: version-consistency
55+
steps:
56+
- uses: actions/checkout@v4
57+
- uses: dtolnay/rust-toolchain@stable
58+
- name: Install Windows GNU target
59+
run: rustup target add x86_64-pc-windows-gnu
60+
- uses: Swatinem/rust-cache@v2
61+
with:
62+
workspaces: apps/server -> .build/server/target
63+
- uses: pnpm/action-setup@v4
64+
- uses: actions/setup-node@v4
65+
with:
66+
node-version: 22
67+
cache: pnpm
68+
- run: pnpm install --no-frozen-lockfile
69+
- run: npx playwright install chromium
70+
# Pin this smoke to windows-2022 because windows-latest currently tracks
71+
# windows-2025 and GitHub-hosted windows-2025 does not reliably provide WSL.
72+
- run: pnpm test:smoke:windows:transport -- --skip-wsl-preflight
73+
5174
verify-linux:
5275
name: Verify Linux Runtime
5376
runs-on: ubuntu-22.04
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Windows WSL Smoke
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
wsl_distro:
7+
description: Optional WSL distro name to validate against
8+
required: false
9+
type: string
10+
11+
permissions:
12+
contents: read
13+
14+
concurrency:
15+
group: windows-wsl-smoke-${{ github.workflow }}-${{ github.ref }}
16+
cancel-in-progress: true
17+
18+
jobs:
19+
transport-windows-wsl-smoke:
20+
name: Transport Windows WSL Smoke
21+
runs-on:
22+
- self-hosted
23+
- windows
24+
- x64
25+
- wsl
26+
timeout-minutes: 45
27+
steps:
28+
- uses: actions/checkout@v4
29+
- uses: dtolnay/rust-toolchain@stable
30+
- name: Install Windows GNU target
31+
run: rustup target add x86_64-pc-windows-gnu
32+
- uses: Swatinem/rust-cache@v2
33+
with:
34+
workspaces: apps/server -> .build/server/target
35+
- uses: pnpm/action-setup@v4
36+
- uses: actions/setup-node@v4
37+
with:
38+
node-version: 22
39+
cache: pnpm
40+
- run: pnpm install --no-frozen-lockfile
41+
- run: npx playwright install chromium
42+
- name: Run full WSL transport smoke
43+
env:
44+
WSL_DISTRO: ${{ inputs.wsl_distro }}
45+
shell: pwsh
46+
run: |
47+
$pnpmArgs = @('test:smoke:windows:transport')
48+
if ($env:WSL_DISTRO) {
49+
$pnpmArgs += '--'
50+
$pnpmArgs += '--wsl-distro'
51+
$pnpmArgs += $env:WSL_DISTRO
52+
}
53+
& pnpm @pnpmArgs

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,4 @@ output
3939
.tmp
4040
.playwright-cli
4141
.artifacts/
42+
.worktrees/

README.en.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,52 @@ Its core job is to reduce context switching across the full workflow:
3131
- Bilingual UI: Chinese / English
3232
- Public mode auth with one passphrase, session cookie, IP blocking, and a single `root.path` access root
3333

34+
## Preview
35+
36+
The screenshots below use a purpose-built demo workspace with mock data so the core flow is easier to read at a glance.
37+
38+
### Workspace Overview
39+
40+
![Coder Studio workspace overview](docs/assets/readme/workspace-overview.png)
41+
42+
- Parallel agent panes stay visible while you inspect code and shell output
43+
- The right-hand code panel gives you file search plus Monaco-based preview and editing
44+
- The bottom terminal keeps Git and one-off commands in the same workspace
45+
46+
### Parallel Agent Work
47+
48+
![Coder Studio parallel agent panes](docs/assets/readme/multi-agent.png)
49+
50+
- Split one workspace into multiple focused agent lanes
51+
- Keep separate streams for implementation, verification, and follow-up tasks
52+
- Reduce context switching when several subtasks need to move together
53+
54+
### Code And Review
55+
56+
![Coder Studio code and source control review](docs/assets/readme/git-review.png)
57+
58+
- Review code while the Source Control panel stays open on the same screen
59+
- Draft commit messages without leaving the workbench
60+
- Move quickly between agent output, file inspection, and Git review
61+
62+
## 3-Minute Quick Start
63+
64+
If you want the fastest path to a working local setup, do this:
65+
66+
1. Prepare the runtime: install `Node.js`, `pnpm`, `Rust`, and `Git`. If you want to start real agents, also make sure `claude` is executable.
67+
2. Install dependencies: run `pnpm install` at the repo root.
68+
3. Start the app: run `pnpm dev:stack`, then open `http://127.0.0.1:5174`.
69+
4. First entry flow: if public mode is enabled, enter the passphrase first. After auth and before workspace selection, the app now runs an environment check for `Claude Code` and `Git`.
70+
5. Pick a workspace: choose `Local Folder` or `Remote Git`, then choose `Native` or `WSL`.
71+
6. Start working: enter the first task in the agent pane, press Enter, then open the code, Git, and terminal panels as needed.
72+
73+
If you are using the published npm CLI, you can also start it like this:
74+
75+
```bash
76+
coder-studio start
77+
coder-studio open
78+
```
79+
3480
## Prerequisites
3581

3682
Before running locally, prepare:

README.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,52 @@ Coder Studio 是一个本地优先的开发工作台,当前以本地 server +
3434
- 国际化:中文 / English
3535
- Public Mode:单口令鉴权、会话 Cookie、IP 封禁、`root.path` 单根目录白名单
3636

37+
## 界面预览
38+
39+
以下截图使用的是一个专门准备的 demo 工作区和 mock 数据,目的是把真实工作流里的关键界面展示清楚。
40+
41+
### 工作台总览
42+
43+
![Coder Studio 工作台总览](docs/assets/readme/workspace-overview.png)
44+
45+
- 左侧是并行 Agent Pane,可同时跑多个任务
46+
- 右侧是代码面板,支持文件搜索、Monaco 编辑与预览
47+
- 底部是内置终端,可以直接检查 `git status`、跑脚本、看命令输出
48+
49+
### 多 Agent 并行
50+
51+
![Coder Studio 多 Agent 并行](docs/assets/readme/multi-agent.png)
52+
53+
- 一个工作区内可以把任务拆成多个 Pane 并行推进
54+
- 每个 Pane 都保留独立的命令流和上下文
55+
- 很适合把“主任务 / 验证 / 文档整理”拆开跑
56+
57+
### 代码与变更审阅
58+
59+
![Coder Studio 代码与变更审阅](docs/assets/readme/git-review.png)
60+
61+
- 右侧 Source Control 面板可直接查看改动、填写提交信息
62+
- 代码区支持边看文件边做 Diff / Git 审阅
63+
- 适合在 Agent 输出、代码检查、提交动作之间快速切换
64+
65+
## 3 分钟入门
66+
67+
如果你想最快跑起来,按下面做:
68+
69+
1. 准备环境:安装 `Node.js``pnpm``Rust``Git`,如果你要真正启动 Agent,再准备一个可执行的 `claude` 命令。
70+
2. 安装依赖:在仓库根目录执行 `pnpm install`
71+
3. 启动应用:执行 `pnpm dev:stack`,然后打开 `http://127.0.0.1:5174`
72+
4. 首次进入:如果启用了公网模式,先输入访问口令;进入后,在工作区选择之前,应用会先做运行环境校验,检查 `Claude Code``Git` 是否可用。
73+
5. 选择工作区:在浮层里选择 `Local Folder``Remote Git`,再选择 `Native``WSL`
74+
6. 开始工作:进入工作区后,在 Agent Pane 输入第一条任务并回车;然后根据需要打开代码面板、Git 面板和终端面板。
75+
76+
如果你使用已经发布的 npm CLI,也可以这样启动:
77+
78+
```bash
79+
coder-studio start
80+
coder-studio open
81+
```
82+
3783
## 安装前提
3884

3985
在本地运行前,请先准备:

0 commit comments

Comments
 (0)