Skip to content

Latest commit

 

History

History
111 lines (100 loc) · 59.3 KB

codex-sessions.md

File metadata and controls

111 lines (100 loc) · 59.3 KB

Codex session measures

This page records measured Codex session tools and their limits. The section "Own-session closure" also records the closure measures of Claude Code. Each row gives the date of its measure, and the version of each tool that shows its version. A help entry or schema method shows an available interface. It does not prove that an interactive role session can use it.

Results

Need Claude Code tool Result Exact call or surface Observed output Version and date Limit
Send a message to another session SendMessage not measured codex queue --help Help described UUID or exact-name targets and --resume. Codex CLI 0.166.0, 2026-11-05 Syntax only. Acceptance, receipt, turn start, and reply were not measured. Idle, active, and retained recipients; UUID and exact-name targets; and sends with and without --resume were not tested. Unavailable targets, ambiguous names, failed identity reads, resume failures, complete discovery, pagination, and limits remain unmeasured.
List the sessions and read the own name ListAgents session list: not measured
own name: not measured
codex app-server generate-json-schema --out /tmp/tasker-664-measures/schema --experimental; local app-server thread/read for 01a1aa83-b520-77a1-9730-ec45693d5ca0 The ClientRequest schema had 179 distinct methods, including thread/list, thread/read, and thread/name/set. The read returned thread.id and thread.sessionId matching the queried ID, thread.name=orchestrator-m28, thread.source=cli, and thread.cwd=/home/codeguru/src/mine/tasker. Codex CLI, daemon, and app-server 0.166.0, 2026-11-05 Thread.sessionId is shared by threads in a session tree. The read identified the parent orchestrator, not this task subagent's pane or own name. Pagination and limits were not measured.
Run a job at a set time CronCreate create interface: no match found
creation operation: not measured
firing: not measured
ClientRequest schema from codex app-server generate-json-schema; native team tool list No schema method contained cron, schedule, automation, or job. The native team tool list had no scheduled-job create tool. Codex CLI 0.166.0; native team tool version not exposed; 2026-11-05 This discovery covered only the named schema and tool list. Job creation and firing were not measured. It does not show that no scheduling tool exists elsewhere.
List and delete such a job CronList, CronDelete list interface: no match found
delete interface: no match found
list operation: not measured
delete operation: not measured
ClientRequest schema from codex app-server generate-json-schema; native team tool list No schema method contained cron, schedule, automation, or job. The native team tool list had no scheduled-job list or delete tool. Codex CLI 0.166.0; native team tool version not exposed; 2026-11-05 This discovery covered only the named schema and tool list. Listing, deletion, and job firing were not measured. It does not show that no scheduling tool exists elsewhere.
Start a subagent, for example a review agent The Agent tool measured match collaboration.spawn_agent({task_name:"codeguru42_tasker_664",fork_turns:"none",message:<ticket prompt>}) The call returned /root/codeguru42_tasker_664. Native team tool version not exposed; 2026-11-05 The ticket prompt body was not included in the fact-test report. This observation does not prove that a Herdr agent or independent role session started.
Name a subagent, and restart it by a message SendMessage name: measured match
message restart: measured match
collaboration.send_message
collaboration.followup_task to the returned target
The message reached the target and the recipient acted.
The follow-up resumed the target after an interim final answer.
Native team tool version not exposed; 2026-11-05 This measures native team addressing only. It does not prove independent role-session messaging, native exact-name lookup, or a Herdr start.
This measures native team restart only. It does not prove independent role-session restart.
Get the final report of a subagent The hand-back of a subagent measured match collaboration.wait_agent The parent received reports from the target. Native team tool version not exposed; 2026-11-05 This measures report delivery to the parent through the native team route only.
Get a report when a background command ends run_in_background not measured exec_command of sleep 2; later write_stdin exec_command returned a session ID and no pushed completion report. write_stdin later returned exit 0. execution tool version not exposed; 2026-11-05 Polling was observed. A pushed report remains unmeasured.
Keep notes across sessions The memory folder not measured Available native team tool descriptions inspected: collaboration.spawn_agent, collaboration.send_message, collaboration.followup_task, and collaboration.wait_agent; write test not run The memory rule barred a write test. No persistent-notes result was observed. Native team tool version not exposed; 2026-11-05 The supplied report gives no description text or result about a persistent notes interface. The memory rule bars a write test.
Run a skill of the repo /session-review not measured /session-review candidate; not run No native skill invocation was measured. repo-skill version not exposed; 2026-11-05 The task-subagent limit in docs/dev/limits.md bars this skill because it can delete memory notes.
Run an installed skill The Skill tool not measured Available skill catalog and ALL_TOOLS.filter(x => /skill/i.test(x.name)) on 2026-11-05 The available skill catalog listed simple-english. The native tool-name inventory returned an empty list. Its tool version was not exposed. This task subagent loaded simple-english from its SKILL.md as instructions. No native Skill call ran. available skill catalog and native tool-name inventory versions not exposed; 2026-11-05 Loading skill instructions does not measure a native Skill tool invocation.
Name a session at its start -n <name> not measured codex --help; app-server schema inspection codex --help listed neither -n nor a native rename command was exercised. The schema included thread/name/set. Codex CLI and app-server 0.166.0; 2026-11-05 Herdr interactive start, native rename, same-UUID read-back, exact-name lookup, automatic Herdr binding, and replacement binding were not measured. Expected planner-<slug> and orchestrator-<slug> names remain unmeasured. Timing before creation, after creation, before the first prompt, and after the first turn remains unresolved.
Give the model, the effort and the first prompt at the start --model
--effort
The last argument
model: not measured
effort: not measured
first prompt: not measured
codex --help entries --model and --effort; [PROMPT] form; interactive launch not run Model: --model listed. Effort: help did not list --effort. First prompt: interactive launch not run. The unrun interactive candidate was codex -C /tmp/tasker-664-measures [PROMPT]; the rejected Herdr test-agent start left all three results unmeasured. Codex CLI 0.166.0; 2026-11-05 Interactive model and effort, including max, and first-prompt behavior were not measured.
Permit the tasker commands .claude/settings.json not measured codex --help entries --approve-for-me, --sandbox, and --ask-for-approval; interactive permission test not run No effective permission mode was observed. Codex CLI 0.166.0; 2026-11-05 The rejected interactive setup left effective permission mode, reviewer, policy, and sandbox unmeasured.
Ask the user before a set of actions permissions.ask in $HOME/.claude/settings.json reviewer: not measured
policy: not measured
sandbox: not measured
interactive user prompt: not measured
codex --help entries --approve-for-me, --sandbox, and --ask-for-approval; interactive test not run The examined help flags were candidates only. The approved Herdr interactive start was withdrawn, so no effective permission mode, reviewer, policy, or sandbox was read. Codex CLI 0.166.0; 2026-11-05 The help candidates do not establish the effective interactive mode, reviewer, policy, or sandbox.
Hold the rules of the user for each session $HOME/.claude/CLAUDE.md not measured Unrun codex --help candidate: codex -C /tmp/tasker-664-measures [PROMPT]; rejected Herdr test-agent start User-rules behavior was not run. The candidate command alone would not prove the result. The rejected Herdr test-agent start left it unmeasured. Codex CLI 0.166.0; 2026-11-05 The approved test tab and pane were closed without a test agent start.
Read the context use of a session The status line not measured Unrun codex --help candidate: codex -C /tmp/tasker-664-measures [PROMPT]; rejected Herdr test-agent start Context-use status was not run. The candidate command alone would not prove the result. The rejected Herdr test-agent start left it unmeasured. Codex CLI 0.166.0; 2026-11-05 The approved test tab and pane were closed without a test agent start.
Read the title and the state of a session in herdr The Herdr session row Herdr title: measured match
Herdr state: measured match
UUID-to-pane/workspace: not measured
herdr agent get wT:p4
herdr agent get wT:p4
Shell context; app-server thread/read; herdr pane current --current; herdr integration status
The command exited 0 and returned agent="codex", agent_status="working", pane_id="wT:p4", tab_id="wT:t4", and workspace_id="wT"; the exact display title is below; no agent_session value was returned.
The returned agent object had agent_status="working" for pane wT:p4.
The shell supplied child CODEX_THREAD_ID=01a1aa8a-2f92-71e0-80ef-a780137dbbd1 and parent CODEX_SESSION_ID=01a1aa83-b520-77a1-9730-ec45693d5ca0. Local app-server thread/read of the parent returned thread.name=orchestrator-m28, thread.source=cli, and thread.cwd=/home/codeguru/src/mine/tasker. herdr pane current --current used inherited context and returned wT:t4 and wT:p4; herdr integration status reported codex: not installed.
Herdr client and server 0.9.3; 2026-11-05
Herdr client and server 0.9.3; 2026-11-05
Codex CLI, daemon, and app-server 0.166.0; Herdr client and server 0.9.3; 2026-11-05
The terminal title is a display title, not an exact Codex session name.
This applies to existing pane wT:p4; it does not bind a Codex UUID to the pane.
The record had no agent_session UUID. The inherited context did not identify the child thread. Correct and stale inherited context, failed read, no match, and several matches did not run. Automatic workspace selection remains blocked until a measured current UUID joins to exactly one pane and its current workspace.

The supplied herdr agent get wT:p4 command was cd /tmp/tasker-664-measures || exit 1; herdr agent get wT:p4. Its terminal_title_stripped value was Bind orchestrator-m28 session | tasker. The command exited 0 and returned agent="codex", agent_status="working", pane_id="wT:p4", tab_id="wT:t4", and workspace_id="wT". It returned no agent_session value.

Own-session closure

This section records the measures of how a role session closes itself. The test sessions of the measures were started by a task subagent in new tabs. Each row gives one measure for one kind. The kind is claude (Claude Code) or codex (Codex). A sender is the session that closes itself. A recipient is the session that gets its message, and a replacement is a new session with the name of the sender.

Measure Kind Result Exact call or surface Observed output Version and date Limit
The own-session closure claude Tab: measured match
Process: measured match
The sender ran herdr tab close wB:t1F as its last tool call. Then herdr tab get wB:t1F and ps -o pid=,comm= -p 1556585 ran. herdr tab get gave tab_not_found and exit code 1. ps printed nothing and gave exit code 1. Before the close, ps gave 1556585 claude for the parent of the shell of the sender. Claude Code 2.1.323; herdr 0.9.3; 2026-11-13 The test used one idle recipient and a tab with one pane. A tab with more than one pane did not run.
The binding of a session to its pane claude measured match The environment of the sender, herdr pane current --current, and the row of herdr agent list with the name measure-a-claude. The environment gave HERDR_PANE_ID=wB:p24, HERDR_TAB_ID=wB:t1F and HERDR_WORKSPACE_ID=wB. herdr pane current --current gave the same pane and tab. The row of herdr agent list gave pane_id="wB:p24", tab_id="wB:t1F" and the session 5ca12b72-eacd-4cdb-9730-1b95f6d2fdaf. Claude Code 2.1.323; herdr 0.9.3; 2026-11-13 This covers only a session that herdr started in a new pane. It does not cover the stale inherited ids of an older role session.
The survival of a final report claude no match found grep -F 'FINAL E19A5F13314E7F74' on the one record of the sender, 5ca12b72-eacd-4cdb-9730-1b95f6d2fdaf.jsonl. The search found no line. The last line of the record was the RECEIPT message of the recipient. No later assistant line was in the record. Claude Code 2.1.323; herdr 0.9.3; 2026-11-13 The tab closed before Claude Code wrote the reply of the sender. The record of 2026-10-25 in handoff-operator.md shows the same order. A wait before the close did not run.
The observer read claude measured match The observer command of the recipient, then herdr tab get wB:t1F, herdr pane get wB:p24, herdr agent get wB:p24 and ps -o pid=,comm= -p 1556585. Read 1 of herdr pane get wB:p24 gave exit code 0. Read 2 gave pane_not_found and exit code 1. herdr tab get gave tab_not_found. The later reads gave tab_not_found, pane_not_found and agent_not_found, each with exit code 1, and ps printed nothing. Claude Code 2.1.323; herdr 0.9.3; 2026-11-13 The recipient was idle. A busy recipient, a blocked recipient and a wait at a permission prompt did not run.
The receipt claude measured match SendMessage from the recipient to measure-a-claude. The send result was success with msg_id db4d43b3-3949-4e16-9616-8c21aa6f877e. It said that the message was in the inbox of the session and not yet read. The record of the recipient held the line DELEGATION e19a5f13314e7f74 from measure-a-claude id pane wB:p24 tab wB:t1F pid 1556585 at 18:12:27 UTC. The record of the sender held the reply RECEIPT e19a5f13314e7f74 at 18:12:32 UTC. Claude Code 2.1.323; herdr 0.9.3; 2026-11-13 The DELEGATION message had an empty id, so the send used only the name. The receipt does not tell two sessions with the same name apart.
The replacement check claude no match found SendMessage of PING e19a5f13314e7f74 to measure-a-claude, herdr agent list and ListAgents. The replacement had pane wB:p25, tab wB:t1G, pid 1565594 and session f3601748-47c5-4735-b3f7-37385c6aa9cf. The recipient told it from the sender by its pane, tab and pid. The second run of the observer command gave pane_not_found and tab_not_found for wB:p24. herdr agent list and ListAgents each showed one session with the name measure-a-claude, the replacement. The PING reached the replacement, which showed it. Claude Code 2.1.323; herdr 0.9.3; 2026-11-13 The message used only the name, because the id was empty. A message with the id of the sender did not run.
The own-session closure codex not measured None The user declined the measure on 2026-11-13. 2026-11-13 No Codex test session ran.
The binding of a session to its pane codex not measured None The user declined the measure on 2026-11-13. 2026-11-13 No Codex test session ran.
The survival of a final report codex not measured None The user declined the measure on 2026-11-13. 2026-11-13 No Codex test session ran.
The observer read codex not measured None The user declined the measure on 2026-11-13. 2026-11-13 No Codex test session ran.
The receipt codex not measured None The user declined the measure on 2026-11-13. 2026-11-13 No Codex test session ran.
The replacement check codex not measured None The user declined the measure on 2026-11-13. 2026-11-13 No Codex test session ran.

Missing needs by role and procedure

Missing or unresolved need Affected role and current section
Interactive session start, naming, model, effort, first prompt, and Herdr binding Operator: Start a session; planner starts: The initial planner and the follow-up planner; role identity terms: docs/sessions.md.
Effective permission mode and approval reviewer, policy, and sandbox Operator: Start a session and A blocked session; task subagent command access: The command rules.
Independent messages, exact role address, complete discovery, receipt, and wake Operator and planner: The initial planner and the follow-up planner; orchestrator and task subagent: The prompt of a task subagent; role names: docs/sessions.md.
Scheduled-job create, fire, list, and delete Orchestrator: Schedule a job when a task subagent starts and Delete the job.
Review-subagent limits outside measured native-team scope Planner and ticket subagent: The ticket subagent and The review loop of a draft; orchestrator and task subagent: The prompt of a task subagent.
Pushed background-command completion report Task subagent: The command rules.
Repository skill, installed skill, and persistent notes Operator, planner, and orchestrator: Session review rounds; task subagent memory limit: docs/dev/limits.md.
Interactive user rules Operator, planner, and orchestrator: The start prompts.
Context use and automatic pane and workspace selection Operator: Start a session and A blocked session.
Claude Code: the survival of a final report after the own-session closure Operator: Stop a session.
Claude Code: a replacement check that tells a replacement from the sender Operator: Stop a session.
Codex: the own-session closure Operator: Stop a session; orchestrator, planner and operator: The close of a milestone.
Codex: the survival of a final report after the own-session closure Operator: Stop a session; orchestrator, planner and operator: The close of a milestone.
Codex: the observer read of a closure Operator: Stop a session; orchestrator, planner and operator: The close of a milestone.
Codex: a replacement check that tells a replacement from the sender Operator: Stop a session; orchestrator, planner and operator: The close of a milestone.

Not measured and unresolved

  • Queue acceptance, receipt, turn start, and reply remain unmeasured. codex queue --help proves syntax only. Recipient states, target forms, and --resume behavior were not exercised.
  • Queue behavior for unavailable targets, ambiguous names, failed identity reads, and resume failures remains unmeasured. Complete discovery, pagination, and limits remain unmeasured.
  • Scheduled-job firing remains unmeasured. Create, list, and delete interfaces were not found in the examined ClientRequest schema and native team tool list. This does not prove absence elsewhere.
  • The task subagent prompt body was not supplied with the fact-test report.
  • A pushed report after a background command ends remains unmeasured. Only polling was observed.
  • Persistent notes were not tested because the memory rule bars a write test. /session-review was not run because the task-subagent limit bars it due to its ability to delete memory notes. The available skill catalog listed simple-english. The native tool-name inventory ALL_TOOLS.filter(x => /skill/i.test(x.name)) returned an empty list on 2026-11-05; its tool version was not exposed. This scoped observation does not prove absent skill support everywhere. The task subagent loaded simple-english from its SKILL.md as instructions. No native Skill call ran.
  • Herdr interactive Codex start was rejected after one test tab was approved and closed. The test tab was wT:t5 and the test pane was wT:p5. No test-session UUID exists because no test agent started. Correct inherited context, stale inherited context, failed read, no match, and several matches did not run.
  • Session naming remains unresolved at Herdr start, native rename, same-UUID read-back, exact-name lookup, automatic Herdr binding, and replacement binding. Expected planner-<slug> and orchestrator-<slug> names remain unmeasured. No timing stage was measured.
  • Interactive model, effort, and first-prompt behavior remain unmeasured at launch and, where applicable, at the first model call. The effort limit includes max.
  • Effective interactive permission mode and approval reviewer, policy, and sandbox remain unmeasured. Help text does not establish these results.
  • Interactive use of user rules and context-use status remain unmeasured. The candidate command codex -C /tmp/tasker-664-measures [PROMPT] was not run; the Herdr test-agent start was rejected.
  • Automatic pane and workspace selection remains unresolved until a measured current UUID joins to exactly one pane and its current workspace. The inherited wT context is not such a match.
  • The own-session closure, the binding of a session to its pane and the survival of a final report of Codex are not measured. The observer read, the receipt and the replacement check of Codex are not measured. The user declined the measure on 2026-11-13.
  • The survival of a final report and the replacement check of Claude Code have no match. The tab closed before Claude Code wrote the last reply of the sender. A message by name reached the replacement.