pub async fn run(args: ServeArgs) -> Result<(), ServeError>Expand description
symforge serve entrypoint (US1 — /mcp over Streamable HTTP).
Resolves the key, parses --listen, computes loopback, and enforces the
refuse-to-start rule before opening any socket. On a permitted config it
loads the project index, builds the ServerRuntime (the same shared
SymForgeServer stdio uses — no logic fork), mounts the /mcp Streamable
HTTP router with the Bearer auth layer in front, prints the attach URL to
stdout, and runs one long-lived server until a shutdown signal arrives with
graceful drain: SIGINT (Ctrl+C) on all platforms, plus SIGTERM on Unix so the
server drains under Docker/K8s/systemd (P2-B).