07312cd0a2
Vérifié parce qu'elles ressemblent à des appels « ouvrir un repo » tout faits, ce qui aurait rendu notre `ensureRepoOpen` redondant. Elles ne le sont pas : ni l'une ni l'autre ne fait d'I/O — chacune construit un `AppRequest` et le renvoie sérialisé (`lib.rs:1890`, `:1900`), sans session_id ni callback. `doc_subscribe` construit la MÊME requête (`AppRequest::doc_fetch_repo_subscribe` → `Fetch(Subscribe)`), y ajoute la session et la passe à `app_request_stream_`. Ce sont des constructeurs de requête pour qui veut dépêcher lui-même. Donc rien à récupérer : les employer reviendrait à réimplémenter ce que `doc_subscribe` fait déjà. Et `doc_fetch_private_subscribe` ne diffère que par sa cible (le store-root privé), ce qui ne change rien à la barrière — un store-root n'en a toujours pas.