---
id: w5/m13/t003
title: Root Directory save flow
worker: worker5
status: done
estimate: 30m
depends_on: [w5/m13/t002]
---

## Objective

Wire the Root Directory field's save flow: edit → confirm → mutation → rollout feedback, following the confirm pattern `w5/m7`'s plan-picker already established.

## Context

- `w5/m7`'s plan-picker: Save disabled until the value changes, confirm dialog with a rollout warning, toast on success. Reuse this UX shape rather than inventing a new one.
- The mutation is the `rootDir`-carrying update mutation `w1/m18/t005` adds to `graphql.go`.

## Steps

1. Make the Root Directory input editable with Save disabled until the value differs from the current one.
2. On save, call the update mutation with the new `rootDir`, show a rollout-warning confirm (a root-dir change triggers a rebuild, same as any spec change).
3. Show a success/error toast; refresh the section's displayed value from the mutation response.

## Files

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

## Acceptance criteria

- [ ] Save is disabled until the Root Directory value changes
- [ ] Saving calls the update mutation and shows a rollout-warning confirm before submitting
- [ ] Success/error feedback matches the rest of the Settings tab's toast pattern

## Out of scope

- Live end-to-end verification against a real build (t004).
