One installable package (agent half + desktop half) that puts a mode selector in
the desktop composer: ask / agent / plan / debug. The mode's operating note rides
the turn's model-facing bytes via pre_llm_call, so the durable row, the bubble and
the session title keep exactly what the user typed; ask mode is enforced read-only
through pre_tool_call. No core change, no renderer rebuild.
Pinned at 4f4e1c0b36165d84a9e2db7c71516f5a0c627d72 - the v2.0.0 package commit
(gates: 103 pytest cases, the desktop-half smoke test, hermes plugins validate,
and the repo's CI).