feat(agent-go): consume panel-hosted Reality keys (persist keyMaterial, backfill unused-provided keys)

This commit is contained in:
aaaamoooo
2026-10-20 07:20:59 +00:00
parent 483b891306
commit f2b7d8e181
4 changed files with 219 additions and 5 deletions
+8
View File
@@ -62,6 +62,14 @@ it can take over an existing node without wiping state.
gates AnyTLS deploys on `version.split('.').map(Number) >= 0.6.1`; a
`"0.6.8-go"` suffix would parse the third component as `NaN` and fail the
gate. Do not change without updating the panel check.
- **Panel-hosted Reality keys**: apply payloads from a hosting panel carry
`payload.keyMaterial = { "<keyId>": { privateKey, publicKey } }`. The agent
persists it into keys.json *before* materializing (panel store wins over a
divergent local entry), and reports any used keypair the panel did not
provide back as `artifacts.keyMaterial` for the panel to adopt. Panels
without hosting send no `keyMaterial` and old panels ignore the new
artifact field — both directions degrade to the pre-hosting flow. Protocol
details and precedence rules: `KEYHOSTING.md` in the repo root.
- Heartbeat `system.arch` uses Node vocabulary (`x64` for amd64) — mapped in
`nodeArch()`.
- Engine object sends `singBoxStatus` as the raw service status