n1x-backend-api-fastapi-runtime

Public task · Field Engineering

← Field Engineering

In the n1x project factory, make the backend-api plugin own the FastAPI runtime so projects generated without it get no FastAPI code, packages or API start command, and the rest of the backend keeps working.

Version
Category
Engineering
Model configurations
1
Attempts
8
Public trials
164 passed
Median runtime
9m 46s

Instruction

`backend-python` ships the FastAPI runtime to every Python project, whether or
not `backend-api` is selected: `_lib/service.py`, the `fastapi`, `uvicorn` and
`pydantic` dependencies, and a Dockerfile `CMD` that starts `api.main:app`.

Make `backend-api` own the FastAPI runtime. A project generated without
`backend-api` should get none of it (no FastAPI code, no FastAPI packages, no
API start command), and everything else in its backend should keep working as
it does today. A project with `backend-api` should keep a working API that
still deploys and runs on Cloud Run as it does today.

## Environment

This is the n1x repository itself: it has no app or database of its own to
run. `node src/cli.mjs init <dir> --plugins <a,b>` (or `apply --project
<dir>` over an `n1x.yaml`) renders a project to try. `just`, `uv` with
Python 3.13, and `terraform` are installed, and the Terraform providers a
generated project's `infra/` uses (google, github and random) come from a
local mirror, so `terraform init` works offline in a rendered `infra/`. There
are no Google Cloud or GitHub credentials here, and no `gcloud` or `docker`.

Public trials

Results by model

Model · harnessMean rewardRange± SEAttempts
Frontier model ACursor CLI50.0%0% – 100%18.9 pp8