feat(slash): fondation du système de commandes slash pour la CLI custom — #162 (QA verte)
Introduit le contrat unifié des commandes slash consommable par le frontend, indépendant de la source (native, puis plugin plus tard) : - domain: modèle pur SlashCommand / SlashCommandSource / SlashCommandAvailability, métadonnées UI (nom, description, disponibilité, confirmation requise) et validation des noms/préfixes. - application: registry + list/filter par préfixe + plan d'exécution natif ; commandes natives /help et /clean (/clean = nettoyage de la vue de session courante ; pas de /reset distinct tant qu'aucune utilité produit ne le justifie). - backend + app-tauri: exposition du contrat via DTO/transport + tests DTO. Source neutre : les commandes contribuées par plugins (#165) transiteront par le même registry sans changer le contrat frontend. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -93,6 +93,16 @@ impl ChatBridge {
|
||||
self.inner.scrollback(session)
|
||||
}
|
||||
|
||||
/// Clears only the retained conversation scrollback for a live session,
|
||||
/// keeping any currently attached channel in place.
|
||||
///
|
||||
/// Returns the number of chunks removed. This powers `/clean`: the frontend
|
||||
/// clears its mounted view from the command response, and future re-attaches
|
||||
/// no longer replay the old conversation.
|
||||
pub fn clear_scrollback(&self, session: &SessionId) -> usize {
|
||||
self.inner.clear_scrollback(session)
|
||||
}
|
||||
|
||||
/// Removes a session's transport state **and** its retained scrollback
|
||||
/// unconditionally (chat cell explicitly closed). Twin of
|
||||
/// [`PtyBridge::unregister`](crate::pty::PtyBridge::unregister).
|
||||
|
||||
Reference in New Issue
Block a user