feat: reuse executor sessions within Codex tasks
This commit is contained in:
@@ -77,10 +77,14 @@ agent-workflow decide --run <run-id> --input decision.json
|
||||
Start a new workflow run. Requires a clean working tree.
|
||||
|
||||
```bash
|
||||
agent-workflow start --plan <plan.json|-> --executor <reasonix|claude|agy> [--vcs <git|svn|none>] [--max-cycles <n>]
|
||||
agent-workflow start --plan <plan.json|-> --executor <reasonix|claude|agy> [--vcs <git|svn|none>] [--max-cycles <n>] [--new-task]
|
||||
```
|
||||
|
||||
- `--vcs` - Explicitly specify VCS kind (`git`, `svn`, or `none`). If omitted, auto-detects from the working directory. If neither Git nor SVN is detected, it automatically falls back to `none` (snapshot mode).
|
||||
- When `CODEX_THREAD_ID` is available, runs in the same Codex thread and repository share a current task. Each executor is created lazily on first use and its reliable session handle is reused by later plans in that task.
|
||||
- `--new-task` creates a new task boundary and clears all three lazy executor bindings. Use it only when the conversation has moved to a materially different task.
|
||||
- Claude, Reasonix, and Agy bindings remain separate. Selecting another executor does not switch an active run; it starts or resumes that executor only in a later run after the repository is clean.
|
||||
- Agy sessions without a captured conversation ID are not shared because `--continue` cannot guarantee which conversation will be selected.
|
||||
- Git and SVN working copies are automatically detected when `--vcs` is not provided.
|
||||
- SVN working copies must be in a clean, consistent state (no mixed revisions, switched paths, externals, or conflicts).
|
||||
- None (snapshot) mode skips clean checks, capturing the directory state of the working directory and storing it in the run directory.
|
||||
@@ -220,6 +224,9 @@ Create `agent-workflow.json` in your repository root:
|
||||
|
||||
- `AGENT_WORKFLOW_DIR` — Override state root (default: `~/.agent-workflow/workflows`)
|
||||
- `AGENT_WORKFLOW_META_STDOUT` — Emit metadata to stdout instead of stderr (set to `1`)
|
||||
- `CODEX_THREAD_ID` — Supplied by Codex. Enables task-level executor session reuse for the current Codex thread and repository. Without it, each workflow run keeps the previous standalone behavior.
|
||||
|
||||
Task bindings are stored under the workflow state root, outside the target repository. Before reuse, the host checks the owning Codex thread, repository, task, executor kind, and persisted executor session. A missing or mismatched session blocks reuse instead of silently selecting a recent session. Start with `--new-task` only when a fresh task is intended.
|
||||
|
||||
The Agy adapter runs its non-interactive implementation sessions with
|
||||
`--dangerously-skip-permissions`. This is required because Agy cannot prompt for
|
||||
|
||||
Reference in New Issue
Block a user