fix(server): revoke the MCP credential when agent browser access is withheld

The deny path only cleared the in-memory provider-session map. Every other
prepare path reaches `issueActiveMcpCredential`, which revokes the thread
first, so skipping it left a previously issued bearer token valid against
`/mcp` for the rest of its liveness window — and `touchActiveMcpThread` on
later turns kept refreshing it.

Session restarts for runtime mode, cwd or model re-prepare without stopping,
so they relied on that revoke. An agent whose process outlived the toggle
could have kept driving the browser after the user withheld access, which is
the one outcome this feature exists to prevent.

Reported by the review bot on #7083.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
324e3be3c0Julius Marminge committed on 8/17/2026, 1:02:47 AMparent9989fdf
2 files changedLine totals unavailable