Guidelines for AI agents working on this codebase.
cd backend
source .venv/bin/activate
uv run run.pyAlways activate the virtual environment and use uv to run tests:
cd backend
source .venv/bin/activate
uv run pytestWith verbose output:
cd backend
source .venv/bin/activate
uv run pytest -vRun a specific test file:
cd backend
source .venv/bin/activate
uv run pytest tests/synthetic/test_sqlite_profiler.py -vcd backend
uv sync # core dependencies only
uv sync --extra connectors # includes Snowflake, pandas, numpy, pyarrowDo not use pip install or python -m pytest directly. Always use uv run.
cd frontend
npm install
npm run devTest specs live in frontend/e2e/. Playwright is configured in frontend/playwright.config.ts and auto-starts both the backend and frontend dev servers.
make test:e2eOr from the frontend directory:
cd frontend
npx playwright testRun in headed mode for debugging:
cd frontend
npx playwright test --headedIf Chromium is not yet installed locally:
cd frontend
npx playwright install chromiumfrontend/e2e/helpers.ts— shared utilities (createDataset,openContextMenu,waitForToast)frontend/e2e/canvas.spec.ts— core canvas interactions (create dataset, search, auto layout)frontend/e2e/context-menu.spec.ts— context menu actions (view details, edit metadata, delete)
The browser-tester agent (.cursor/agents/browser-tester.md) runs make test:e2e and iteratively fixes failures, following the same pattern as builder and linter.
- Backend virtual environment lives at
backend/.venv - Python version: >= 3.12
- Test framework: pytest (configured in
backend/pyproject.toml) pythonpathis set to"."in pytest config, so imports useapp.*andtests.*