mirror of
https://github.com/murashit/codex-panel.git
synced 2026-07-22 06:57:10 +00:00
Show unsupported goal notices
This commit is contained in:
parent
9c04b5723c
commit
31037bbe18
3 changed files with 32 additions and 4 deletions
|
|
@ -49,6 +49,7 @@ Codex Panel supports the app-server-backed Codex workflows that fit a persistent
|
|||
- Send steering messages during a running turn, or interrupt when the composer is empty.
|
||||
- Respond to command, file, and permission approval requests.
|
||||
- Stream assistant messages, reasoning, commands, tool calls, hooks, file changes, and agent activity.
|
||||
- Codex goal management is not supported. Incoming goal notifications are shown only as brief system notices.
|
||||
- Inspect file changes and roll back the latest turn without reverting local files.
|
||||
- Inspect context usage, usage limits, connection diagnostics, MCP server inventory, and effective config (`/status`, `/doctor`, `/mcp`).
|
||||
- Inspect and manage discovered Codex hooks from Codex Panel settings.
|
||||
|
|
|
|||
|
|
@ -259,8 +259,10 @@ export class PanelController {
|
|||
this.actions.refreshThreads();
|
||||
} else if (method === "thread/settings/updated") {
|
||||
this.applyThreadSettings(params.threadSettings);
|
||||
} else if (method === "thread/goal/updated" || method === "thread/goal/cleared") {
|
||||
return;
|
||||
} else if (method === "thread/goal/updated") {
|
||||
this.addSystemMessage(`Thread goal updated: status ${params.goal.status}. Codex Panel does not support goals.`);
|
||||
} else if (method === "thread/goal/cleared") {
|
||||
this.addSystemMessage("Thread goal cleared. Codex Panel does not support goals.");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1064,7 +1064,7 @@ describe("PanelController", () => {
|
|||
expect(state.activeServiceTierOverride).toBe(true);
|
||||
});
|
||||
|
||||
it("keeps goal notifications out of the message stream", () => {
|
||||
it("shows unsupported goal update notifications as system messages", () => {
|
||||
const state = createPanelState();
|
||||
state.activeThreadId = "thread-active";
|
||||
const controller = controllerForState(state);
|
||||
|
|
@ -1087,7 +1087,32 @@ describe("PanelController", () => {
|
|||
},
|
||||
} satisfies Extract<ServerNotification, { method: "thread/goal/updated" }>);
|
||||
|
||||
expect(state.displayItems).toEqual([]);
|
||||
expect(state.displayItems).toMatchObject([
|
||||
{
|
||||
kind: "system",
|
||||
text: "Thread goal updated: status active. Codex Panel does not support goals.",
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
it("shows unsupported goal clear notifications as system messages", () => {
|
||||
const state = createPanelState();
|
||||
state.activeThreadId = "thread-active";
|
||||
const controller = controllerForState(state);
|
||||
|
||||
controller.handleNotification({
|
||||
method: "thread/goal/cleared",
|
||||
params: {
|
||||
threadId: "thread-active",
|
||||
},
|
||||
} satisfies Extract<ServerNotification, { method: "thread/goal/cleared" }>);
|
||||
|
||||
expect(state.displayItems).toMatchObject([
|
||||
{
|
||||
kind: "system",
|
||||
text: "Thread goal cleared. Codex Panel does not support goals.",
|
||||
},
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue