feat(plane): router-addressed start signal; credentials only in the start request

Agent Substrate's golden-snapshot boot runs the same image with the same task env,
so the runner no longer starts its command by itself: after the workspaces are
ready it waits for POST /ousast/v1/start (run/task checked, once per boot, refused
after a delivered run). The reconciler sends it through svc/atenet-router with
ate-target-actor, which never addresses the golden actor (plane/router.py), and the
bound Model's secretKey variable travels only in that body, into the child's env.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01EmM1j46qgKMh3zqD1QMwEo
This commit is contained in:
Marius Ciepluch
2026-09-29 19:41:35 +02:00
co-authored by Claude Opus 5.5
parent ac296ee3a4
commit 14ea48b1ea
10 changed files with 919 additions and 95 deletions
@@ -1,7 +1,7 @@
{
"modules": 130,
"modules": 131,
"counts": {
"load_bearing": 121,
"load_bearing": 122,
"standalone_capability": 9
},
"orphaned": [],
@@ -661,6 +661,7 @@
"cli",
"plane.generate",
"plane.reconciler",
"plane.router",
"plane.runner",
"plane.tasks.verify",
"plane.workspaces"
@@ -697,6 +698,7 @@
"importers": [
"plane.generate",
"plane.reconciler",
"plane.router",
"plane.runner",
"plane.workspaces"
]
@@ -710,6 +712,15 @@
"plane.workspaces"
]
},
{
"module": "plane.router",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"plane.reconciler",
"plane.runner"
]
},
{
"module": "plane.runner",
"classification": "load_bearing",