> ## Documentation Index
> Fetch the complete documentation index at: https://yukta.infenia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrate to alpha.4

> What breaks when you upgrade from the previous alpha, and what to change: the signal API, control planes, deprecated API aliases and the removed Overview page.

<dl />

Before you start, take a copy of your sessions (`GET /api/sessions/{id}/config`) and read [Upgrade and roll back](https://yukta.infenia.com/guides/operate/upgrade-and-roll-back.md).

## The signal API is gone: use input requests

`WAIT_FOR_SIGNAL` and tool approvals now raise an **input request** (a high-risk approval) instead of a signal.

| Before | Now |
| - | - |
| `POST /api/executions/{executionId}/nodes/{nodeId}/signal` | `POST /api/executions/{executionId}/inputs/{requestId}/answer` |
| MCP `signal_node` | MCP `answer_input` |
| MCP `list_pending_approvals` | MCP `list_pending_inputs` |
| `yukta-cli workflow node signal` | `yukta-cli inputs show` and `inputs answer` |
| Plugin API `SignalWaits` | `InputGateway.ask` / `InputAsk.ask` |

Find waiting questions with `GET /api/inputs` or `GET /api/sessions/{sessionId}/inputs`. See [Ask for input](https://yukta.infenia.com/guides/ai/ask-for-input.md) and [Who decides](https://yukta.infenia.com/concepts/who-decides.md).

> [!NOTE]
>
> Answers to high-risk requests must come from a person. An agent's API key cannot answer them.

## Control planes are retired: use supervisors

The model and rules-first control planes are gone. A stored supervisor of those types stays stored, does not start, and is named in a warning at start-up. Create a [supervisor](https://yukta.infenia.com/guides/supervise/assign-a-supervisor.md) with the `rules` engine (see [Write a rules supervisor](https://yukta.infenia.com/guides/supervise/write-a-rules-supervisor.md)), or an `http` supervisor that calls your model, instead.

Direct steering also changes. A person can only steer a unit that a supervisor owns if that supervisor lists the command in `operatorAccess`; the default is none. Otherwise you get `409 CONTROLLED_BY_SUPERVISOR`. Units with no owner fall to the default supervisor (`yukta.supervisor.default.enabled`). See [How supervisors work](https://yukta.infenia.com/concepts/supervisors.md).

## Deprecated API aliases

Older paths such as `/api/workflow/{sessionId}/{executionId}/pause` still answer but are marked deprecated. Move to the paths in the [API reference](https://yukta.infenia.com/api/control.md).

## The Overview page is removed

`/` now redirects to `/sessions`. Update any bookmark that pointed at the Overview.

## Check your upgrade

1. Start the new server and open `/sessions`.
2. Run one workflow that contains an approval. You should see an input request, not a signal wait.
3. Open the supervisors page and confirm the supervisors you expect are listed.

If something fails, [Troubleshoot](https://yukta.infenia.com/guides/operate/troubleshoot.md) lists the common causes.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.