feat(mcp): skip servers that are offline and add them when they return

A server that could not start used to fail the whole mcp extension for the session, taking every other server's tools with it. It is now left out with a warning, and the rest load. A missing server is probed when the session shows activity, never on a timer, with doubling backoff from the new `retryMs` setting (default 30s). One found up asks the session to refresh at the end of a turn, which leaves the usual "capabilities changed" turn and pins the old prompt until compaction. `extension.Session` gains `refresh(reason)` for this. Saving or enabling a server through settings stays strict, so a mistyped command is still refused where it is typed.

d056d320 parent 0405d908 +351 −63
browse files