diff --git a/docs/getting-started.md b/docs/getting-started.md index a393eea..cb3e011 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -43,8 +43,15 @@ every live submit: X-Lium-Api-Key: ``` -The key is held only in master memory for that submission (never stored in the -DB, never logged). Missing key on live → `400 missing_lium_api_key`. +The key is held in master memory for that submission and may also land in a +**short-TTL encrypted seal file** on the master host (never in Postgres, never +logged) so a control-plane restart can still stop your pod. Missing key on +live → `400 missing_lium_api_key`. + +If the challenge process restarts mid-run, your submission is marked failed +promptly with `control_plane_restart` / `harness_detached`. Stop the Lium pod +if it is still billing, then resubmit with `X-Lium-Api-Key`. Poll +`GET /v1/submissions/{id}/events` and `GET /v1/submissions/{id}/logs?since=`. ## Telemetry hooks (still required) diff --git a/docs/prism.md b/docs/prism.md index b8254fd..a0a0818 100644 --- a/docs/prism.md +++ b/docs/prism.md @@ -67,10 +67,19 @@ every live submit: X-Lium-Api-Key: ``` -The key is held only in master memory for that submission (never stored in the -DB, never logged). Missing key on live → `400 missing_lium_api_key`. Cost -guardrails (`max_price_per_hour`, lifetime) still apply so a bad key cannot -rent unbounded SKUs through the orchestrator. +The key is held in master memory for that submission and may also land in a +**short-TTL encrypted seal file** on the master host (never in Postgres, never +logged) so a control-plane restart can still stop your pod. Missing key on +live → `400 missing_lium_api_key`. Cost guardrails (`max_price_per_hour`, +lifetime) still apply so a bad key cannot rent unbounded SKUs through the +orchestrator. + +If the challenge process restarts mid-run, your submission is marked failed +promptly with `control_plane_restart` / `harness_detached` (not left `running` +for hours). When the seal is missing, stop the pod yourself on Lium, then +resubmit with `X-Lium-Api-Key`. Poll `GET /v1/submissions/{id}/events` and +`GET /v1/submissions/{id}/logs?since=` for live stage heartbeats and harness +tails while the run is healthy. ## Submit diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index 7f9dd05..274672d 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -14,6 +14,7 @@ | Score 0 after review | `Copied` / high-confidence `Suspicious` (≥0.9, non-trope) | Similarity on **your delta**; rewrite unique hunks; tropes alone are not plagiarism | | `similar: true` on precheck | Would hit intake copy gate | Change the patch vs prior champions; starting from the operator pin is fine | | `429 precheck_quota_exceeded` | 3 prechecks/coldkey/UTC day used | Wait until next UTC day; rotating hotkeys does not reset | +| `control_plane_restart` / `harness_detached` | Challenge process restarted mid-pod | Stop the Lium pod if still billing; resubmit with `X-Lium-Api-Key` | | `400 missing_lium_api_key` | Live path needs miner-funded Lium | Pass `X-Lium-Api-Key` (your Lium account); see [Submit](submit.md) | | `403 hotkey_not_in_metagraph` | Hotkey not registered | Check the hex (64 lowercase, no `0x`) | | `409 submission_gated` | 1-max slot already used | One accepted patch per hotkey; identical pin+patch is idempotent |