.cursor/cursor.md
These instructions apply to Cursor Cloud Agents after .cursor/scripts/cloud-agent-start.sh materializes this file as .cursor/AGENTS.md.
docker info fails, inspect /tmp/docker-service-start.log and /tmp/dockerd.log; do not assume a snapshot will provide Docker.agent-browser.mattermost/enterprise through the multi-repo environment. The expected layout is sibling repositories, such as /agent/repos/mattermost and /agent/repos/enterprise; this matches server/Makefile's default ../../enterprise path.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.
In this multi-repo Cloud environment, mattermost and enterprise are expected to start from master, so sibling checkout skew should not need extra handling.
server/Makefile's run target only reaches run-client if 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-server
and then:
cd webapp
make run
When the server starts and MM_LICENSE is present in the environment, the server applies that license automatically. If MM_LICENSE is not set, starting the server automatically applies an Entry license, which provides nearly all functionality needed for development.
ENABLED_DOCKER_SERVICES='postgres redis' avoids optional local-dev services such as Prometheus, Grafana, Loki, Minio, Azurite, and OpenLDAP. This is useful in Cloud when Docker Hub rate limits block the default make start-docker dependency set.
If the first-user signup UI is flaky but the server is already healthy, seed local state with mmctl and 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
cd server && make setup-go-work; never run go mod tidy directly.cd webapp && make node_modules.cd e2e-tests/playwright && npm ci.e2e-tests Makefile and scripts. Docker Compose is available in the Cloud Agent image.Use agent-browser for browser automation and screenshots. If the CLI is missing or browsers are unavailable, run:
npm install -g [email protected]
agent-browser install
agent-browser skills get core --full is a quick check that the CLI and bundled skills are working.
Prefer verifying UI changes against the running local Mattermost instance before opening or updating a PR.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
aws s3 cp and share the plain object URL https://$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.