Extend the Project 1 pipeline to the monorepo. - [x] `pull_request` + `push` to `main` on `[self-hosted, linux, x64]` - [x] format → lint → typecheck → test → build - [x] client bundle budget gate - [x] deploy job: build with `VITE_GRAPHQL_URL=/graphql`, publish to `/var/www/html/project2`, restart `crate-api`, smoke check **Acceptance:** a red build cannot land on `main`, and a green push to `main` is live on the VM within a couple of minutes.