Skip to content

docs: add Cursor Cloud dev environment setup instructions#1677

Merged
danielchalef merged 1 commit into
mainfrom
cursor/setup-dev-environment-78b8
Jul 23, 2026
Merged

docs: add Cursor Cloud dev environment setup instructions#1677
danielchalef merged 1 commit into
mainfrom
cursor/setup-dev-environment-78b8

Conversation

@danielchalef

@danielchalef danielchalef commented Jul 23, 2026

Copy link
Copy Markdown
Member

Summary

Sets up and validates the full development environment for the Graphiti monorepo (core library, FastAPI REST server, MCP server) in the Cursor Cloud VM, and documents the durable, non-obvious setup/run caveats in AGENTS.md. The only code change is an added ## Cursor Cloud specific instructions section in AGENTS.md; a startup update script (uv sync across the three projects) was registered separately.

Type of Change

  • Documentation/Tests

Objective

Make the repo reliably runnable/testable for future cloud agents: install uv, sync deps for all three projects, and capture the non-obvious gotchas that aren't in the README (e.g. make test requiring a live Neo4j, pre-existing test_add_triplet.py failures that CI never runs, and a FalkorDB async concurrency limitation).

What was set up & verified

Dependencies: installed uv, ran uv sync --extra dev (root), uv sync --extra dev (server/), uv sync (mcp_server/). Installed Docker and started Neo4j (neo4j:5.26-community) + FalkorDB on the host network (matching CI).

Component Lint Tests Run (dev)
graphiti-core (root) make lint — pass CI unit cmd: 348 passed, 11 skipped; DB-backed job (Neo4j+FalkorDB, mock LLM): 76 passed Hello-world builds a temporal graph + hybrid search on Neo4j
server/ (FastAPI) make lint — pass Live E2E test_live_falkordb_int.py -m integration: 2 passed (real OpenAI) uvicorn ... --reload on :8000; real ingest→search verified
mcp_server/ ruff/pyright available Live E2E test_live_falkordb_int.py -m integration: 2 passed (real OpenAI) main.py --transport http --port 8001; MCP initialize OK

Note: make test (documented command) keeps Neo4j enabled and requires a live Neo4j at bolt://localhost:7687; with it running, 407 passed and the only 11 failures are in tests/test_add_triplet.py, a pre-existing mock bug (create_batch unstubbed) that CI never executes.

Hello-world (core engine, no API key)

Built entities + episode + a temporal fact edge on Neo4j with a deterministic mock embedder, read them back, and ran hybrid retrieval:

[2] Saved 2 entities, 1 episode, and 1 temporal fact edge.
[3] Read back fact: "Alice mentors Bob at work"
[4] Hybrid search returned 1 fact(s): - Alice mentors Bob at work (edge=MENTORS)
HELLO-WORLD SUCCESS: core graph build + hybrid retrieval verified.

Real live REST API E2E (with provided OPENAI_API_KEY)

Ingested a message via POST /messages (202), the real LLM extracted temporal facts, and POST /search returned them:

POST /search "What does Kendra like?" -> 200
  - "Kendra loves Adidas shoes"                              (LOVES)
  - "Kendra bought a new pair of Adidas shoes in March 2026" (BOUGHT, valid_at=2026-03-01)

graphiti_rest_api_real_ingest_search_demo.mp4
POST /messages 202
POST /search facts 200

Testing

  • All existing tests pass (CI unit suite, DB-backed suite, and both live server/MCP E2E suites with the real key; see note on test_add_triplet.py)

Breaking Changes

  • This PR contains breaking changes

Checklist

  • Code follows project style guidelines (make lint passes)
  • Self-review completed
  • Documentation updated where necessary
  • No secrets or sensitive information committed

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

Co-authored-by: Daniel Chalef <danielchalef@users.noreply.github.com>
@zep-cla-assistant

Copy link
Copy Markdown
Contributor


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. For privacy information, see our Privacy Notice. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA behalf on myself, e-mail: example@example.com

or

I have read the CLA Document and I hereby sign the CLA behalf of my company, e-mail: example@example.com

Signature is valid for 6 months.


This bot will be retriggered when the Contributor License Agreement comment has been provided. Posted by the CLA Assistant Lite bot.

@danielchalef
danielchalef marked this pull request as ready for review July 23, 2026 18:58
@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

PR Review — in progress

  • Read the PR diff
  • Read surrounding context in AGENTS.md
  • Verify claims against repo (Makefile, tests, CI)
  • Post review findings

View job run

@danielchalef
danielchalef merged commit 40dae46 into main Jul 23, 2026
12 of 13 checks passed
@danielchalef
danielchalef deleted the cursor/setup-dev-environment-78b8 branch July 23, 2026 19:00
@zep-cla-assistant zep-cla-assistant Bot locked and limited conversation to collaborators Jul 23, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants