8323bf3d71
Every route classifier reasoned about the full navigation target, so a query put them on the wrong branch: `/skills?tab=mcp` failed the reserved path check and fell through to the session-id parser as the session `skills?tab=mcp`, which made `appViewForPath` report Capabilities as a chat. The command palette reaches Capabilities exclusively through those targets, and Settings redirects old `/settings?tab=mcp` deep links there. Strip the query and hash once, up front. Session ids are percent-encoded by `sessionRoute`, so `?`/`#` can only ever start a query or a hash.