feat: add multi-session desktop workspace

This commit is contained in:
2026-08-13 21:34:04 +02:00
parent 12b9b83d51
commit 475f95ba70
56 changed files with 8998 additions and 3805 deletions
+92
View File
@@ -108,6 +108,98 @@ test("accepts bridge-managed directory and session operations", () => {
);
});
test("accepts additive multi-session runtime operations and numeric workspace cursors", () => {
const worktreePath = "/home/alex/project";
const sessionPath = "/home/alex/project/sessions/one.jsonl";
for (const value of [
{ op: "get_workspace" },
{ op: "get_workspace_summary" },
{ op: "create_session_runtime", payload: { worktreePath } },
{ op: "open_session_runtime", payload: { worktreePath, sessionPath } },
{ op: "close_session_runtime", payload: { runtimeId: "runtime-1" } },
{ op: "list_directory_sessions", payload: { worktreePath } },
{
op: "get_session_runtime_snapshot",
payload: { runtimeId: "runtime-1" },
},
{ op: "subscribe_workspace", payload: { cursor: 42 } },
])
assert.equal(parseRequestFrame(request(value)).op, value.op);
assert.throws(
() =>
parseRequestFrame(
request({
op: "subscribe_workspace",
payload: { cursor: "opaque" },
}),
),
/cursor must be a non-negative integer/,
);
});
test("accepts native session naming and manual compaction requests", () => {
assert.deepEqual(
parseRequestFrame(
request({
op: "set_session_name",
agentId: "agent-main",
payload: { name: "Release UI" },
}),
),
{
version: "v1",
id: "request-1",
op: "set_session_name",
agentId: "agent-main",
payload: { name: "Release UI" },
},
);
assert.deepEqual(
parseRequestFrame(request({ op: "compact", agentId: "agent-main" })),
{
version: "v1",
id: "request-1",
op: "compact",
agentId: "agent-main",
},
);
assert.deepEqual(
parseRequestFrame(
request({
op: "compact",
agentId: "agent-main",
payload: { customInstructions: "Preserve implementation details" },
}),
),
{
version: "v1",
id: "request-1",
op: "compact",
agentId: "agent-main",
payload: { customInstructions: "Preserve implementation details" },
},
);
for (const invalidRequest of [
request({
op: "set_session_name",
agentId: "agent-main",
payload: { name: " " },
}),
request({
op: "set_session_name",
agentId: "agent-main",
payload: { name: "Valid", extra: true },
}),
request({
op: "compact",
agentId: "agent-main",
payload: { customInstructions: " " },
}),
request({ op: "compact", agentId: "agent-main", payload: { extra: true } }),
])
assert.throws(() => parseRequestFrame(invalidRequest), ProtocolError);
});
test("accepts an agent session-statistics request", () => {
assert.deepEqual(
parseRequestFrame(