feat(cli): commande /profile + sélection de profil avec reset de session confirmé — #164 (QA verte)
Ajoute /profile comme commande slash first-class dont la sémantique de reset
de session reste explicite et testable, séparée de la palette générique :
- domain + application: /profile est enregistrée et renvoie un effet
SlashCommandEffect::ProfileSwitch { session_id }. La commande ne reset pas
directement : elle délègue l'effet au frontend pour imposer une confirmation.
- frontend (CustomAgentChatView): à l'exécution de /profile, ouverture d'un
popup de sélection de profil informant que la validation reset la session,
avec confirmation explicite (confirmedReset) requise avant changeAgentProfile.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -422,10 +422,7 @@ export class MockAgentGateway implements AgentGateway {
|
||||
name: "/profile",
|
||||
shortDescription: "Changer le profil de l'agent",
|
||||
requiresConfirmation: true,
|
||||
availability: {
|
||||
status: "unavailable",
|
||||
reason: "La selection de profil est livree par le ticket #164",
|
||||
},
|
||||
availability: { status: "available" },
|
||||
source: "native",
|
||||
native: "profile",
|
||||
},
|
||||
@ -939,6 +936,21 @@ export class MockAgentGateway implements AgentGateway {
|
||||
},
|
||||
};
|
||||
}
|
||||
if (command.native === "profile") {
|
||||
if (!options.sessionId) {
|
||||
throw {
|
||||
code: "INVALID",
|
||||
message: "/profile requires a current session id",
|
||||
} as GatewayError;
|
||||
}
|
||||
return {
|
||||
command: structuredClone(command),
|
||||
effect: {
|
||||
kind: "profileSwitch",
|
||||
sessionId: options.sessionId,
|
||||
},
|
||||
};
|
||||
}
|
||||
return {
|
||||
command: structuredClone(command),
|
||||
effect: {
|
||||
|
||||
Reference in New Issue
Block a user