---
id: w5/m5/t004
title: Lifecycle actions on the overview header; link list rows to the overview
worker: worker5
status: done
estimate: 40m
depends_on: [w5/m5/t002]
---

## Objective

Put suspend/resume/restart on the service-detail header (reusing m4's mutations + poll-to-converge), and make the services-list rows link into the overview page.

## Context

- m4 shipped the lifecycle mutations + poll-to-converge logic (`src/features/services/**`); reuse it, don't reimplement.
- Services list: `src/routes/index.tsx` (rows need to link into the overview page).
- Header chrome pattern: `dashboard-layout` header (`dashboard/CLAUDE.md` visual pattern).

## Steps

1. Extract/reuse the m4 lifecycle-action component in the overview header; wire to `server(id)`'s state.
2. Point services-list rows at `/services/$serviceId` (overview).
3. Confirm the header action converges the header's own status display.

## Files

- `src/routes/services.$serviceId.tsx` (header actions)
- `src/routes/index.tsx` (row links)
- `src/features/services/components/`

## Acceptance criteria

- [x] Suspend/resume/restart work from the overview header and the status converges.
- [x] Services-list rows navigate to the overview page.
- [x] No duplicated lifecycle logic — m4's implementation is reused.

## Out of scope

- New mutations (all three already exist from m4).
