# `2.7.0` Service Lifecycle And Typed Readiness

Status: Done

## Goal

Make app-style workspaces practical by adding first-class services and typed
readiness checks.

## Public API Changes

- CLI:
  - `pyro workspace service start`
  - `pyro workspace service list`
  - `pyro workspace service status`
  - `pyro workspace service logs`
  - `pyro workspace service stop`
- SDK/MCP mirror the same shape

Readiness types:

- file
- TCP
- HTTP
- command as an escape hatch

## Implementation Boundaries

- Support multiple named services per workspace from the first release.
- Service state and logs live outside `/workspace`.
- `workspace status` stays aggregate; detailed service inspection lives under
  `workspace service ...`.
- Prefer typed readiness in docs/examples instead of shell-heavy readiness
  commands.

## Non-Goals

- no host-visible port publication yet
- no secrets or auth wiring in this milestone
- no shell/service unification

## Acceptance Scenarios

- start two services in one workspace, wait for readiness, inspect logs and
  status, then stop them cleanly
- service files do not appear in `workspace diff` or `workspace export`

## Required Repo Updates

- cold-start validation example that uses services
- CLI help/examples for typed readiness
- real Firecracker smoke for multi-service start/status/logs/stop
