---
name: dedicated
version: 1.0.0
description: "Handle Dedicated runtime and API semantics inside Remote Dev full. Use for Dedicated readiness or diagnosis, or when selecting an operation, method, path, persistent network-container boundary, endpoint expectation, and cleanup behavior from the current Dedicated API surface."
metadata:
  requires:
    bins: ["cp9"]
  cliHelp: "cp9 cmd status; cp9 cmd logs"
---

# Dedicated

Read [`../get-started/SKILL.md`](../get-started/SKILL.md) for session routing and [`../get-started/references/safety-and-ownership.md`](../get-started/references/safety-and-ownership.md) before mutation.

Dedicated control-plane services run inside Remote Dev full; there is no standalone Dedicated Session config. Start from [`../../cp9.dev-full.remote-ec2-k3d.example.yaml`](../../cp9.dev-full.remote-ec2-k3d.example.yaml), whose comments own all config choices.

## API Reference

Use [`references/operation-map.md`](references/operation-map.md) to choose the operation ID, method, path, and base URL. The map is a lookup, not an executable workflow. Re-read the cited current swagger before mutation.

Before any request, resolve:

1. Exact environment, organization/project, provider/region, base URL, operation, and target IDs.
2. Whether the persistent project-region CIDR row is read through the Dedicated Network Container API or the shipped UI's legacy CIDR surface.
3. Read-only, mutating, or destructive classification; expected terminal state, endpoint/SQL criterion, and exact cleanup boundary.

List the scoped CIDR row first. Create one only when the exact project/provider/region row is absent, read it back, and retain it during cluster/session cleanup. A mutating or destructive call requires explicit task authority and exact targets. Keep API keys, root passwords, endpoint credentials, Authorization headers, and raw traces out of commits and chat.

## Runtime And Diagnosis

- Require top-level `cp9 status=ready` and a matched Dedicated route before product calls. A 404 on the local Dedicated prefix means the route is not registered; other HTTP statuses at least prove routing.
- The API-returned public hostname is authoritative. DNS, MySQL handshake, and `select 1` must succeed against that hostname; do not substitute a discovered NLB.
- A load balancer or target group reporting healthy is diagnostic evidence, not SQL acceptance.
- Keep CP9-only CR compatibility patches bounded to the exact current task and report them separately from product behavior.
- Kernel image changes use [`../get-started/references/change-kernel-images.md`](../get-started/references/change-kernel-images.md).

## Completion

Report the exact operation and observed state, keep persistent network-container state distinct from cluster/session resources, and close the Session through `cp9 destroy` when the task owns the environment lifecycle.

## References

- [`references/operation-map.md`](references/operation-map.md)
- [`../get-started/references/dev-full-aws-runtime.md`](../get-started/references/dev-full-aws-runtime.md)
- [`../get-started/references/change-kernel-images.md`](../get-started/references/change-kernel-images.md)
