
# Isolation

Rudel is a request-selected overlay system. A selected request uses sandbox database tables and sandbox theme files while still running through the host WordPress installation.

## Isolated per sandbox

### WordPress tables

Each sandbox gets a generated table prefix:

```text
wp_a4nmv7_options
wp_a4nmv7_posts
wp_a4nmv7_postmeta
```

Rudel switches the active WordPress table prefix before WordPress finishes booting.

### Active theme files

The selected active theme is copied into the sandbox directory:

```text
wp-content/rudel-environments/{environment_id}/themes/{theme_slug}
```

If the active theme is a child theme, Rudel also copies the parent theme so the template relationship stays valid.

### Request context

HTTP requests can enter a sandbox through:

- `X-Rudel-Environment`
- `rudel_environment`

WP-CLI commands can enter a sandbox through:

- `RUDEL_ENVIRONMENT`

## Shared by default

- WordPress core
- plugin files
- uploaded media files
- users

This is the current isolation boundary. It keeps sandbox creation fast and avoids replacing `WP_CONTENT_DIR` globally.

## Runtime metadata

Rudel runtime metadata stays in host WordPress MySQL tables:

```text
wp_rudel_environments
wp_rudel_worktrees
```

These tables are Rudel's source of truth. Environment directories contain managed files and artifacts, not runtime registry state.
