|
| 1 | +# Documentation plan |
| 2 | + |
| 3 | +Public documentation lands after the runtime and hosting contract is stable. The pages follow Diátaxis so readers do not have to extract a tutorial from a configuration reference. |
| 4 | + |
| 5 | +## 1. Explanation: how agent runs execute |
| 6 | + |
| 7 | +Purpose: build the mental model. |
| 8 | + |
| 9 | +Explain: |
| 10 | + |
| 11 | +- Services calls one runner service. |
| 12 | +- Harness and sandbox provider are independent axes. |
| 13 | +- One runner can support local and Daytona simultaneously. |
| 14 | +- Local runs share the runner container and are not an isolation boundary. |
| 15 | +- Daytona runs cross an explicit file and credential boundary. |
| 16 | +- Managed model keys are per-run data. |
| 17 | +- Runner provider credentials are deployment infrastructure credentials. |
| 18 | +- Session, agent, and transcript mounts provide different persistence. |
| 19 | +- Sessionless execution is the only implicit ephemeral case. |
| 20 | + |
| 21 | +Do not include a complete environment-variable table or a copy-paste deployment recipe. |
| 22 | + |
| 23 | +Proposed page: `docs/docs/self-host/agents/how-agent-runs-execute.mdx`. |
| 24 | + |
| 25 | +## 2. Tutorial: run your first local agent with your own subscription |
| 26 | + |
| 27 | +Purpose: teach one end-to-end learning path for a trusted personal self-hosted deployment. |
| 28 | + |
| 29 | +The tutorial should: |
| 30 | + |
| 31 | +1. start a clean OSS Compose stack; |
| 32 | +2. locate the single runner service; |
| 33 | +3. export or locate a supported Pi or Claude login; |
| 34 | +4. mount the credential source read-only using a commented Compose example; |
| 35 | +5. enable a local-only `harness-auth` bootstrap asset; |
| 36 | +6. start the stack; |
| 37 | +7. create a self-managed agent; |
| 38 | +8. run a prompt and a tool call; |
| 39 | +9. inspect the runner's redacted startup summary; |
| 40 | +10. remove the mount and verify the self-managed run fails clearly. |
| 41 | + |
| 42 | +Safety callouts: |
| 43 | + |
| 44 | +- one personal subscription is for that operator, not all users of a shared deployment; |
| 45 | +- local agents can inspect files visible to the runner container; |
| 46 | +- use API keys or provider-approved organization authentication for multi-user deployments; |
| 47 | +- do not target the auth asset at Daytona. |
| 48 | + |
| 49 | +Proposed page: `docs/docs/self-host/agents/tutorial-local-subscription.mdx`. |
| 50 | + |
| 51 | +## 3. How-to: enable Daytona for agent workflows |
| 52 | + |
| 53 | +Purpose: configure remote sandbox execution with managed model credentials. |
| 54 | + |
| 55 | +Cover: |
| 56 | + |
| 57 | +- creating or selecting a Daytona API key; |
| 58 | +- enabling both `local,daytona` or Daytona alone; |
| 59 | +- choosing the default; |
| 60 | +- runner-scoped Daytona environment variables; |
| 61 | +- snapshot versus image; |
| 62 | +- target and lifecycle values; |
| 63 | +- public reachability requirements for durable storage; |
| 64 | +- a smoke test and common errors; |
| 65 | +- unsupported subscription combinations. |
| 66 | + |
| 67 | +Do not reuse code-evaluator Daytona variables. |
| 68 | + |
| 69 | +Proposed page: `docs/docs/self-host/agents/how-to-daytona.mdx`. |
| 70 | + |
| 71 | +## 4. How-to: customize the runner runtime |
| 72 | + |
| 73 | +Purpose: add binaries, certificates, and deterministic files. |
| 74 | + |
| 75 | +Cover two separate mechanisms: |
| 76 | + |
| 77 | +- build a custom runner image for installed programs; |
| 78 | +- use bootstrap assets for per-run files or directories. |
| 79 | + |
| 80 | +Explain local and Daytona materialization. Keep arbitrary scripts, VPN hooks, and plugins out of version 1. |
| 81 | + |
| 82 | +Proposed page: `docs/docs/self-host/agents/how-to-custom-runner.mdx`. |
| 83 | + |
| 84 | +## 5. How-to: connect an external runner |
| 85 | + |
| 86 | +Purpose: deploy the whole runner elsewhere and point Services at it. |
| 87 | + |
| 88 | +Cover: |
| 89 | + |
| 90 | +- `AGENTA_RUNNER_INTERNAL_URL`; |
| 91 | +- the runner token; |
| 92 | +- private networking and TLS termination; |
| 93 | +- the request-scoped callback credential and why no static runner API key is mounted; |
| 94 | +- provider and bootstrap configuration on the external runner; |
| 95 | +- health versus capabilities; |
| 96 | +- storage reachability; |
| 97 | +- failure diagnosis. |
| 98 | + |
| 99 | +Do not describe a split where only the harness runs in another local container. The supported relocation unit is the whole runner. |
| 100 | + |
| 101 | +Proposed page: `docs/docs/self-host/agents/how-to-external-runner.mdx`. |
| 102 | + |
| 103 | +## 6. Reference: runner configuration |
| 104 | + |
| 105 | +Purpose: provide exact names, types, defaults, readers, secret classification, and conflicts. |
| 106 | + |
| 107 | +Generate the table from the typed configuration schema if practical. Group by: |
| 108 | + |
| 109 | +- Services-to-runner routing; |
| 110 | +- runner server; |
| 111 | +- enabled/default sandbox providers; |
| 112 | +- Daytona; |
| 113 | +- session lifecycle; |
| 114 | +- bootstrap; |
| 115 | +- callback API; |
| 116 | +- intentionally internal debug settings. |
| 117 | + |
| 118 | +Every variable must identify: |
| 119 | + |
| 120 | +- semantic role; |
| 121 | +- consumer; |
| 122 | +- default; |
| 123 | +- whether empty is valid; |
| 124 | +- whether it is secret; |
| 125 | +- Compose location; |
| 126 | +- Helm values path; |
| 127 | +- conflicts and startup validation. |
| 128 | + |
| 129 | +Proposed page: `docs/docs/self-host/agents/runner-configuration.mdx`. |
| 130 | + |
| 131 | +## 7. Troubleshooting reference |
| 132 | + |
| 133 | +Organize by symptom, cause, and exact check: |
| 134 | + |
| 135 | +- "Authentication credentials not found" for Daytona; |
| 136 | +- requested provider disabled; |
| 137 | +- runner unreachable or unauthorized; |
| 138 | +- missing local subscription asset; |
| 139 | +- remote subscription unsupported; |
| 140 | +- snapshot or harness missing; |
| 141 | +- session mount signing failed; |
| 142 | +- store unreachable from Daytona; |
| 143 | +- FUSE transport disconnected; |
| 144 | +- capability picker stale. |
| 145 | + |
| 146 | +The error text in docs must be copied from the final structured errors, not invented before implementation. |
| 147 | + |
| 148 | +## 8. Existing page migration |
| 149 | + |
| 150 | +After new pages exist: |
| 151 | + |
| 152 | +- split the current self-host configuration page so its runner section links to the focused reference; |
| 153 | +- rewrite guides 07, 08, and 09 around the new how-to boundaries; |
| 154 | +- remove shared Daytona snapshot wording; |
| 155 | +- remove all old variables; |
| 156 | +- remove instructions that rely on an extra subscription sidecar; |
| 157 | +- keep redirects for published URLs if any, but do not keep environment aliases; |
| 158 | +- update navigation and cross-links; |
| 159 | +- verify OSS and EE examples separately. |
| 160 | + |
| 161 | +## 9. Documentation acceptance |
| 162 | + |
| 163 | +- A new reader can explain the runner topology after the explanation page. |
| 164 | +- A trusted local operator can complete the subscription tutorial without hidden files. |
| 165 | +- A Daytona operator never mounts or uploads a subscription credential. |
| 166 | +- Compose comments are sufficient to discover the opt-in local subscription path. |
| 167 | +- The reference contains no variable absent from code. |
| 168 | +- Search finds no removed variable in public docs. |
| 169 | +- Every troubleshooting entry maps to an automated error-path test. |
0 commit comments