From 4252c705dfc093213cc8d232f7183e055c25d9a4 Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Mon, 16 Mar 2026 17:56:50 -0700 Subject: [PATCH] chore: remove .context/ from git and add to .gitignore Co-Authored-By: Claude Opus 4.6 (1M context) --- .../CleanShot 2026-03-08 at 18.53.28@2x.png | Bin 112229 -> 0 bytes .context/attachments/PR instructions.md | 19 -- .context/attachments/Review request-v1.md | 101 -------- .context/attachments/Review request-v2.md | 101 -------- .context/attachments/Review request-v3.md | 101 -------- .context/attachments/Review request.md | 101 -------- .context/attachments/plan.md | 215 ------------------ .context/docker-test-image.stamp | 0 .context/docker-test-zgvGyf/bin/Xvfb | 15 -- .context/docker-test-zgvGyf/bin/dbus-launch | 4 - .context/docker-test-zgvGyf/bin/import | 3 - .context/docker-test-zgvGyf/bin/openbox | 6 - .context/docker-test-zgvGyf/bin/xdotool | 57 ----- .context/docker-test-zgvGyf/bin/xrandr | 5 - .../bin/agent_processes/mock-acp | 111 --------- .../bin/agent_processes/mock-acp | 111 --------- .../xdg-data/sandbox-agent/logs/log-03-08-26 | 4 - .../xdg-data/sandbox-agent/telemetry_id | 1 - .context/notes.md | 0 .../desktop-computer-use-api-enhancements.md | 215 ------------------ .context/proposal-revert-actions-to-queues.md | 202 ---------------- .../proposal-rivetkit-sandbox-resilience.md | 94 -------- .context/proposal-task-owner-git-auth.md | 200 ---------------- .context/todos.md | 0 .gitignore | 1 + 25 files changed, 1 insertion(+), 1666 deletions(-) delete mode 100644 .context/attachments/CleanShot 2026-03-08 at 18.53.28@2x.png delete mode 100644 .context/attachments/PR instructions.md delete mode 100644 .context/attachments/Review request-v1.md delete mode 100644 .context/attachments/Review request-v2.md delete mode 100644 .context/attachments/Review request-v3.md delete mode 100644 .context/attachments/Review request.md delete mode 100644 .context/attachments/plan.md delete mode 100644 .context/docker-test-image.stamp delete mode 100755 .context/docker-test-zgvGyf/bin/Xvfb delete mode 100755 .context/docker-test-zgvGyf/bin/dbus-launch delete mode 100755 .context/docker-test-zgvGyf/bin/import delete mode 100755 .context/docker-test-zgvGyf/bin/openbox delete mode 100755 .context/docker-test-zgvGyf/bin/xdotool delete mode 100755 .context/docker-test-zgvGyf/bin/xrandr delete mode 100755 .context/docker-test-zgvGyf/xdg-data/Library/Application Support/sandbox-agent/bin/agent_processes/mock-acp delete mode 100755 .context/docker-test-zgvGyf/xdg-data/sandbox-agent/bin/agent_processes/mock-acp delete mode 100644 .context/docker-test-zgvGyf/xdg-data/sandbox-agent/logs/log-03-08-26 delete mode 100644 .context/docker-test-zgvGyf/xdg-data/sandbox-agent/telemetry_id delete mode 100644 .context/notes.md delete mode 100644 .context/plans/desktop-computer-use-api-enhancements.md delete mode 100644 .context/proposal-revert-actions-to-queues.md delete mode 100644 .context/proposal-rivetkit-sandbox-resilience.md delete mode 100644 .context/proposal-task-owner-git-auth.md delete mode 100644 .context/todos.md diff --git a/.context/attachments/CleanShot 2026-03-08 at 18.53.28@2x.png b/.context/attachments/CleanShot 2026-03-08 at 18.53.28@2x.png deleted file mode 100644 index 955a813aedbc9474109f9d654f2184ce9a58a8cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112229 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 - ### **#1 Empty input causes crash** - - If the input field is empty when page loads, the app will crash. - - File: src/ui/Input.tsx - - ### **#2 Dead code** - - The getUserData function is now unused. It should be deleted. - - File: src/core/UserData.ts - - -Use this list when evaluating issues in Steps 5 and 6 (these are false positives, do NOT flag): - -- Pre-existing issues -- Something that appears to be a bug but is actually correct -- Pedantic nitpicks that a senior engineer would not flag -- Issues that a linter will catch (do not run the linter to verify) -- General code quality concerns (e.g., lack of test coverage, general security issues) unless explicitly required in CLAUDE.md or AGENTS.md -- Issues mentioned in CLAUDE.md or AGENTS.md but explicitly silenced in the code (e.g., via a lint ignore comment) - -Notes: - -- All subagents should be explicitly instructed not to post comments themselves. Only you, the main agent, should post comments. -- Do not use the AskUserQuestion tool. Your goal should be to complete the entire review without user intervention. -- Use gh CLI to interact with GitHub (e.g., fetch pull requests, create comments). Do not use web fetch. -- You must cite and link each issue in inline comments (e.g., if referring to a CLAUDE.md or AGENTS.md rule, include a link to it). - -## Fallback: if you don't have access to subagents - -If you don't have subagents, perform all the steps above yourself sequentially instead of launching agents. Do each review axis (CLAUDE.md compliance, bug scan, introduced problems) yourself, and validate each issue yourself. - -## Fallback: if you don't have access to the workspace diff tool - -If you don't have access to the mcp__conductor__GetWorkspaceDiff tool, use the following git commands to get the diff: - -```bash -# Get the merge base between this branch and the target -MERGE_BASE=$(git merge-base origin/main HEAD) - -# Get the committed diff against the merge base -git diff $MERGE_BASE HEAD - -# Get any uncommitted changes (staged and unstaged) -git diff HEAD -``` - -Review the combination of both outputs: the first shows all committed changes on this branch relative to the target, and the second shows any uncommitted work in progress. - -No need to mention in your report whether or not you used one of the fallback strategies; it's usually irrelevant. - diff --git a/.context/attachments/Review request-v2.md b/.context/attachments/Review request-v2.md deleted file mode 100644 index 0a800c7..0000000 --- a/.context/attachments/Review request-v2.md +++ /dev/null @@ -1,101 +0,0 @@ -## Code Review Instructions - -1. Launch a haiku agent to return a list of file paths (not their contents) for all relevant CLAUDE.md files including: - - - The root CLAUDE.md file, if it exists - - Any CLAUDE.md files in directories containing files modified by the workspace diff (use mcp__conductor__GetWorkspaceDiff with stat option) - -2. If this workspace has an associated PR, read the title and description (but not the changes). This will be helpful context. - -3. In parallel with step 2, launch a sonnet agent to view the changes, using mcp__conductor__GetWorkspaceDiff, and return a summary of the changes - -4. Launch 4 agents in parallel to independently review the changes using mcp__conductor__GetWorkspaceDiff. Each agent should return the list of issues, where each issue includes a description and the reason it was flagged (e.g. "CLAUDE.md adherence", "bug"). The agents should do the following: - - Agents 1 + 2: CLAUDE.md or AGENTS.md compliance sonnet agents - Audit changes for CLAUDE.md or AGENTS.md compliance in parallel. Note: When evaluating CLAUDE.md or AGENTS.md compliance for a file, you should only consider CLAUDE.md or AGENTS.md files that share a file path with the file or parents. - - Agent 3: Opus bug agent - Scan for obvious bugs. Focus only on the diff itself without reading extra context. Flag only significant bugs; ignore nitpicks and likely false positives. Do not flag issues that you cannot validate without looking at context outside of the git diff. - - Agent 4: Opus bug agent - Look for problems that exist in the introduced code. This could be security issues, incorrect logic, etc. Only look for issues that fall within the changed code. - - **CRITICAL: We only want HIGH SIGNAL issues.** This means: - - - Objective bugs that will cause incorrect behavior at runtime - - Clear, unambiguous CLAUDE.md violations where you can quote the exact rule being broken - - We do NOT want: - - - Subjective concerns or "suggestions" - - Style preferences not explicitly required by CLAUDE.md - - Potential issues that "might" be problems - - Anything requiring interpretation or judgment calls - - If you are not certain an issue is real, do not flag it. False positives erode trust and waste reviewer time. - - In addition to the above, each subagent should be told the PR title and description. This will help provide context regarding the author's intent. - -5. For each issue found in the previous step, launch parallel subagents to validate the issue. These subagents should get the PR title and description along with a description of the issue. The agent's job is to review the issue to validate that the stated issue is truly an issue with high confidence. For example, if an issue such as "variable is not defined" was flagged, the subagent's job would be to validate that is actually true in the code. Another example would be CLAUDE.md issues. The agent should validate that the CLAUDE.md rule that was violated is scoped for this file and is actually violated. Use Opus subagents for bugs and logic issues, and sonnet agents for CLAUDE.md violations. - -6. Filter out any issues that were not validated in step 5. This step will give us our list of high signal issues for our review. - -7. Post inline comments for each issue using mcp__conductor__DiffComment: - - **IMPORTANT: Only post ONE comment per unique issue.** - -8. Write out a list of issues found, along with the location of the comment. For example: - - - ### **#1 Empty input causes crash** - - If the input field is empty when page loads, the app will crash. - - File: src/ui/Input.tsx - - ### **#2 Dead code** - - The getUserData function is now unused. It should be deleted. - - File: src/core/UserData.ts - - -Use this list when evaluating issues in Steps 5 and 6 (these are false positives, do NOT flag): - -- Pre-existing issues -- Something that appears to be a bug but is actually correct -- Pedantic nitpicks that a senior engineer would not flag -- Issues that a linter will catch (do not run the linter to verify) -- General code quality concerns (e.g., lack of test coverage, general security issues) unless explicitly required in CLAUDE.md or AGENTS.md -- Issues mentioned in CLAUDE.md or AGENTS.md but explicitly silenced in the code (e.g., via a lint ignore comment) - -Notes: - -- All subagents should be explicitly instructed not to post comments themselves. Only you, the main agent, should post comments. -- Do not use the AskUserQuestion tool. Your goal should be to complete the entire review without user intervention. -- Use gh CLI to interact with GitHub (e.g., fetch pull requests, create comments). Do not use web fetch. -- You must cite and link each issue in inline comments (e.g., if referring to a CLAUDE.md or AGENTS.md rule, include a link to it). - -## Fallback: if you don't have access to subagents - -If you don't have subagents, perform all the steps above yourself sequentially instead of launching agents. Do each review axis (CLAUDE.md compliance, bug scan, introduced problems) yourself, and validate each issue yourself. - -## Fallback: if you don't have access to the workspace diff tool - -If you don't have access to the mcp__conductor__GetWorkspaceDiff tool, use the following git commands to get the diff: - -```bash -# Get the merge base between this branch and the target -MERGE_BASE=$(git merge-base origin/main HEAD) - -# Get the committed diff against the merge base -git diff $MERGE_BASE HEAD - -# Get any uncommitted changes (staged and unstaged) -git diff HEAD -``` - -Review the combination of both outputs: the first shows all committed changes on this branch relative to the target, and the second shows any uncommitted work in progress. - -No need to mention in your report whether or not you used one of the fallback strategies; it's usually irrelevant. - diff --git a/.context/attachments/Review request-v3.md b/.context/attachments/Review request-v3.md deleted file mode 100644 index 0a800c7..0000000 --- a/.context/attachments/Review request-v3.md +++ /dev/null @@ -1,101 +0,0 @@ -## Code Review Instructions - -1. Launch a haiku agent to return a list of file paths (not their contents) for all relevant CLAUDE.md files including: - - - The root CLAUDE.md file, if it exists - - Any CLAUDE.md files in directories containing files modified by the workspace diff (use mcp__conductor__GetWorkspaceDiff with stat option) - -2. If this workspace has an associated PR, read the title and description (but not the changes). This will be helpful context. - -3. In parallel with step 2, launch a sonnet agent to view the changes, using mcp__conductor__GetWorkspaceDiff, and return a summary of the changes - -4. Launch 4 agents in parallel to independently review the changes using mcp__conductor__GetWorkspaceDiff. Each agent should return the list of issues, where each issue includes a description and the reason it was flagged (e.g. "CLAUDE.md adherence", "bug"). The agents should do the following: - - Agents 1 + 2: CLAUDE.md or AGENTS.md compliance sonnet agents - Audit changes for CLAUDE.md or AGENTS.md compliance in parallel. Note: When evaluating CLAUDE.md or AGENTS.md compliance for a file, you should only consider CLAUDE.md or AGENTS.md files that share a file path with the file or parents. - - Agent 3: Opus bug agent - Scan for obvious bugs. Focus only on the diff itself without reading extra context. Flag only significant bugs; ignore nitpicks and likely false positives. Do not flag issues that you cannot validate without looking at context outside of the git diff. - - Agent 4: Opus bug agent - Look for problems that exist in the introduced code. This could be security issues, incorrect logic, etc. Only look for issues that fall within the changed code. - - **CRITICAL: We only want HIGH SIGNAL issues.** This means: - - - Objective bugs that will cause incorrect behavior at runtime - - Clear, unambiguous CLAUDE.md violations where you can quote the exact rule being broken - - We do NOT want: - - - Subjective concerns or "suggestions" - - Style preferences not explicitly required by CLAUDE.md - - Potential issues that "might" be problems - - Anything requiring interpretation or judgment calls - - If you are not certain an issue is real, do not flag it. False positives erode trust and waste reviewer time. - - In addition to the above, each subagent should be told the PR title and description. This will help provide context regarding the author's intent. - -5. For each issue found in the previous step, launch parallel subagents to validate the issue. These subagents should get the PR title and description along with a description of the issue. The agent's job is to review the issue to validate that the stated issue is truly an issue with high confidence. For example, if an issue such as "variable is not defined" was flagged, the subagent's job would be to validate that is actually true in the code. Another example would be CLAUDE.md issues. The agent should validate that the CLAUDE.md rule that was violated is scoped for this file and is actually violated. Use Opus subagents for bugs and logic issues, and sonnet agents for CLAUDE.md violations. - -6. Filter out any issues that were not validated in step 5. This step will give us our list of high signal issues for our review. - -7. Post inline comments for each issue using mcp__conductor__DiffComment: - - **IMPORTANT: Only post ONE comment per unique issue.** - -8. Write out a list of issues found, along with the location of the comment. For example: - - - ### **#1 Empty input causes crash** - - If the input field is empty when page loads, the app will crash. - - File: src/ui/Input.tsx - - ### **#2 Dead code** - - The getUserData function is now unused. It should be deleted. - - File: src/core/UserData.ts - - -Use this list when evaluating issues in Steps 5 and 6 (these are false positives, do NOT flag): - -- Pre-existing issues -- Something that appears to be a bug but is actually correct -- Pedantic nitpicks that a senior engineer would not flag -- Issues that a linter will catch (do not run the linter to verify) -- General code quality concerns (e.g., lack of test coverage, general security issues) unless explicitly required in CLAUDE.md or AGENTS.md -- Issues mentioned in CLAUDE.md or AGENTS.md but explicitly silenced in the code (e.g., via a lint ignore comment) - -Notes: - -- All subagents should be explicitly instructed not to post comments themselves. Only you, the main agent, should post comments. -- Do not use the AskUserQuestion tool. Your goal should be to complete the entire review without user intervention. -- Use gh CLI to interact with GitHub (e.g., fetch pull requests, create comments). Do not use web fetch. -- You must cite and link each issue in inline comments (e.g., if referring to a CLAUDE.md or AGENTS.md rule, include a link to it). - -## Fallback: if you don't have access to subagents - -If you don't have subagents, perform all the steps above yourself sequentially instead of launching agents. Do each review axis (CLAUDE.md compliance, bug scan, introduced problems) yourself, and validate each issue yourself. - -## Fallback: if you don't have access to the workspace diff tool - -If you don't have access to the mcp__conductor__GetWorkspaceDiff tool, use the following git commands to get the diff: - -```bash -# Get the merge base between this branch and the target -MERGE_BASE=$(git merge-base origin/main HEAD) - -# Get the committed diff against the merge base -git diff $MERGE_BASE HEAD - -# Get any uncommitted changes (staged and unstaged) -git diff HEAD -``` - -Review the combination of both outputs: the first shows all committed changes on this branch relative to the target, and the second shows any uncommitted work in progress. - -No need to mention in your report whether or not you used one of the fallback strategies; it's usually irrelevant. - diff --git a/.context/attachments/Review request.md b/.context/attachments/Review request.md deleted file mode 100644 index 0a800c7..0000000 --- a/.context/attachments/Review request.md +++ /dev/null @@ -1,101 +0,0 @@ -## Code Review Instructions - -1. Launch a haiku agent to return a list of file paths (not their contents) for all relevant CLAUDE.md files including: - - - The root CLAUDE.md file, if it exists - - Any CLAUDE.md files in directories containing files modified by the workspace diff (use mcp__conductor__GetWorkspaceDiff with stat option) - -2. If this workspace has an associated PR, read the title and description (but not the changes). This will be helpful context. - -3. In parallel with step 2, launch a sonnet agent to view the changes, using mcp__conductor__GetWorkspaceDiff, and return a summary of the changes - -4. Launch 4 agents in parallel to independently review the changes using mcp__conductor__GetWorkspaceDiff. Each agent should return the list of issues, where each issue includes a description and the reason it was flagged (e.g. "CLAUDE.md adherence", "bug"). The agents should do the following: - - Agents 1 + 2: CLAUDE.md or AGENTS.md compliance sonnet agents - Audit changes for CLAUDE.md or AGENTS.md compliance in parallel. Note: When evaluating CLAUDE.md or AGENTS.md compliance for a file, you should only consider CLAUDE.md or AGENTS.md files that share a file path with the file or parents. - - Agent 3: Opus bug agent - Scan for obvious bugs. Focus only on the diff itself without reading extra context. Flag only significant bugs; ignore nitpicks and likely false positives. Do not flag issues that you cannot validate without looking at context outside of the git diff. - - Agent 4: Opus bug agent - Look for problems that exist in the introduced code. This could be security issues, incorrect logic, etc. Only look for issues that fall within the changed code. - - **CRITICAL: We only want HIGH SIGNAL issues.** This means: - - - Objective bugs that will cause incorrect behavior at runtime - - Clear, unambiguous CLAUDE.md violations where you can quote the exact rule being broken - - We do NOT want: - - - Subjective concerns or "suggestions" - - Style preferences not explicitly required by CLAUDE.md - - Potential issues that "might" be problems - - Anything requiring interpretation or judgment calls - - If you are not certain an issue is real, do not flag it. False positives erode trust and waste reviewer time. - - In addition to the above, each subagent should be told the PR title and description. This will help provide context regarding the author's intent. - -5. For each issue found in the previous step, launch parallel subagents to validate the issue. These subagents should get the PR title and description along with a description of the issue. The agent's job is to review the issue to validate that the stated issue is truly an issue with high confidence. For example, if an issue such as "variable is not defined" was flagged, the subagent's job would be to validate that is actually true in the code. Another example would be CLAUDE.md issues. The agent should validate that the CLAUDE.md rule that was violated is scoped for this file and is actually violated. Use Opus subagents for bugs and logic issues, and sonnet agents for CLAUDE.md violations. - -6. Filter out any issues that were not validated in step 5. This step will give us our list of high signal issues for our review. - -7. Post inline comments for each issue using mcp__conductor__DiffComment: - - **IMPORTANT: Only post ONE comment per unique issue.** - -8. Write out a list of issues found, along with the location of the comment. For example: - - - ### **#1 Empty input causes crash** - - If the input field is empty when page loads, the app will crash. - - File: src/ui/Input.tsx - - ### **#2 Dead code** - - The getUserData function is now unused. It should be deleted. - - File: src/core/UserData.ts - - -Use this list when evaluating issues in Steps 5 and 6 (these are false positives, do NOT flag): - -- Pre-existing issues -- Something that appears to be a bug but is actually correct -- Pedantic nitpicks that a senior engineer would not flag -- Issues that a linter will catch (do not run the linter to verify) -- General code quality concerns (e.g., lack of test coverage, general security issues) unless explicitly required in CLAUDE.md or AGENTS.md -- Issues mentioned in CLAUDE.md or AGENTS.md but explicitly silenced in the code (e.g., via a lint ignore comment) - -Notes: - -- All subagents should be explicitly instructed not to post comments themselves. Only you, the main agent, should post comments. -- Do not use the AskUserQuestion tool. Your goal should be to complete the entire review without user intervention. -- Use gh CLI to interact with GitHub (e.g., fetch pull requests, create comments). Do not use web fetch. -- You must cite and link each issue in inline comments (e.g., if referring to a CLAUDE.md or AGENTS.md rule, include a link to it). - -## Fallback: if you don't have access to subagents - -If you don't have subagents, perform all the steps above yourself sequentially instead of launching agents. Do each review axis (CLAUDE.md compliance, bug scan, introduced problems) yourself, and validate each issue yourself. - -## Fallback: if you don't have access to the workspace diff tool - -If you don't have access to the mcp__conductor__GetWorkspaceDiff tool, use the following git commands to get the diff: - -```bash -# Get the merge base between this branch and the target -MERGE_BASE=$(git merge-base origin/main HEAD) - -# Get the committed diff against the merge base -git diff $MERGE_BASE HEAD - -# Get any uncommitted changes (staged and unstaged) -git diff HEAD -``` - -Review the combination of both outputs: the first shows all committed changes on this branch relative to the target, and the second shows any uncommitted work in progress. - -No need to mention in your report whether or not you used one of the fallback strategies; it's usually irrelevant. - diff --git a/.context/attachments/plan.md b/.context/attachments/plan.md deleted file mode 100644 index 2749e27..0000000 --- a/.context/attachments/plan.md +++ /dev/null @@ -1,215 +0,0 @@ -# Desktop Computer Use API Enhancements - -## Context - -Competitive analysis of Daytona, Cloudflare Sandbox SDK, and CUA revealed significant gaps in our desktop computer use API. Both Daytona and Cloudflare have or are building screenshot compression, hotkey combos, mouseDown/mouseUp, keyDown/keyUp, per-component process health, and live desktop streaming. CUA additionally has window management and accessibility trees. We have none of these. This plan closes the most impactful gaps across 7 tasks. - -## Execution Order - -``` -Sprint 1 (parallel, no dependencies): Tasks 1, 2, 3, 4 -Sprint 2 (foundational refactor): Task 5 -Sprint 3 (parallel, depend on #5): Tasks 6, 7 -``` - ---- - -## Task 1: Unify keyboard press with object modifiers - -**What**: Change `DesktopKeyboardPressRequest` to accept a `modifiers` object instead of requiring DSL strings like `"ctrl+c"`. - -**Files**: -- `server/packages/sandbox-agent/src/desktop_types.rs` — Add `DesktopKeyModifiers { ctrl, shift, alt, cmd }` struct (all `Option`). Add `modifiers: Option` to `DesktopKeyboardPressRequest`. -- `server/packages/sandbox-agent/src/desktop_runtime.rs` — Modify `press_key_args()` (~line 1349) to build xdotool key string from modifiers object. If modifiers present, construct `"ctrl+shift+a"` style string. `cmd` maps to `super`. -- `server/packages/sandbox-agent/src/router.rs` — Add `DesktopKeyModifiers` to OpenAPI schemas list. -- `docs/openapi.json` — Regenerate. - -**Backward compatible**: Old `{"key": "ctrl+a"}` still works. New form: `{"key": "a", "modifiers": {"ctrl": true}}`. - -**Test**: Unit test that `press_key_args("a", Some({ctrl: true, shift: true}))` produces `["key", "--", "ctrl+shift+a"]`. Integration test with both old and new request shapes. - ---- - -## Task 2: Add mouseDown/mouseUp and keyDown/keyUp endpoints - -**What**: 4 new endpoints for low-level press/release control. - -**Endpoints**: -- `POST /v1/desktop/mouse/down` — `xdotool mousedown BUTTON` (optional x,y moves first) -- `POST /v1/desktop/mouse/up` — `xdotool mouseup BUTTON` -- `POST /v1/desktop/keyboard/down` — `xdotool keydown KEY` -- `POST /v1/desktop/keyboard/up` — `xdotool keyup KEY` - -**Files**: -- `server/packages/sandbox-agent/src/desktop_types.rs` — Add `DesktopMouseDownRequest`, `DesktopMouseUpRequest` (x/y optional, button optional), `DesktopKeyboardDownRequest`, `DesktopKeyboardUpRequest` (key: String). -- `server/packages/sandbox-agent/src/desktop_runtime.rs` — Add 4 public methods following existing `click_mouse()` / `press_key()` patterns. -- `server/packages/sandbox-agent/src/router.rs` — Add 4 routes, 4 handlers with utoipa annotations. -- `sdks/typescript/src/client.ts` — Add `mouseDownDesktop()`, `mouseUpDesktop()`, `keyDownDesktop()`, `keyUpDesktop()`. -- `docs/openapi.json` — Regenerate. - -**Test**: Integration test: mouseDown → mousemove → mouseUp sequence. keyDown → keyUp sequence. - ---- - -## Task 3: Screenshot compression - -**What**: Add format, quality, and scale query params to screenshot endpoints. - -**Params**: `format` (png|jpeg|webp, default png), `quality` (1-100, default 85), `scale` (0.1-1.0, default 1.0). - -**Files**: -- `server/packages/sandbox-agent/src/desktop_types.rs` — Add `DesktopScreenshotFormat` enum. Add `format`, `quality`, `scale` fields to `DesktopScreenshotQuery` and `DesktopRegionScreenshotQuery`. -- `server/packages/sandbox-agent/src/desktop_runtime.rs` — After capturing PNG via `import`, pipe through ImageMagick `convert` if format != png or scale != 1.0: `convert png:- -resize {scale*100}% -quality {quality} {format}:-`. Add a `run_command_with_stdin()` helper (or modify existing `run_command_output`) to pipe bytes into a command's stdin. -- `server/packages/sandbox-agent/src/router.rs` — Modify screenshot handlers to pass format/quality/scale, return dynamic `Content-Type` header. -- `sdks/typescript/src/client.ts` — Update `takeDesktopScreenshot()` to accept format/quality/scale. -- `docs/openapi.json` — Regenerate. - -**Dependencies**: ImageMagick `convert` already installed in Docker. Verify WebP delegate availability. - -**Test**: Integration tests: request `?format=jpeg&quality=50`, verify `Content-Type: image/jpeg` and JPEG magic bytes. Verify default still returns PNG. Verify `?scale=0.5` returns a smaller image. - ---- - -## Task 4: Window listing API - -**What**: New endpoint to list open windows. - -**Endpoint**: `GET /v1/desktop/windows` - -**Files**: -- `server/packages/sandbox-agent/src/desktop_types.rs` — Add `DesktopWindowInfo { id, title, x, y, width, height, is_active }` and `DesktopWindowListResponse`. -- `server/packages/sandbox-agent/src/desktop_runtime.rs` — Add `list_windows()` method using xdotool (already installed): - 1. `xdotool search --onlyvisible --name ""` → window IDs - 2. `xdotool getwindowname {id}` + `xdotool getwindowgeometry {id}` per window - 3. `xdotool getactivewindow` → is_active flag - 4. Add `parse_window_geometry()` helper. -- `server/packages/sandbox-agent/src/router.rs` — Add route, handler, OpenAPI annotations. -- `sdks/typescript/src/client.ts` — Add `listDesktopWindows()`. -- `docs/openapi.json` — Regenerate. - -**No new Docker dependencies** — xdotool already installed. - -**Test**: Integration test: start desktop, verify `GET /v1/desktop/windows` returns 200 with a list (may be empty if no GUI apps open, which is fine). - ---- - -## Task 5: Unify desktop processes into process runtime with owner flag - -**What**: Desktop processes (Xvfb, openbox, dbus) get registered in the general process runtime with an `owner` field, gaining log streaming, SSE, and unified lifecycle for free. - -**Files**: - -- `server/packages/sandbox-agent/src/process_runtime.rs`: - - Add `ProcessOwner` enum: `User`, `Desktop`, `System`. - - Add `RestartPolicy` enum: `Never`, `Always`, `OnFailure`. - - Add `owner: ProcessOwner` and `restart_policy: Option` to `ProcessStartSpec`, `ManagedProcess`, and `ProcessSnapshot`. - - Modify `list_processes()` to accept optional owner filter. - - Add auto-restart logic in `watch_exit()`: if restart_policy is Always (or OnFailure and exit code != 0), re-spawn the process using stored spec. Need to store the original `ProcessStartSpec` on `ManagedProcess`. - -- `server/packages/sandbox-agent/src/router/types.rs`: - - Add `owner` to `ProcessInfo` response. - - Add `ProcessListQuery { owner: Option }`. - -- `server/packages/sandbox-agent/src/router.rs`: - - Modify `get_v1_processes` to accept `Query` and filter. - - Pass `ProcessRuntime` into `DesktopRuntime::new()`. - - Add `ProcessOwner`, `RestartPolicy` to OpenAPI schemas. - -- `server/packages/sandbox-agent/src/desktop_runtime.rs` — **Major refactor**: - - Remove `ManagedDesktopChild` struct. - - `DesktopRuntime` takes `ProcessRuntime` as constructor param. - - `start_xvfb_locked()` and `start_openbox_locked()` call `process_runtime.start_process(ProcessStartSpec { owner: Desktop, restart_policy: Some(Always), ... })` instead of spawning directly. - - Store returned process IDs in state instead of `Child` handles. - - `stop` calls `process_runtime.stop_process()` / `kill_process()`. - - `processes_locked()` queries process runtime for desktop-owned processes. - - dbus-launch remains a direct one-shot spawn (it's not a long-running process, just produces env vars). - -- `sdks/typescript/src/client.ts` — Add `owner` filter option to `listProcesses()`. -- `docs/openapi.json` — Regenerate. - -**Risks**: -- Lock ordering: desktop runtime holds Mutex, process runtime uses RwLock. Release desktop Mutex before calling process runtime, or restructure. -- `log_path` field in `DesktopProcessInfo` no longer applies (logs are in-memory now). Remove or deprecate. - -**Test**: Integration: start desktop, `GET /v1/processes?owner=desktop` returns Xvfb+openbox. `GET /v1/processes?owner=user` excludes them. Desktop process logs are streamable via `GET /v1/processes/{id}/logs?follow=true`. Existing desktop lifecycle tests still pass. - ---- - -## Task 6: Screen recording API (ffmpeg x11grab) - -**What**: 6 endpoints for recording the desktop to MP4. - -**Endpoints**: -- `POST /v1/desktop/recording/start` — Start ffmpeg recording -- `POST /v1/desktop/recording/stop` — Stop recording (SIGTERM → wait → SIGKILL) -- `GET /v1/desktop/recordings` — List recordings -- `GET /v1/desktop/recordings/{id}` — Get recording metadata -- `GET /v1/desktop/recordings/{id}/download` — Serve MP4 file -- `DELETE /v1/desktop/recordings/{id}` — Delete recording - -**Files**: -- **New**: `server/packages/sandbox-agent/src/desktop_recording.rs` — Recording state, ffmpeg process management. `start_recording()` spawns ffmpeg via process runtime (owner=Desktop): `ffmpeg -f x11grab -video_size WxH -i :99 -c:v libx264 -preset ultrafast -r 30 {path}`. Recordings stored in `{state_dir}/recordings/`. -- `server/packages/sandbox-agent/src/desktop_types.rs` — Add recording request/response types. -- `server/packages/sandbox-agent/src/desktop_runtime.rs` — Wire recording manager, expose through desktop runtime. -- `server/packages/sandbox-agent/src/router.rs` — Add 6 routes + handlers. -- `server/packages/sandbox-agent/src/desktop_install.rs` — Add `ffmpeg` to dependency detection (soft: only error when recording is requested). -- `docker/runtime/Dockerfile` and `docker/test-agent/Dockerfile` — Add `ffmpeg` to apt-get. -- `sdks/typescript/src/client.ts` — Add 6 recording methods. -- `docs/openapi.json` — Regenerate. - -**Depends on**: Task 5 (ffmpeg runs as desktop-owned process). - -**Test**: Integration: start desktop → start recording → wait 2s → stop → list → download (verify MP4 magic bytes) → delete. - ---- - -## Task 7: Neko WebRTC desktop streaming + React component - -**What**: Integrate neko for WebRTC desktop streaming, mirroring the ProcessTerminal + Ghostty pattern. - -### Server side - -- **New**: `server/packages/sandbox-agent/src/desktop_streaming.rs` — Manages neko process via process runtime (owner=Desktop). Neko connects to existing Xvfb display, runs GStreamer pipeline for H.264 encoding. -- `server/packages/sandbox-agent/src/router.rs`: - - `GET /v1/desktop/stream/ws` — WebSocket proxy to neko's internal WebSocket. Upgrade request, bridge bidirectionally. - - `POST /v1/desktop/stream/start` / `POST /v1/desktop/stream/stop` — Lifecycle control. -- `docker/runtime/Dockerfile` and `docker/test-agent/Dockerfile` — Add neko binary + GStreamer packages (`gstreamer1.0-plugins-base`, `gstreamer1.0-plugins-good`, `gstreamer1.0-x`, `libgstreamer1.0-0`). Consider making this an optional Docker stage to avoid bloating the base image. - -### TypeScript SDK - -- **New**: `sdks/typescript/src/desktop-stream.ts` — `DesktopStreamSession` class ported from neko's `base.ts` (~500 lines): - - WebSocket for signaling (SDP offer/answer, ICE candidates) - - `RTCPeerConnection` for video stream - - `RTCDataChannel` for binary input (mouse: 7 bytes, keyboard: 11 bytes) - - Events: `onTrack(stream)`, `onConnect()`, `onDisconnect()`, `onError()` -- `sdks/typescript/src/client.ts` — Add `connectDesktopStream()` returning `DesktopStreamSession`, `buildDesktopStreamWebSocketUrl()`, `startDesktopStream()`, `stopDesktopStream()`. -- `sdks/typescript/src/index.ts` — Export `DesktopStreamSession`. - -### React SDK - -- **New**: `sdks/react/src/DesktopViewer.tsx` — Following `ProcessTerminal.tsx` pattern: - ``` - Props: client (Pick), height, className, style, onConnect, onDisconnect, onError - ``` - - `useEffect` → `client.connectDesktopStream()` → wire `onTrack` to `