Send linked MCP connections in MicroVM launch
## Gap
The node now launches a MicroVM guest with the project's linked MCP servers (bridge entries + per-VM egress allowlist) when the VM `launch` payload carries `mcp_connections` (`apps/jaahd/microvm_session.py` `_mcp_connections`). But the control plane never puts that key in a MicroVM launch: `apps/api/app/microvm_placement.py::_model_launch` builds `microvm_rail.model_launch(...)` without it, while the static lease passes `mcp_connections` (`apps/api/app/fleet_verdicts.py` lease intent, from `apps/api/app/mcp_links.py`). So MCP connectors still do nothing in MicroVM runs.
## Fix
Add `mcp_connections` (the same `mcp_links` list the static lease uses, no secret) to the MicroVM model launch payload, absent when empty.
## Out of scope
The node side (done), the VM boundary, the egress default list.
Done means:
- An API test: a MicroVM admission for a task whose project linked an MCP connection carries `mcp_connections` in its `launch` payload; none linked, the key is absent.
- `./dc check quick` green.
Outcome
MicroVM model launch now carries the project's linked mcp_connections (same mcp_links list as the static lease; absent when none). API test linked/none added; quick gate green. PR #7958 queued to the merge lane. Memory: used mem-25288; proposed none.
Artifacts
Activity
- Created
- Run
- Runner started
- Runner ended (done)