fix(cli): ensure /clear resets context and exclude system messages from approximateTokenUsed count (#443)

https://github.com/user-attachments/assets/58b8f261-a359-4cd8-8c84-90d8d91a5592
This commit is contained in:
Abdelrhman Kamal Mahmoud Ali Slim
2025-04-20 08:52:14 -07:00
committed by GitHub
parent 6d6ca454cd
commit 425430debb
2 changed files with 25 additions and 9 deletions

View File

@@ -345,15 +345,27 @@ export default function TerminalChatInput({
// Emit a system message to confirm the clear action. We *append*
// it so Ink's <Static> treats it as new output and actually renders it.
setItems((prev) => [
...prev,
{
id: `clear-${Date.now()}`,
type: "message",
role: "system",
content: [{ type: "input_text", text: "Context cleared" }],
},
]);
setItems((prev) => {
const filteredOldItems = prev.filter((item) => {
if (
item.type === "message" &&
(item.role === "user" || item.role === "assistant")
) {
return false;
}
return true;
});
return [
...filteredOldItems,
{
id: `clear-${Date.now()}`,
type: "message",
role: "system",
content: [{ type: "input_text", text: "Terminal cleared" }],
},
];
});
return;
} else if (inputValue === "/clearhistory") {