Skip to content

Add Cloud Agent development environment - #12

Open
Satori-Bot wants to merge 3 commits into
mainfrom
cursor/setup-cloud-agent-env-bc49
Open

Add Cloud Agent development environment#12
Satori-Bot wants to merge 3 commits into
mainfrom
cursor/setup-cloud-agent-env-bc49

Conversation

@Satori-Bot

@Satori-Bot Satori-Bot commented Aug 12, 2026

Copy link
Copy Markdown

Summary

Adds a Cursor Cloud Agent development environment for coding-tools-mcp so future agents boot with the full dev loop ready (python -m pip install -e ".[dev]" + make ci). This is a repo-managed environment (config lives in .cursor/), self-sufficient on the default Cursor base image — no snapshot or custom Dockerfile required.

What's included

  • .cursor/environment.json — names the environment, runs ./.cursor/install.sh on setup, and exposes the MCP server port 8765.
  • .cursor/install.sh — idempotent bootstrap that:
    1. Installs python-is-python3 (the compliance fixtures shell out to a bare python, which Ubuntu 24.04 does not provide by default).
    2. Grants the runtime's Landlock exec sandbox access to toolchain paths outside the default system prefixes, via CODING_TOOLS_MCP_EXEC_ALLOW_ROOTS (exported in ~/.bashrc next to the image's nvm init so it reaches the exec daemon that spawns the MCP server during tests). On the default image node/npm live under nvm (~/.nvm) and the agent exec daemon (/exec-daemon), and Debian symlinks /usr/lib/python3.X/sitecustomize.py into /etc/python3.X; without this grant the golden/e2e/dogfood suites that run npm test / node --test fail with LANDLOCK_READ_ROOT_BLOCKED. This uses the mechanism the runtime itself suggests for non-standard toolchain paths. The value is a stable, non-appending assignment and the managed block is replace-idempotent.
    3. Installs the package with the dev extra in editable mode.

Validation

Verified on the current VM and on fresh Cloud Agents booted from draft builds (including a clean default-base build with no snapshot, exercising the committed config exactly as future agents receive it):

  • make lint, make typecheck, and the full make ci gate suite pass (lint, typecheck, unittest discovery, dispatch/npm-launcher gates, protocol, integration, docs, schema drift, dogfood smoke, latency + SWE-bench benchmark smokes).
  • On a fresh agent from the clean default-base build: CODING_TOOLS_MCP_EXEC_ALLOW_ROOTS resolves to /exec-daemon:/home/ubuntu/.nvm:/etc/python3.12 (no manual export), make lint/make typecheck pass, and the Landlock suites test_tool_golden (9 tests) and test_e2e (6 tests) end OK.
  • Ran the MCP HTTP server end-to-end and drove a real coding loop over MCP: initializeserver_infoapply_patchexec_command: npm test (2 passed) → git_status/git_diff.
  • install.sh is idempotent (repeated runs; no duplicate ~/.bashrc entry; stable env-var value across nested shells).

Note: the full make test run has one pre-existing flaky test, test_completed_sessions_are_evicted_from_active_storage (a session-cap race that intermittently fails even in isolation). It is unrelated to this environment configuration and is left untouched.

No application code is modified; changes are limited to environment configuration under .cursor/.

Open in Web Open in Cursor 

cursoragent and others added 3 commits August 12, 2026 06:24
Co-authored-by: Satori-Bot <Satori-Bot@users.noreply.github.com>
…lock replace-idempotent

Co-authored-by: Satori-Bot <Satori-Bot@users.noreply.github.com>
Co-authored-by: Satori-Bot <Satori-Bot@users.noreply.github.com>
@Satori-Bot
Satori-Bot marked this pull request as ready for review August 12, 2026 07:14
@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

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.

2 participants