---
id: w5/m13/t002
title: Build & Deploy Settings section UI
worker: worker5
status: done
estimate: 45m
depends_on: [w5/m13/t001]
---

## Objective

Add a new "Build & Deploy" section to the service Settings tab showing Repo, Branch, and Root Directory, reading from the `rootDir` GraphQL field `w1/m18` adds.

## Context

- `dashboard/src/routes/services.$serviceId.settings.tsx:29` — comment explicitly defers "other sections (name/region/build/deploy)"; this task fills that gap for the build/deploy piece.
- `w5/m7` established the Settings-tab section pattern (summary row + edit affordance) for the Instance Type section — reuse that structural approach for consistency.
- Requires `w1/m18`'s GraphQL `rootDir` field to be live (query it via Apollo, same client pattern as the rest of the dashboard).

## Steps

1. Add a "Build & Deploy" section component to the Settings route showing Repo (read-only), Branch (read-only), and Root Directory (editable text input).
2. Wire the section to read `rootDir`/`repo`/`branch` from the existing service GraphQL query (extend it if the fields aren't already fetched).
3. Match Render's field copy/placeholder (empty = repo root) per t001's captured reference.

## Files

- `dashboard/src/routes/services.$serviceId.settings.tsx`
- Relevant GraphQL query/fragment files under `dashboard/src/features/services/`

## Acceptance criteria

- [ ] Build & Deploy section renders Repo/Branch/Root Directory for a repo-backed App
- [ ] An App with no `rootDir` set shows an honest "repo root" default state, not a blank/error
- [ ] Section is visually consistent with the existing Instance Type section

## Out of scope

- Save/mutation flow (t003).
- Repo/Branch editing (Render doesn't allow changing these post-create either — read-only is correct parity).
