# `3.3.0` Workspace Naming And Discovery

Status: Done

## Goal

Make multiple concurrent workspaces manageable from chat without forcing the
user or model to juggle opaque IDs.

## Public API Changes

Planned additions:

- `pyro workspace create ... --name NAME`
- `pyro workspace create ... --label KEY=VALUE`
- `pyro workspace list`
- `pyro workspace update WORKSPACE_ID [--name NAME] [--label KEY=VALUE] [--clear-label KEY]`
- matching Python SDK methods:
  - `list_workspaces`
  - `update_workspace`
- matching MCP tools:
  - `workspace_list`
  - `workspace_update`

## Implementation Boundaries

- keep workspace IDs as the stable machine identifier
- treat names and labels as operator-friendly metadata and discovery aids
- surface last activity, expiry, service counts, and summary metadata in
  `workspace list`
- make name and label metadata visible in create, status, and list responses

## Non-Goals

- no scheduler or queue abstractions
- no project-wide branch manager
- no hidden background cleanup policy beyond the existing TTL model

## Acceptance Scenarios

- a user can keep separate workspaces for two issues or PRs and discover them
  again without external notes
- a chat agent can list active workspaces, choose the right one, and continue
  work after a later prompt
- review and evaluation flows can tag or name workspaces by repo, bug, or task
  intent

## Required Repo Updates

- README and install docs that show parallel named workspaces
- examples that demonstrate issue-oriented workspace naming
- smoke coverage for at least one multi-workspace flow
- public contract, CLI help, and examples that show `workspace list` and `workspace update`
