From 07434809f1f0252fc2072b287a6206c659926df2 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 3 Aug 2026 19:53:28 +0000 Subject: [PATCH] docs: add Cursor Cloud environment setup notes to AGENTS.md Co-authored-by: MG --- AGENTS.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 5b9e717..c90f12c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -35,3 +35,12 @@ Before changing product behavior, read: ## Definition of done A story is done when its acceptance criteria are mapped, tests pass, privacy impact is documented, and all user-visible outputs remain observational and non-diagnostic. + +## Cursor Cloud specific instructions + +The cloud VM is Linux (x86_64). Two of the three components run here; the SwiftUI app does not. + +- Backend (`backend/`, FastAPI): fully runnable/testable. Uses `uv` + a uv-managed Python 3.13. Standard commands live in the `Makefile` (`make backend-run`, `make backend-test`) and `README.md`. `make backend-run` serves on port 8000: health at `/health`, Swagger UI at `/docs`, main endpoint `POST /v1/educator-insights`. It runs fully offline: OpenAI is disabled by default and returns a deterministic local summary. To exercise the remote provider, copy `.env.example` to `.env` and set `OPENAI_ENABLED=true` plus `OPENAI_API_KEY`. +- Shared Swift package (`apple/Packages/LearningLensCore`): also runs on Linux. It only imports `Foundation` + `Testing`, so `make swift-test` (and thus `make test`, which chains swift-test + backend-test) passes here using a Swift 6 Linux toolchain installed via `swiftly`. Despite the iOS/macOS platforms in `Package.swift`, SwiftPM ignores those on Linux. +- SwiftUI app (`apple/App`) is macOS/Xcode-only: `make xcodegen`, `xcodebuild`, and running the app itself CANNOT be done on this Linux VM. Verify app-level changes via the `LearningLensCore` tests here and rely on the `macos-15` CI job for the app build. +- Toolchains are on `PATH` in login shells (`uv` via `~/.local/bin`, `swift` via `~/.local/share/swiftly` sourced in `~/.profile`). In non-login/non-interactive shells, prepend `~/.local/bin` to `PATH` and `source ~/.local/share/swiftly/env.sh` before running `swift`. The Swift package has no external dependencies, so nothing needs re-syncing after startup; the startup update script only refreshes backend deps.