* Remove agent-browser skill and lockfile The computerUse subagent now provides a full desktop with Chrome, making the bespoke agent-browser skill obsolete. * Remove agent-browser install and docs from cloud env Drop the agent-browser CLI/headless-Chrome install, skip flag, and docs from the Cursor Cloud Agent Dockerfile, install hook, and notes. Keep the AWS CLI and the Playwright e2e runtime libraries. --------- Co-authored-by: Hanzo Dev <[email protected]>
4.1 KiB
Cursor Cloud Agent Instructions
These instructions apply to Cursor Cloud Agents after .cursor/scripts/cloud-agent-start.sh materializes this file as .cursor/AGENTS.md.
Environment
- Docker must be available. If
docker infofails, inspect/tmp/docker-service-start.logand/tmp/dockerd.log; do not assume a snapshot will provide Docker. - The image includes Go, Node/npm, Docker Compose, and AWS CLI v2.
- Cursor should provide
mattermost/enterprisethrough the multi-repo environment. The expected layout is sibling repositories, such as/agent/repos/mattermostand/agent/repos/enterprise; this matchesserver/Makefile's default../../enterprisepath.
Running Mattermost
-
Start dependencies:
cd server make start-docker -
Start the server:
cd server make run-server -
Start the web app in another terminal when UI work needs live verification:
cd webapp make run
The Mattermost server is expected at http://localhost:8065. The webapp dev server commonly uses http://localhost:9005.
Known-good Cloud flow
-
In this multi-repo Cloud environment,
mattermostandenterpriseare expected to start frommaster, so sibling checkout skew should not need extra handling. -
server/Makefile'sruntarget only reachesrun-clientif the server is backgrounded. In Cloud, the reliable combined startup is:cd server ENABLED_DOCKER_SERVICES='postgres redis' RUN_SERVER_IN_BACKGROUND=true make run -
If you want split terminals instead, use:
cd server ENABLED_DOCKER_SERVICES='postgres redis' make run-serverand then:
cd webapp make run -
When the server starts and
MM_LICENSEis present in the environment, the server applies that license automatically. IfMM_LICENSEis not set, starting the server automatically applies an Entry license, which provides nearly all functionality needed for development. -
When
DOCKERHUB_USERNAMEandDOCKERHUB_TOKENare configured as Cloud Agent secrets,cloud-agent-start.shlogs in to Docker Hub and the full defaultmake start-dockerdependency set can be used without trimming services. -
ENABLED_DOCKER_SERVICES='postgres redis'avoids optional local-dev services such as Prometheus, Grafana, Loki, Minio, Azurite, and OpenLDAP. Use this fallback when Docker Hub credentials are unavailable and anonymous pulls hit rate limits. -
If the first-user signup UI is flaky but the server is already healthy, seed local state with
mmctland then log in through the browser:cd server ./bin/mmctl --local user create --email [email protected] --username cursoradmin --password Password123! --system-admin --email-verified --disable-welcome-email ./bin/mmctl --local team create --name cursorteam --display-name "Cursor Team" --email [email protected] -
A healthy server responds at:
curl http://127.0.0.1:8065/api/v4/system/ping
Tests And Setup
- Backend workspace setup is handled by
cd server && make setup-go-work; never rungo mod tidydirectly. - Webapp dependencies are installed with
cd webapp && make node_modules. - Playwright dependencies are installed with
cd e2e-tests/playwright && npm ci. - For full Playwright compose flows, use the existing
e2e-testsMakefile and scripts. Docker Compose is available in the Cloud Agent image.
Browser Verification
Use the computerUse subagent's desktop (Chrome is preinstalled) for browser automation and screenshots. Prefer verifying UI changes against the running local Mattermost instance before opening or updating a PR.
AWS And PR Artifacts
AWS CLI v2 is installed for uploading screenshots or reports. Cloud Agents should receive AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_S3_BUCKET_NAME as environment variables.
Before uploading, verify credentials with:
aws sts get-caller-identity
- If the configured S3 bucket is public, upload with
aws s3 cpand share the plain object URLhttps://$AWS_S3_BUCKET_NAME.s3.amazonaws.com/<key>instead of generating a presigned URL. Do not hardcode AWS credentials or bucket secrets in the repository.