---
title: Workers
description: The 0.8.0 Workers page. Who serves each lane of an open Desk, last run, health, items waiting, gates to approve, the viewer's Desk id, and the owner's Release and Join settings.
sidebar:
  order: 12
---

> Since 0.8.0. The page appears only when the Desk has a `meta/join` card, which exists only when the owner opened the Desk to join. See [Join a Desk](/guides/join-a-desk).

## What it is

Workers (`#/workers`) shows the lanes of an open Desk and who serves each one. A lane is one job on the Desk that a person can serve from their own accounts and connectors, for example drafting replies from their own mailbox. The sidebar entry uses the `users` icon.

## Why it exists

When more than one person serves a Desk, the owner and the joiners need one place to see that each lane is covered, healthy and not waiting on anyone. It is also where an owner ends someone's lane and where a joiner finds the id they give the owner.

## How it works

For each lane the page shows:

- The lane's label.
- Who serves it. Names appear only when more than one person writes to the lane.
- The last run and its health.
- Items waiting and items done.
- Gates to approve. Only the joiner who serves the lane can approve a worker gate (see [Gates and approvals](/concepts/gates-and-approvals#worker-gates)).
- A **Copy link** control for a lane nobody serves, to send to a person who might.

The page also shows the viewer's own Desk id with a Copy control. A joiner gives that id to the owner, and uses it as `--by` in the CLI.

### Owner controls

| Control | Does |
|---|---|
| Release (with a confirm) | Writes `people/<ownerId>/decisions/release--<laneKey>` naming the holder. The release is final for that holder |
| Join settings | Opens or closes the Desk to new joiners (`join.open`). The same change is made in `definition.json` by `join-settings` |

If `meta/owner` has been changed by anyone but the owner, the page shows an "owner record mismatch" note and the owner controls stay off.

## Worked example

Hiring Signals is open with one lane, `sender`, of kind `mail-draft`. The page shows "Sender: Alex Rivera, last run 2 hours ago, healthy, 3 waiting, 12 done". A second lane with nobody serving it shows a Copy link. The owner releases Alex's lane after Alex leaves the team; the lane then shows as unserved.

## Reference

| Item | Value |
|---|---|
| Route | `#/workers` |
| Shown when | `meta/join` exists |
| Release writes | `people/<ownerId>/decisions/release--<laneKey>` |
| Store paths | [`workers/<laneKey>`](/reference/store-collections#workers-and-joining) and its `--health`, `--budget`, `--learning` documents |

## Common pitfalls

- **Expecting the page on a Desk that is not open.** Without a `meta/join` card there is no Workers entry.
- **Releasing to pause a joiner.** A release is final for that holder. Re-admitting means the owner removes the release document.
- **Approving a joiner's gate as the owner.** Worker gates are approved by the joiner only.

## Related

- [Join a Desk](/guides/join-a-desk)
- [Approvals](/desk/approvals)
- [Ownership](/concepts/ownership)
