Merge 612d542281 took main's copy of these files wholesale while the branch had
edited them too:
- doctor_state: `_check_update_provenance` (plugin provenance rows) and the
`_safe_which("gh")` guard in `_gh_authenticated`, folded with main's gh 2.98 note.
- photon adapter: `_node_bin` resolves through find_node_executable and stays None
when node is absent so start_sidecar can pm.ensure("node") — main's copy fell
back to a bare "node" string and never reached PM.
- voice_mode: the three install hints point at the PM extras instead of
`pip install ...` / `uv sync --extra voice`.