Add Cloud Agent development environment config - #434
wallscaler wants to merge 1 commit into
Conversation
Introduce .cursor/environment.json and an idempotent .cursor/install.sh that bootstrap an isolated virtualenv with the thin-subnet mechanism/test toolchain (matching required-checks CI) plus the publisher runtime deps needed by the default SQLite-backed FastAPI server. Expose the publisher on port 8000 via a terminal for local development. Co-authored-by: Ancient Runner <wallscaler@users.noreply.github.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 7384677. Configure here.
| # Core mechanism + reviewed test/lint toolchain (`.[test]`) matches CI. The two | ||
| # trailing deps are the publisher runtime essentials for the default SQLite | ||
| # backend; Postgres (psycopg2) and S3 (boto3) stay optional and load lazily. | ||
| python -m pip install -e '.[test]' 'python-multipart>=0.0.9' 'blake3>=1.0' |
There was a problem hiding this comment.
Publisher terminal missing runtime deps
High Severity
The bootstrap installs .[test] plus python-multipart and blake3, but the publisher terminal runs uvicorn against scaffold.publisher.server:app, which hard-imports fastapi. Neither fastapi nor uvicorn comes from .[test] or the base package deps; they live in the [publisher] extra. On a fresh Cloud Agent, the publisher terminal fails at startup and the configured port never comes up.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 7384677. Configure here.


Summary
Adds a reproducible Cloud Agent development environment for the Cathedral SN39 repository. There was no committed
.cursor/environment.jsonbefore; this makes the repo fully usable in Cloud Agents.What's included
.cursor/install.sh— idempotent bootstrap that:python3.12-venvseed package (Cursor's default image ships Python 3.12 but omits it, sopython3 -m venvotherwise fails with anensurepiperror);.venv;-e '.[test]'(the same mechanism + reviewed ruff/pytest toolchain that.github/workflows/required-checks.ymluses) pluspython-multipartandblake3, the two runtime deps the default SQLite-backed publisher server needs for multipart submit and canonical hashing. Postgres (psycopg2) and S3 (boto3) stay optional and load lazily..cursor/environment.json— wiresinstallto the script, exposes the publisher on port8000, and runsscaffold.publisher.server:app(uvicorn) in apublisherterminal for local development.Validation performed on the VM
ruff check+ruff format --check(cathedral_thin tests/thin tests/boundary)pytest -q tests/thin tests/boundarycathedral-thin-e2eok: true, exit 0/health/readystatus: ok,db: ok,sr25519_backend: bittensorSUCCEEDED— install script ran end-to-end on a fresh checkoutNo application code changed; only environment configuration was added.
The draft build was created from this branch ref (testable, not promotable). After merge to
main, a build from the default branch is promotable, and the committed.cursor/environment.jsonbecomes the highest-precedence environment source for future Cloud Agents.