# managoat_runner v0.1.0 - Table of Contents

> The self-hosted runner wire protocol: a WebSock connection process and a Managoat.Sandbox adapter over it, behind a host behaviour.

## Pages

- [Managoat.Runner](readme.md)
- [Changelog](changelog.md)

## Modules

- [Managoat.Runner](Managoat.Runner.md): The self-hosted runner: a `Managoat.Sandbox` adapter whose transport is a
WebSocket that a daemon on the user's machine dials *out* to the platform.
- [Managoat.Runner.Adapter](Managoat.Runner.Adapter.md): The self-hosted runner adapter: `Managoat.Sandbox` implemented as RPCs to a
runner daemon on a machine the user owns.
- [Managoat.Runner.Config](Managoat.Runner.Config.md): The library's one setting, read from its own otp_app
- [Managoat.Runner.Connection](Managoat.Runner.Connection.md): The server end of one runner daemon's socket.
- [Managoat.Runner.FakeDaemon](Managoat.Runner.FakeDaemon.md): An in-BEAM stand-in for the runner daemon, speaking the exact wire
protocol `Managoat.Runner.Connection` speaks, so the adapter and the
connection process are exercised end to end without a Go binary or a
network.
- [Managoat.Runner.FakeDaemon.Socket](Managoat.Runner.FakeDaemon.Socket.md): The socket process of a `Managoat.Runner.FakeDaemon`: it runs
`Managoat.Runner.Connection` as a `WebSock` handler would, and is the
registered connection process. Frames the connection pushes go to the
daemon process; frames the daemon sends arrive as `handle_in/2`.

- [Managoat.Runner.Host](Managoat.Runner.Host.md): What the platform running `Managoat.Runner` supplies: a way to reach a
runner's connection process by id, and two notifications it may act on.
- [Managoat.Runner.Host.Local](Managoat.Runner.Host.Local.md): The reference `Managoat.Runner.Host`: a plain `Registry` (`keys: :unique`)
on one node, and no reaction to heartbeats or presence.
- [Managoat.Runner.Names](Managoat.Runner.Names.md): Sandbox names on the runner provider carry the runner id, because
`Managoat.Sandbox` hands an adapter nothing but the name: the shape is
`runner-<32 hex>-<8 hex>`, the runner's UUID without dashes and a random
suffix.

