feat(codex): /personality slash + in-session app-server params (#1265)

* feat(codex): support /personality via in-session override

Intercept /personality in the Codex slash layer, keep the value in CLI
memory only, and forward it on thread/turn start when set. Unset means
omit the field so Codex config/thread defaults apply—no Hub DB or web UI.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(codex): refuse fake /personality clear (sticky thread setting)

turn/start.personality sticks for later turns; omitting the field does not
restore config.toml. Drop default|auto|clear success paths and require an
explicit friendly|pragmatic|none instead.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
SSU-WEI HUANG
2026-08-01 23:26:32 +08:00
committed by GitHub
co-authored by Cursor
parent 0537ddf84a
commit bbe99f5c4c
7 changed files with 136 additions and 8 deletions
+5
View File
@@ -11,6 +11,9 @@ import type { CodexCollaborationMode, CodexPermissionMode } from '@hapi/protocol
export type PermissionMode = CodexPermissionMode;
/** Codex response style. Omit from mode to inherit config.toml / thread default. */
export type CodexPersonality = 'friendly' | 'pragmatic' | 'none';
export interface EnhancedMode {
permissionMode: PermissionMode;
model?: string;
@@ -22,6 +25,8 @@ export interface EnhancedMode {
* `'fast'` enables Fast mode, `null` selects the standard tier explicitly.
*/
serviceTier?: string | null;
/** When set, forwarded to app-server thread/turn params. */
personality?: CodexPersonality;
}
interface LoopOptions {