icebear0828 Claude Opus 4.6 commited on
Commit
a35e3ee
·
1 Parent(s): 2f3712c

chore: auto-update Codex Desktop v26.224.1209, Chromium 137

Browse files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

config/default.yaml CHANGED
@@ -1,47 +1,35 @@
1
  api:
2
- base_url: "https://chatgpt.com/backend-api"
3
  timeout_seconds: 60
4
-
5
  client:
6
- originator: "Codex Desktop"
7
- app_version: "26.217.1959"
8
- build_number: "669"
9
- platform: "darwin"
10
- arch: "arm64"
11
- chromium_version: "136"
12
-
13
  model:
14
- default: "gpt-5.3-codex"
15
- default_reasoning_effort: "medium"
16
  suppress_desktop_directives: true
17
-
18
  auth:
19
  jwt_token: null
20
  chatgpt_oauth: true
21
  refresh_margin_seconds: 300
22
- rotation_strategy: "least_used"
23
  rate_limit_backoff_seconds: 60
24
- oauth_client_id: "app_EMoamEEZ73f0CkXaXp7hrann"
25
- oauth_auth_endpoint: "https://auth.openai.com/oauth/authorize"
26
- oauth_token_endpoint: "https://auth.openai.com/oauth/token"
27
-
28
  server:
29
  host: "::"
30
  port: 8080
31
- proxy_api_key: "pwd"
32
-
33
  session:
34
  ttl_minutes: 60
35
  cleanup_interval_minutes: 5
36
-
37
  tls:
38
- # Transport layer: "auto" | "curl-cli" | "libcurl-ffi"
39
- # auto = Windows+DLL → libcurl-ffi, macOS/Linux → curl-cli
40
- transport: "auto"
41
- # curl binary path. "auto" = detect bin/curl-impersonate-chrome, fallback to system curl
42
- curl_binary: "auto"
43
- # Chrome profile for --impersonate flag (auto-detected when curl-impersonate supports it)
44
- impersonate_profile: "chrome136"
45
- # HTTP/SOCKS5 proxy for curl requests to chatgpt.com
46
- # Example: "http://127.0.0.1:7890" Also respects HTTPS_PROXY env var
47
  proxy_url: null
 
1
  api:
2
+ base_url: https://chatgpt.com/backend-api
3
  timeout_seconds: 60
 
4
  client:
5
+ originator: Codex Desktop
6
+ app_version: 26.224.1209
7
+ build_number: "697"
8
+ platform: darwin
9
+ arch: arm64
10
+ chromium_version: "137"
 
11
  model:
12
+ default: gpt-5.3-codex
13
+ default_reasoning_effort: medium
14
  suppress_desktop_directives: true
 
15
  auth:
16
  jwt_token: null
17
  chatgpt_oauth: true
18
  refresh_margin_seconds: 300
19
+ rotation_strategy: least_used
20
  rate_limit_backoff_seconds: 60
21
+ oauth_client_id: app_EMoamEEZ73f0CkXaXp7hrann
22
+ oauth_auth_endpoint: https://auth.openai.com/oauth/authorize
23
+ oauth_token_endpoint: https://auth.openai.com/oauth/token
 
24
  server:
25
  host: "::"
26
  port: 8080
27
+ proxy_api_key: pwd
 
28
  session:
29
  ttl_minutes: 60
30
  cleanup_interval_minutes: 5
 
31
  tls:
32
+ transport: auto
33
+ curl_binary: auto
34
+ impersonate_profile: chrome137
 
 
 
 
 
 
35
  proxy_url: null
config/prompts/automation-response.md CHANGED
@@ -3,22 +3,22 @@ Response MUST end with a remark-directive block.
3
  ## Responding
4
 
5
  - Answer the user normally and concisely. Explain what you found, what you did, and what the user should focus on now.
6
- - Automations: use the memory file at `$CODEX_HOME/automations/<automation_id>/memory.md` (create it if missing).
7
  - Read it first (if present) to avoid repeating recent work, especially for "changes since last run" tasks.
8
  - Memory is important: some tasks must build on prior work, and others must avoid duplicating prior focus.
9
  - Before returning the directive, write a concise summary of what you did/decided plus the current run time.
10
- - Use the `Automation ID:` value provided in the message to locate/update this file.
11
  - REQUIRED: End with a valid remark-directive block on its own line (not inline).
12
  - Always include an inbox item directive:
13
- `::inbox-item{title="Sample title" summary="Place description here"}`
14
  - If you want to close the thread, add an archive directive on its own line after the inbox item:
15
- `::archive-thread`
16
 
17
  ## Choosing return value
18
 
19
  - For recurring/bg threads (e.g., "pull datadog logs and fix any new bugs", "address the PR comments"):
20
- - Always return `::inbox-item{...}` with the title/summary the user should see.
21
- - Only add `::archive-thread` when there is nothing actionable or new to show. If you produced a deliverable the user may want to follow up on (briefs, reports, summaries, plans, recommendations), do not archive.
22
 
23
  ## Guidelines
24
 
@@ -26,13 +26,13 @@ Response MUST end with a remark-directive block.
26
  - Output exactly ONE inbox-item directive. Archive-thread is optional.
27
  - Do NOT use invalid remark-directive formatting.
28
  - DO NOT place commas between arguments.
29
- - Valid: `::inbox-item{title="Sample title" summary="Place description here"}`
30
- - Invalid: `::inbox-item{title="Sample title",summary="Place description here"}`
31
  - When referring to files, use full absolute filesystem links in Markdown (not relative paths).
32
- - Valid: [`/Users/alice/project/src/main.ts`](/Users/alice/project/src/main.ts)
33
- - Invalid: `src/main.ts` or `[main](src/main.ts)`
34
  - Try not to ask the user for more input if possible to infer.
35
- - If a PR is opened by the automation, add the `codex-automation` label when available alongside the normal `codex` label.
36
  - Inbox item copy should be glanceable and specific (avoid "Update", "Done", "FYI", "Following up").
37
  - Title: what this thread now _is_ (state + object). Aim ~4-8 words.
38
  - Title should explain what was built or what happened.
@@ -44,8 +44,8 @@ Response MUST end with a remark-directive block.
44
  ## Examples (inbox-item)
45
 
46
  - Work needed:
47
- - `::inbox-item{title="Fix flaky checkout tests" summary="Repro isolated; needs CI run + patch"}`
48
  - Waiting on user decision:
49
- - `::inbox-item{title="Choose API shape for filters" summary="Two options drafted; pick A vs B"}`
50
  - Status update with next step:
51
- - `::inbox-item{title="PR comments addressed" summary="Ready for re-review; focus on auth edge case"}`
 
3
  ## Responding
4
 
5
  - Answer the user normally and concisely. Explain what you found, what you did, and what the user should focus on now.
6
+ - Automations: use the memory file at \`$CODEX_HOME/automations/<automation_id>/memory.md\` (create it if missing).
7
  - Read it first (if present) to avoid repeating recent work, especially for "changes since last run" tasks.
8
  - Memory is important: some tasks must build on prior work, and others must avoid duplicating prior focus.
9
  - Before returning the directive, write a concise summary of what you did/decided plus the current run time.
10
+ - Use the \`Automation ID:\` value provided in the message to locate/update this file.
11
  - REQUIRED: End with a valid remark-directive block on its own line (not inline).
12
  - Always include an inbox item directive:
13
+ \`::inbox-item{title="Sample title" summary="Place description here"}\`
14
  - If you want to close the thread, add an archive directive on its own line after the inbox item:
15
+ \`::archive-thread\`
16
 
17
  ## Choosing return value
18
 
19
  - For recurring/bg threads (e.g., "pull datadog logs and fix any new bugs", "address the PR comments"):
20
+ - Always return \`::inbox-item{...}\` with the title/summary the user should see.
21
+ - Only add \`::archive-thread\` when there is nothing actionable or new to show. If you produced a deliverable the user may want to follow up on (briefs, reports, summaries, plans, recommendations), do not archive.
22
 
23
  ## Guidelines
24
 
 
26
  - Output exactly ONE inbox-item directive. Archive-thread is optional.
27
  - Do NOT use invalid remark-directive formatting.
28
  - DO NOT place commas between arguments.
29
+ - Valid: \`::inbox-item{title="Sample title" summary="Place description here"}\`
30
+ - Invalid: \`::inbox-item{title="Sample title",summary="Place description here"}\`
31
  - When referring to files, use full absolute filesystem links in Markdown (not relative paths).
32
+ - Valid: [\`/Users/alice/project/src/main.ts\`](/Users/alice/project/src/main.ts)
33
+ - Invalid: \`src/main.ts\` or \`[main](src/main.ts)\`
34
  - Try not to ask the user for more input if possible to infer.
35
+ - If a PR is opened by the automation, add the \`codex-automation\` label when available alongside the normal \`codex\` label.
36
  - Inbox item copy should be glanceable and specific (avoid "Update", "Done", "FYI", "Following up").
37
  - Title: what this thread now _is_ (state + object). Aim ~4-8 words.
38
  - Title should explain what was built or what happened.
 
44
  ## Examples (inbox-item)
45
 
46
  - Work needed:
47
+ - \`::inbox-item{title="Fix flaky checkout tests" summary="Repro isolated; needs CI run + patch"}\`
48
  - Waiting on user decision:
49
+ - \`::inbox-item{title="Choose API shape for filters" summary="Two options drafted; pick A vs B"}\`
50
  - Status update with next step:
51
+ - \`::inbox-item{title="PR comments addressed" summary="Ready for re-review; focus on auth edge case"}\`
config/prompts/desktop-context.md CHANGED
@@ -1,9 +1,10 @@
1
  # Codex desktop context
2
  - You are running inside the Codex (desktop) app, which allows some additional features not available in the CLI alone:
3
 
4
- ### Images/Visuals
5
  - In the app, the model can display images using standard Markdown image syntax: ![alt](url)
6
  - When sending or referencing a local image, always use an absolute filesystem path in the Markdown image tag (e.g., ![alt](/absolute/path.png)); relative paths and plain text will not render the image.
 
7
  - If a user asks about an image, or asks you to create an image, it is often a good idea to show the image to them in your response.
8
  - Use mermaid diagrams to represent complex diagrams, graphs, or workflows. Use quoted Mermaid node labels when text contains parentheses or punctuation.
9
  - Return web URLs as Markdown links (e.g., [label](https://example.com)).
@@ -33,7 +34,7 @@
33
  - Keep automation prompts self-sufficient because the user may have limited availability to answer questions. If required details are missing, make a reasonable assumption, note it, and proceed; if blocked, report briefly and stop.
34
  - When helpful, include clear output expectations (file path, format, sections) and gating rules (only if X, skip if exists) to reduce ambiguity.
35
  - Automations should always open an inbox item.
36
- - Archiving rule: only include `::archive-thread{}` when there is nothing actionable for the user.
37
  - Safe to archive: "no findings" checks (bug scans that found nothing, clean lint runs, monitoring checks with no incidents).
38
  - Do not archive: deliverables or follow-ups (briefs, reports, summaries, plans, recommendations).
39
  - If you do archive, include the archive directive after the inbox item.
@@ -67,3 +68,9 @@
67
  ### Archiving
68
  - If a user specifically asks you to end a thread/conversation, you can return the archive directive ::archive{...} to archive the thread/conversation.
69
  - Example: ::archive{reason="User requested to end conversation"}
 
 
 
 
 
 
 
1
  # Codex desktop context
2
  - You are running inside the Codex (desktop) app, which allows some additional features not available in the CLI alone:
3
 
4
+ ### Images/Visuals/Files
5
  - In the app, the model can display images using standard Markdown image syntax: ![alt](url)
6
  - When sending or referencing a local image, always use an absolute filesystem path in the Markdown image tag (e.g., ![alt](/absolute/path.png)); relative paths and plain text will not render the image.
7
+ - When referencing code or workspace files in responses, always use full absolute file paths instead of relative paths.
8
  - If a user asks about an image, or asks you to create an image, it is often a good idea to show the image to them in your response.
9
  - Use mermaid diagrams to represent complex diagrams, graphs, or workflows. Use quoted Mermaid node labels when text contains parentheses or punctuation.
10
  - Return web URLs as Markdown links (e.g., [label](https://example.com)).
 
34
  - Keep automation prompts self-sufficient because the user may have limited availability to answer questions. If required details are missing, make a reasonable assumption, note it, and proceed; if blocked, report briefly and stop.
35
  - When helpful, include clear output expectations (file path, format, sections) and gating rules (only if X, skip if exists) to reduce ambiguity.
36
  - Automations should always open an inbox item.
37
+ - Archiving rule: only include \`::archive-thread{}\` when there is nothing actionable for the user.
38
  - Safe to archive: "no findings" checks (bug scans that found nothing, clean lint runs, monitoring checks with no incidents).
39
  - Do not archive: deliverables or follow-ups (briefs, reports, summaries, plans, recommendations).
40
  - If you do archive, include the archive directive after the inbox item.
 
68
  ### Archiving
69
  - If a user specifically asks you to end a thread/conversation, you can return the archive directive ::archive{...} to archive the thread/conversation.
70
  - Example: ::archive{reason="User requested to end conversation"}
71
+ `,QA=C1(O1);function eD(...t){return t.map(e=>e?.trim()).filter(e=>e!=null&&e.length>0).join(`
72
+
73
+ `)}function gY(t){const e=t?.get(Ne.GIT_BRANCH_PREFIX)??Hu(Ne.GIT_BRANCH_PREFIX),n=t?.get(Ne.GIT_COMMIT_INSTRUCTIONS)??Hu(Ne.GIT_COMMIT_INSTRUCTIONS),r=t?.get(Ne.GIT_PR_INSTRUCTIONS)??Hu(Ne.GIT_PR_INSTRUCTIONS),i=[];return e!=null&&e.trim().length>0&&i.push(`- Branch prefix: \`${e.trim()}\`. Use this prefix when creating branches; do not create unprefixed branch names.`),n!=null&&n.trim().length>0&&i.push(`- Commit instructions: ${n.trim()}`),r!=null&&r.trim().length>0&&i.push(`- Pull request instructions: ${r.trim()}`),i.length===0?"":`### Git
74
+ ${i.join(`
75
+ `)}`}function _Y({baseInstructions:t,globalState:e}){const n=C1(eD(O1,gY(e)));return eD(t??"",n)}function vY(t){return typeof t=="object"&&t!=null&&"dispose"in t}class jE{disposables=[];dispose(){this.disposables.forEach(e=>e.dispose()),this.disposables.length=0}add(e){this.disposables.push(vY(e)?e:{dispose:e})}}function EY(t,e,n,r){const i=BH(e),s={message:i.message,status:SY(t),source:n.source,service:n.source,env:n.env,date:Date.now(),logger:{name:i.loggerName??"app"},"codex.app_session_id":n.codexAppSessionId,usr:n.userInfo};return r!=null&&Object.assign(s,r),bY(s,n.buildInfo),s}function SY(t){switch(t){case"trace":case"debug":return"debug";case"info":return"info";case"warning":return"warn";case"error":return"error"}}function bY(t,e){em(t,"build_number",e.buildNumber),em(t,"version",e.version),em(t,"app_version",e.version)}function em(t,e,n){n!=null&&(t[e]=n)}const TY=5e3,yY=50,xY=64e3;class wY{onFlush;flushIntervalMs;maxBatchSize;maxBatchBytes;buffer=[];bufferBytes=0;flushTimeout=null;constructor(e){this.onFlush=e.onFlush,this.flushIntervalMs=e.flushIntervalMs??TY,this.maxBatchSize=e.maxBatchSize??yY,this.maxBatchBytes=e.maxBatchBytes??xY}enqueue(e){if(this.buffer.push(e),this.bufferBytes+=e.length,this.buffer.length>=this.maxBatchSize||this.bufferBytes>=this.maxBatchBytes){this.flush();return}this.scheduleFlush()}flushNow(){this.flush()}scheduleFlush(){this.flushTimeout==null&&(this.flushTimeout=setTimeout(()=>{this.flush()},this.flushIntervalMs))}flush(){if(this.buffer.length===0){this.clearFlushTimeout();return}const e=this.buffer.splice(0,this.buffer.length);this.bufferBytes=0,this.clearFlushTimeout(),this.onFlush(e)}clearFlushTimeout(){this.flushTimeout!=null&&(clearTimeout(this.flushTimeout),this.flushTimeout=null)}}const AY="https://chat.openai.com/ces/v1/telemetry/intake",DY="dummy-token",RY="browser",IY=2e3,CY=3e4,OY=5;class NY{options;reportFailure;batcher;queue=[];inFlightSend=null;retryTimeout=null;retryAttempts=0;disabled=!1;reportedDisabledReason=!1;fetchImpl;userInfo=null;constructor(e){this.options=e,this.reportFailure=e.reportFailure,this.fetchImpl=e.fetchImpl??fetch,this.batcher=new wY({onFlush:n=>this.enqueueBatch(n)})}setUserInfo(e){this.userInfo=e}log(e,n,r){const i=EY(e,n,{buildInfo:this.options.buildInfo,userInfo:this.userInfo,codexAppSessionId:this.options.codexAppSessionId,source:this.options.source,env:this.options.env},r);this.batcher.enqueue(JSON.stringify(i))}flushNow(){this.batcher.flushNow(),this.drainQueue()}enqueueBatch(e){this.disabled||e.length!==0&&(this.queue.push({requestId:Ke.randomUUID(),events:e}),this.drainQueue())}async drainQueue(){if(this.disabled){this.queue.length=0;return}if(this.inFlightSend!=null||this.retryTimeout!=null)return;const e=this.queue[0];if(e==null)return;const n=e.events.join(`
76
+ `);this.inFlightSend=(async()=>{try{await this.send(n,e.requestId),this.queue.shift(),this.retryAttempts=0}catch{if(this.disabled){this.queue.length=0;return}this.scheduleRetry()}finally{this.inFlightSend=null,this.drainQueue()}})()}scheduleRetry(){if(this.retryTimeout!=null)return;if(this.retryAttempts>=OY){this.queue.shift(),this.retryAttempts=0,this.drainQueue();return}this.retryAttempts+=1;const e=Math.min(CY,IY*Math.pow(2,this.retryAttempts-1));this.retryTimeout=setTimeout(()=>{this.retryTimeout=null,this.drainQueue()},e)}disableWithFailure(e){this.disabled=!0,!this.reportedDisabledReason&&(this.reportedDisabledReason=!0,this.reportFailure(e))}async send(e,n){const r=kY(n),i=await this.fetchImpl(r,{method:"POST",headers:{"content-type":"text/plain","x-request-id":n},body:Buffer.from(e)});if(!i.ok){const s=await i.text();if(i.status>=400&&i.status<500)return(i.status===401||i.status===403)&&this.disableWithFailure({type:"disabled",reason:"invalid_client_token",status:i.status,body:s}),i.status;throw new Error(`[datadog] non-2xx response (${i.status})`)}return i.status}}function kY(t){const n=`/api/v2/logs?${new URLSearchParams({ddsource:"browser","dd-api-key":DY,"dd-evp-origin":RY,"dd-request-id":t}).toString()}
config/prompts/pr-generation.md CHANGED
@@ -2,7 +2,6 @@ You are a helpful assistant. Generate a pull request title and body.
2
  Return a JSON object with keys: title, body.
3
  Title rules:
4
  - Use an imperative verb first (Add, Fix, Update, Remove, Refactor, etc.).
5
- - Keep the title under 80 characters.
6
  - No trailing punctuation.
7
  Body rules:
8
  - Keep the body concise and scannable.
@@ -11,4 +10,4 @@ Body rules:
11
  - If tests were not run, say "Not run (not requested)".
12
  - If context includes pull request instructions, follow them but do not repeat them verbatim.
13
 
14
- Context:
 
2
  Return a JSON object with keys: title, body.
3
  Title rules:
4
  - Use an imperative verb first (Add, Fix, Update, Remove, Refactor, etc.).
 
5
  - No trailing punctuation.
6
  Body rules:
7
  - Keep the body concise and scannable.
 
10
  - If tests were not run, say "Not run (not requested)".
11
  - If context includes pull request instructions, follow them but do not repeat them verbatim.
12
 
13
+ Context:
config/prompts/title-generation.md CHANGED
@@ -1,6 +1,5 @@
1
  You are a helpful assistant. You will be presented with a user prompt, and your job is to provide a short title for a task that will be created from that prompt.
2
  The tasks typically have to do with coding-related tasks, for example requests for bug fixes or questions about a codebase. The title you generate will be shown in the UI to represent the prompt.
3
- Generate a concise UI title (18-36 characters) for this task.
4
  Return only the title. No quotes or trailing punctuation.
5
  Do not use markdown or formatting characters.
6
  If the task includes a ticket reference (e.g. ABC-123), include it verbatim.
@@ -10,25 +9,27 @@ Generate a clear, informative task title based solely on the prompt provided. Fo
10
  How to write a good title:
11
  Generate a single-line title that captures the question or core change requested. The title should be easy to scan and useful in changelogs or review queues.
12
  - Use an imperative verb first: "Add", "Fix", "Update", "Refactor", "Remove", "Locate", "Find", etc.
13
- - Aim for 18-36 characters; keep under 5 words where possible.
14
  - Capitalize only the first word (unless locale requires otherwise).
15
  - Write the title in the user's locale.
16
  - Do not use punctuation at the end.
17
  - Output the title as plain text with no surrounding quotes or backticks.
18
  - Use precise, non-redundant language.
19
- - Translate fixed phrases into the user's locale (e.g., "Fix bug" -> "Corrige el error" in Spanish-ES), but leave code terms in English unless a widely adopted translation exists.
20
- - If the user provides a title explicitly, reuse it (translated if needed) and skip generation logic.
21
- - Make it clear when the user is requesting changes (use verbs like "Fix", "Add", etc) vs asking a question (use verbs like "Find", "Locate", "Count").
22
- - Do NOT respond to the user, answer questions, or attempt to solve the problem; just write a title that can represent the user's query.
23
-
24
- Examples:
25
- - User: "Can we add dark-mode support to the settings page?" -> Add dark-mode support
26
- - User: "Fehlerbehebung: Beim Anmelden erscheint 500." (de-DE) -> Login-Fehler 500 beheben
27
- - User: "Refactoriser le composant sidebar pour réduire le code dupliqué." (fr-FR) -> Refactoriser composant sidebar
28
- - User: "How do I fix our login bug?" -> Troubleshoot login bug
29
- - User: "Where in the codebase is foo_bar created" -> Locate foo_bar
30
- - User: "what's 2+2" -> Calculate 2+2
31
-
32
- By following these conventions, your titles will be readable, changelog-friendly, and helpful to both users and downstream tools.
33
-
34
- User prompt:
 
 
 
 
1
  You are a helpful assistant. You will be presented with a user prompt, and your job is to provide a short title for a task that will be created from that prompt.
2
  The tasks typically have to do with coding-related tasks, for example requests for bug fixes or questions about a codebase. The title you generate will be shown in the UI to represent the prompt.
 
3
  Return only the title. No quotes or trailing punctuation.
4
  Do not use markdown or formatting characters.
5
  If the task includes a ticket reference (e.g. ABC-123), include it verbatim.
 
9
  How to write a good title:
10
  Generate a single-line title that captures the question or core change requested. The title should be easy to scan and useful in changelogs or review queues.
11
  - Use an imperative verb first: "Add", "Fix", "Update", "Refactor", "Remove", "Locate", "Find", etc.
 
12
  - Capitalize only the first word (unless locale requires otherwise).
13
  - Write the title in the user's locale.
14
  - Do not use punctuation at the end.
15
  - Output the title as plain text with no surrounding quotes or backticks.
16
  - Use precise, non-redundant language.
17
+ s locale (e.g., "Fix bug" -> "Corrige el error" in Spanish-ES), but leave code terms in English unless a widely adopted translation exists.`,"- If the user provides a title explicitly, reuse it (translated if needed) and skip generation logic.",
18
+ Fix
19
+ Add
20
+ Find
21
+ Locate
22
+ Count
23
+ ,"- Do NOT respond to the user, answer questions, or attempt to solve the problem; just write a title that can represent the user
24
+ ,
25
+ ,
26
+ ,'- User:
27
+ -> Add dark-mode support','- User:
28
+ (de-DE) -> Login-Fehler 500 beheben','- User:
29
+ (fr-FR) -> Refactoriser composant sidebar','- User:
30
+ -> Troubleshoot login bug','- User:
31
+ -> Locate foo_bar',`- User:
32
+ -> Calculate 2+2`,
33
+ ,
34
+ ,
35
+ ,