Skip to content

docs: document recent plan and terminal updates#411

Open
poe-code-agent[bot] wants to merge 15 commits into
mainfrom
agent/update-documentation
Open

docs: document recent plan and terminal updates#411
poe-code-agent[bot] wants to merge 15 commits into
mainfrom
agent/update-documentation

Conversation

@poe-code-agent

@poe-code-agent poe-code-agent Bot commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Updated the existing agent/update-documentation PR for commits that landed on main during the last 24 hours.
  • Added documentation for poe-code update, package-manager selection, version-check behavior, and dry-run behavior.
  • Documented managed worktree execution, the poe-code worktree commands, CLI --worktree support, SDK worktree helpers, and package-level worktree APIs.
  • Updated package READMEs for Gaslight, Pipeline, Ralph, Experiment, Superintendent, Worktree, and ACP stop reasons.
  • Added a 2026-06-24 changelog entry covering update/worktree/Toolcraft Markdown/ACP/test changes.
  • Merged current main into the PR branch and kept the root README aligned with the trimmed main README while preserving the existing local skill documentation.

Reviewed commits

  • 7b0d2db8 feat: add update command
  • 57ef4133 test: speed up terminal-pilot process regression
  • 795d9609 feat: add toolcraft markdown html renderer
  • c385f9bb docs: document toolcraft design exports
  • 74468b5f feat: add managed worktree execution
  • 1cf19eb8 docs: clarify toolcraft design npm install
  • 9af55c26 fix: simplify worktree reconciliation surface
  • 99e66bee fix: accept acp end turn stop reason
  • 6b74ceeb docs: add toolcraft markdown highlighting plan
  • acd813db docs: expand toolcraft markdown highlighting plan
  • 72891399 docs: refine toolcraft highlighting plan constraints
  • 94d8297f feat: add toolcraft markdown syntax highlighting
  • 4b6e3533 fix: export toolcraft markdown token types
  • 1eafbd44 docs: document toolcraft markdown syntax highlighting
  • 41f0fb3b feat: expand toolcraft markdown highlighter languages
  • b3c8f65a docs: update toolcraft highlighter language list
  • f638bdb1 feat: broaden toolcraft markdown language highlighting
  • 73c762bf fix: trim root help output

Validation

  • git diff --check
  • npx prettier --check README.md docs/README_FULL.md docs/changelog/2026-06-24-update-worktrees-toolcraft.md packages/agent-gaslight/README.md packages/experiment-loop/README.md packages/pipeline/README.md packages/poe-acp-client/README.md packages/ralph/README.md packages/superintendent/README.md packages/worktree/README.md
  • npm run build
  • npm run lint:packages
  • npm run dev -- update --help
  • npm run dev -- worktree --help
  • npm run dev -- worktree reconcile --help
  • npm run dev -- gaslight --help | grep -A3 -B3 -- --worktree
  • npm run dev -- pipeline run --help | grep -A3 -B3 -- --worktree
  • npm run dev -- ralph run --help | grep -A3 -B3 -- --worktree
  • npm run dev -- experiment run --help | grep -A3 -B3 -- --worktree
  • npm run dev -- harness run --help | grep -A3 -B3 -- --worktree
  • pre-commit: npm run lint:eslint (warnings only: existing _worktree unused-var warnings in src/sdk/experiment.ts and src/sdk/gaslight.ts)
  • pre-commit: npm run lint:types
  • pre-push: npm run lint:packages
  • pre-push: npm test (800 files passed, 13,929 tests passed, 2 files / 7 tests skipped)
  • GitHub checks: guard, run, pr / test, e2e, and TruffleHog Advisory Scan passing. e2e was rerun once after a transient Kimi Internal server error; the rerun passed.

Notes

@poe-code-agent poe-code-agent Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requested changes: docs formatting check fails.

Comment thread docs/README_FULL.md Outdated
| Argument | Required | Description |
|----------|----------|-------------|
| `agent` | Yes | Agent to spawn: `claude-code`, `codex`, `opencode`, `kimi`, `goose` |
| `agent` | Yes | Agent to spawn, such as `claude-code`, `codex`, `cursor`, `opencode`, `kimi`, `goose`, or `poe-agent`. |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This changed doc no longer passes npx prettier --check docs/README_FULL.md (the base version does), so the repository format check regresses. Please run npx prettier --write docs/README_FULL.md.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 83260f253b

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread README.md Outdated
```bash
npx poe-code@latest wrap claude
# Also available: codex, opencode, kimi, goose
# Also available: codex, cursor, opencode, kimi, goose

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Stop listing Cursor as a wrap target

wrap cursor is advertised in the quickstart, but the wrap command requires the provider to define isolatedEnv and throws Agent "cursor" does not support isolated configuration wrappers. otherwise; src/providers/cursor.ts defines spawn/install support but no isolated wrapper config. Users following this line will get an immediate failure instead of a Poe-routed Cursor session.

Useful? React with 👍 / 👎.

Comment thread README.md Outdated

# Setup a specific agent
npx poe-code@latest configure codex # (or claude, opencode, kimi, goose)
npx poe-code@latest configure codex # (or claude, cursor, opencode, kimi, goose)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Don't document Cursor as configurable for Poe routing

cursor is documented here as a setup target, but the provider has requiresProvider: false and an empty manifest.configure, while the agent-spawn README says Cursor uses the authenticated cursor-agent account with no environment variables injected. Running poe-code configure cursor therefore only records a no-provider config and does not route Cursor API calls through Poe, so this quickstart points users at a setup path that cannot produce the advertised behavior.

Useful? React with 👍 / 👎.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1f3372480f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".


## Resuming sessions

Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remove Poe Agent from agent-spawn resume docs

This package does not have a declarative spawn/resume mapping for poe-agent: allSpawnConfigs only registers Claude Code, Codex, Cursor, OpenCode, Kimi, and Goose, and resolveCliConfig throws when an agent has no spawn config. Users importing @poe-code/agent-spawn and following this line with spawn("poe-agent", { resumeThreadId: ... }) will fail before launch; if the intent is to describe the root CLI/SDK custom Poe Agent handler, it should be documented separately from agent-spawn's declarative mappings.

Useful? React with 👍 / 👎.

Comment thread README.md Outdated

#### Run a plan with follow-up checks

Gaslight runs a Markdown plan, then resumes the same agent thread with configured follow-up prompts such as testing, simplification, and commit checks.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Don't advertise Gaslight follow-ups until threads are returned

When users follow this new quickstart after gaslight install, the scaffolded config has follow-ups, but the CLI wrapper passes @poe-code/agent-spawn.spawn into runGaslight; that low-level spawn returns only stdout/stderr/exitCode, while runGaslight throws before the first follow-up if result.threadId is missing. In that normal CLI-agent path the documented “resumes the same agent thread” flow stops after round 1 instead of running testing/commit checks.

Useful? React with 👍 / 👎.

@poe-code-agent
poe-code-agent Bot force-pushed the agent/update-documentation branch from 1f33724 to 948412b Compare June 15, 2026 00:41

@poe-code-agent poe-code-agent Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requested changes: Codex spawn docs list obsolete flags/model defaults.

Comment thread docs/README_FULL.md
| `openai/gpt-5.1-codex-mini` | |
| Model ID | Default |
| --------------------------- | ------- |
| `openai/gpt-5.2-codex` | Yes |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This default is out of sync with src/cli/constants.ts, where DEFAULT_CODEX_MODEL is openai/gpt-5.5. The table should also include the newer Codex model set shown later in this file.

Suggested change
| `openai/gpt-5.2-codex` | Yes |
| `openai/gpt-5.5` | Yes |

Comment thread docs/README_FULL.md
| `read` | Read-only, no modifications | `--permission-mode plan` | `-s read-only` | `--agent plan` | (none) | `GOOSE_MODE=chat` |
| Mode | Description | Claude Code Args | Codex Args | Cursor Args | OpenCode Args | Kimi Args | Goose |
| ------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------- | ---------------------------- | -------------- | ------------- | -------------------------- |
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex yolo no longer maps to -s danger-full-access; packages/agent-spawn/src/configs/codex.ts uses --dangerously-bypass-approvals-and-sandbox.

Suggested change
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `--dangerously-bypass-approvals-and-sandbox` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |

Comment thread docs/README_FULL.md
| ----------- | ------------- | ---------- | ---------- | ------------- | ----- | --------- | ----------- | ------ |
| Claude Code | `claude-code` | `claude` | `claude` | JSON | Yes | Yes | Yes | Yes |
| Codex | `codex` | — | `codex` | TOML | Yes | Yes | Yes | Yes |
| OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This summary should match the updated MCP serialization section and supportsMcpAtSpawn(): OpenCode has mcpEnv: serializeOpenCodeMcpEnv, so spawn-time MCP is supported.

Suggested change
| OpenCode | `opencode` || `opencode` | JSON | No | No | Yes | Yes |
| OpenCode | `opencode` || `opencode` | JSON | No | Yes | Yes | Yes |

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 948412b34e

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread docs/README_FULL.md
| `agentArgs` | No | Additional arguments forwarded directly to the agent CLI. |
| Argument | Required | Description |
| ----------- | -------- | ------------------------------------------------------------------------------------------------------ |
| `agent` | Yes | Agent to spawn, such as `claude-code`, `codex`, `cursor`, `opencode`, `kimi`, `goose`, or `poe-agent`. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Don't imply spawn modes constrain Poe Agent

Including poe-agent in the generic spawn list makes the adjacent --mode read|edit|auto|yolo documentation look applicable to it, but the custom createPoeAgentSpawnHandler drops options.mode when calling spawnPoeAgentWithAcp. In particular, poe-code spawn poe-agent --mode read ... still runs without Poe Agent's read policy, so users relying on this doc for a read-only run get a less constrained session than advertised.

Useful? React with 👍 / 👎.

@poe-code-agent
poe-code-agent Bot force-pushed the agent/update-documentation branch from 948412b to 48a7a2e Compare June 16, 2026 00:48

@poe-code-agent poe-code-agent Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requested changes: docs still list obsolete spawn details.


## Resuming sessions

Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@poe-code/agent-spawn still has no poe-agent spawn config, so package consumers following this sentence with spawn("poe-agent", { resumeThreadId }) hit Agent "poe-agent" has no spawn config. Poe Agent resume is handled by the top-level CLI/provider path instead.

Suggested change
Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.
Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, and Goose have resume mappings.

Comment thread docs/README_FULL.md
| `-C, --cwd <path>` | Current dir | Working directory for the agent. |
| `--stdin` | `false` | Read the prompt from stdin. |
| `-i, --interactive` | `false` | Launch in interactive TUI mode (inherits stdio). |
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this section now includes poe-agent as a spawn target, this overstates --mode: createPoeAgentSpawnHandler() does not pass options.mode into spawnPoeAgentWithAcp, so poe-code spawn poe-agent --mode read is not constrained by the documented read mode.

Comment thread docs/README_FULL.md
| `openai/gpt-5.1-codex-mini` | |
| Model ID | Default |
| --------------------------- | ------- |
| `openai/gpt-5.2-codex` | Yes |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This default is still out of sync with src/cli/constants.ts, where DEFAULT_CODEX_MODEL is openai/gpt-5.5.

Suggested change
| `openai/gpt-5.2-codex` | Yes |
| `openai/gpt-5.5` | Yes |

Comment thread docs/README_FULL.md
| `read` | Read-only, no modifications | `--permission-mode plan` | `-s read-only` | `--agent plan` | (none) | `GOOSE_MODE=chat` |
| Mode | Description | Claude Code Args | Codex Args | Cursor Args | OpenCode Args | Kimi Args | Goose |
| ------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------- | ---------------------------- | -------------- | ------------- | -------------------------- |
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex yolo no longer maps to -s danger-full-access; packages/agent-spawn/src/configs/codex.ts uses --dangerously-bypass-approvals-and-sandbox.

Suggested change
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `--dangerously-bypass-approvals-and-sandbox` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |

Comment thread docs/README_FULL.md
| ----------- | ------------- | ---------- | ---------- | ------------- | ----- | --------- | ----------- | ------ |
| Claude Code | `claude-code` | `claude` | `claude` | JSON | Yes | Yes | Yes | Yes |
| Codex | `codex` | — | `codex` | TOML | Yes | Yes | Yes | Yes |
| OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OpenCode has mcpEnv: serializeOpenCodeMcpEnv, so supportsMcpAtSpawn("opencode") returns true and this summary should say MCP spawn is supported.

Suggested change
| OpenCode | `opencode` || `opencode` | JSON | No | No | Yes | Yes |
| OpenCode | `opencode` || `opencode` | JSON | No | Yes | Yes | Yes |

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 48a7a2e08a

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

```ts
import { startManagedProcess, stopManagedProcess } from "@poe-code/process-launcher";

const record = await startManagedProcess({

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include the required spawnDaemon callback

This example calls startManagedProcess() without a spawnDaemon implementation, but StartManagedProcessOptions requires that callback and startManagedProcess calls options.spawnDaemon(spec.id) unconditionally. Users copying the README sample will either get a TypeScript error or a runtime options.spawnDaemon is not a function before the managed process can start, so the usage example needs to show how to provide the daemon launcher (or use an API that does not require one).

Useful? React with 👍 / 👎.

@poe-code-agent
poe-code-agent Bot force-pushed the agent/update-documentation branch from 48a7a2e to cb15c5a Compare June 17, 2026 00:45
@poe-code-agent poe-code-agent Bot changed the title docs: document recent agent updates docs: document latest hardening changes Jun 17, 2026

@poe-code-agent poe-code-agent Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requested changes: docs still show invalid spawn/process-launcher behavior.


## Resuming sessions

Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@poe-code/agent-spawn still has no poe-agent spawn config (allSpawnConfigs only registers Claude Code, Codex, Cursor, OpenCode, Kimi, and Goose), so package consumers following this with resumeThreadId hit Agent "poe-agent" has no spawn config. Poe Agent resume is handled by the top-level CLI/provider path instead.

Suggested change
Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.
Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, and Goose have resume mappings.

```ts
import { startManagedProcess, stopManagedProcess } from "@poe-code/process-launcher";

const record = await startManagedProcess({

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This usage example omits the required spawnDaemon callback. StartManagedProcessOptions requires it, and startManagedProcess() calls options.spawnDaemon(spec.id) unconditionally before waiting for the daemon to report the managed process state, so copying this sample fails at compile time or at runtime instead of starting the process.

Comment thread docs/README_FULL.md
| `-C, --cwd <path>` | Current dir | Working directory for the agent. |
| `--stdin` | `false` | Read the prompt from stdin. |
| `-i, --interactive` | `false` | Launch in interactive TUI mode (inherits stdio). |
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this section includes poe-agent as a spawn target, this overstates --mode: createPoeAgentSpawnHandler() does not pass options.mode into spawnPoeAgentWithAcp, so poe-code spawn poe-agent --mode read ... is not constrained by the documented read mode. Please either remove poe-agent from the generic target list or qualify that this mode behavior applies only to declarative agent-spawn providers.

Comment thread docs/README_FULL.md
| `read` | Read-only, no modifications | `--permission-mode plan` | `-s read-only` | `--agent plan` | (none) | `GOOSE_MODE=chat` |
| Mode | Description | Claude Code Args | Codex Args | Cursor Args | OpenCode Args | Kimi Args | Goose |
| ------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------- | ---------------------------- | -------------- | ------------- | -------------------------- |
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex yolo no longer maps to -s danger-full-access; packages/agent-spawn/src/configs/codex.ts uses --dangerously-bypass-approvals-and-sandbox.

Suggested change
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `--dangerously-bypass-approvals-and-sandbox` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |

@poe-code-agent
poe-code-agent Bot force-pushed the agent/update-documentation branch from cb15c5a to d5605cd Compare June 18, 2026 00:44

@poe-code-agent poe-code-agent Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requested changes: docs still describe unsupported or obsolete spawn behavior.

Comment thread docs/README_FULL.md
> **Audience**: AI agents and developers who need to understand and use every feature of the `poe-code` library — CLI, SDK, providers, and internals.

`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.
`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, Cursor, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cursor is included in the Poe-routing claim, but src/providers/cursor.ts has requiresProvider: false and an empty configure manifest; Cursor spawn uses the user's authenticated cursor-agent account instead of Poe provider config.

Suggested change
`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, Cursor, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.
`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api), and can also spawn Cursor through the authenticated local `cursor-agent` CLI. Instead of managing multiple provider accounts for Poe-routed agents, a single Poe subscription powers those coding agents.

Comment thread docs/README_FULL.md
| `-C, --cwd <path>` | Current dir | Working directory for the agent. |
| `--stdin` | `false` | Read the prompt from stdin. |
| `-i, --interactive` | `false` | Launch in interactive TUI mode (inherits stdio). |
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This overstates --mode now that the same section lists poe-agent: createPoeAgentSpawnHandler() does not pass options.mode into spawnPoeAgentWithAcp, so poe-code spawn poe-agent --mode read ... is not constrained by the documented read mode.

Suggested change
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. |
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode for declarative spawn providers: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. Poe Agent uses its custom spawn path and does not currently receive this option. |

Comment thread docs/README_FULL.md
| `openai/gpt-5.1-codex-mini` | |
| Model ID | Default |
| --------------------------- | ------- |
| `openai/gpt-5.2-codex` | Yes |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This default is out of sync with src/cli/constants.ts, where DEFAULT_CODEX_MODEL is openai/gpt-5.5.

Suggested change
| `openai/gpt-5.2-codex` | Yes |
| `openai/gpt-5.5` | Yes |
| `openai/gpt-5.2-codex` | |

Comment thread docs/README_FULL.md
|------|------|
| Mode | Args |
| ------ | ----------------------- |
| `yolo` | `-s danger-full-access` |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex yolo no longer maps to -s danger-full-access; packages/agent-spawn/src/configs/codex.ts uses --dangerously-bypass-approvals-and-sandbox.

Suggested change
| `yolo` | `-s danger-full-access` |
| `yolo` | `--dangerously-bypass-approvals-and-sandbox` |

Comment thread docs/README_FULL.md
| `read` | Read-only, no modifications | `--permission-mode plan` | `-s read-only` | `--agent plan` | (none) | `GOOSE_MODE=chat` |
| Mode | Description | Claude Code Args | Codex Args | Cursor Args | OpenCode Args | Kimi Args | Goose |
| ------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------- | ---------------------------- | -------------- | ------------- | -------------------------- |
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same obsolete Codex yolo flag here; the spawn config uses --dangerously-bypass-approvals-and-sandbox, not -s danger-full-access.

Suggested change
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `--dangerously-bypass-approvals-and-sandbox` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |

Comment thread docs/README_FULL.md
| ----------- | ------------- | ---------- | ---------- | ------------- | ----- | --------- | ----------- | ------ |
| Claude Code | `claude-code` | `claude` | `claude` | JSON | Yes | Yes | Yes | Yes |
| Codex | `codex` | — | `codex` | TOML | Yes | Yes | Yes | Yes |
| OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OpenCode has mcpEnv: serializeOpenCodeMcpEnv, so supportsMcpAtSpawn("opencode") returns true and this summary should say MCP spawn is supported.

Suggested change
| OpenCode | `opencode` || `opencode` | JSON | No | No | Yes | Yes |
| OpenCode | `opencode` || `opencode` | JSON | No | Yes | Yes | Yes |


## Resuming sessions

Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@poe-code/agent-spawn has no poe-agent entry in allSpawnConfigs, so package consumers following this with resumeThreadId hit Agent "poe-agent" has no spawn config. Poe Agent resume is handled by the top-level CLI/provider path instead.

Suggested change
Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.
Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, and Goose have resume mappings.

```ts
import { startManagedProcess, stopManagedProcess } from "@poe-code/process-launcher";

const record = await startManagedProcess({

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This example omits the required spawnDaemon callback. StartManagedProcessOptions requires it, and startManagedProcess() calls options.spawnDaemon(spec.id) before waiting for the managed process state, so copying this sample fails at compile time or runtime instead of starting the process.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d5605cdd9d

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread docs/README_FULL.md
| `agentArgs` | No | Additional arguments forwarded directly to the agent CLI. |
| Argument | Required | Description |
| ----------- | -------- | ------------------------------------------------------------------------------------------------------ |
| `agent` | Yes | Agent to spawn, such as `claude-code`, `codex`, `cursor`, `opencode`, `kimi`, `goose`, or `poe-agent`. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Fix the Poe Agent resume hint before listing it

Adding poe-agent to the generic spawn list puts it under the documented “displays a resume command” behavior, but the custom Poe Agent handler currently prints poe-code spawn --agent poe-agent --resume-thread-id ... (src/cli/commands/spawn-poe-agent.ts), while the spawn command only accepts the agent as the positional <agent> argument and defines no --agent option (src/cli/commands/spawn.ts). Users who pick Poe Agent from this list and copy the emitted resume command will hit an unknown-option failure instead of resuming; the hint/docs should use poe-code spawn poe-agent ... or avoid advertising it until the command is valid.

Useful? React with 👍 / 👎.

Comment thread docs/README_FULL.md
| `ingest --sources <sources>` | `claude,codex` collector | Comma-separated trace sources: `claude`, `codex`, or both. |
| `ingest --since <duration>` | `30d` | Only include recently updated traces. |
| `ingest --limit <number>` | `200` | Maximum extracted human prompts. |
| `ingest --output <path>` | `.poe-code/gaslight.yaml` | Generated gaslight config path. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Document the Gaslight ingest fallback path

This default is only true when .poe-code/gaslight.yaml does not already exist; resolveOutputPath() writes an agent-prefixed variant such as .poe-code/codex-gaslight.yaml when the default config file is present. In that common case users following this table will look for the generated config in the wrong file, and a later poe-code gaslight run will keep loading the existing gaslight.yaml unless they pass --config for the variant.

Useful? React with 👍 / 👎.

@poe-code-agent
poe-code-agent Bot force-pushed the agent/update-documentation branch from d5605cd to 893f216 Compare June 19, 2026 00:46
@poe-code-agent poe-code-agent Bot changed the title docs: document latest hardening changes docs: document latest toolcraft changes Jun 19, 2026

@poe-code-agent poe-code-agent Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requested changes: docs still describe unsupported spawn behavior.

Comment thread docs/README_FULL.md
| `-C, --cwd <path>` | Current dir | Working directory for the agent. |
| `--stdin` | `false` | Read the prompt from stdin. |
| `-i, --interactive` | `false` | Launch in interactive TUI mode (inherits stdio). |
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since poe-agent is now listed as a spawn target in this section, this row implies poe-code spawn poe-agent --mode read enforces a read-only run. The custom Poe Agent handler currently drops options.mode before calling spawnPoeAgentWithAcp, so users can get a less constrained session than the docs promise. Please either exclude Poe Agent from the generic mode docs or wire/enforce the selected mode before advertising it here.

Comment thread docs/README_FULL.md
| `openai/gpt-5.1-codex-mini` | |
| Model ID | Default |
| --------------------------- | ------- |
| `openai/gpt-5.2-codex` | Yes |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This default is out of sync with src/cli/constants.ts, where DEFAULT_CODEX_MODEL is openai/gpt-5.5.

Suggested change
| `openai/gpt-5.2-codex` | Yes |
| `openai/gpt-5.5` | Yes |

Comment thread docs/README_FULL.md
|------|------|
| Mode | Args |
| ------ | ----------------------- |
| `yolo` | `-s danger-full-access` |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex yolo no longer maps to -s danger-full-access; packages/agent-spawn/src/configs/codex.ts uses --dangerously-bypass-approvals-and-sandbox.

Suggested change
| `yolo` | `-s danger-full-access` |
| `yolo` | `--dangerously-bypass-approvals-and-sandbox` |

Comment thread docs/README_FULL.md
| `read` | Read-only, no modifications | `--permission-mode plan` | `-s read-only` | `--agent plan` | (none) | `GOOSE_MODE=chat` |
| Mode | Description | Claude Code Args | Codex Args | Cursor Args | OpenCode Args | Kimi Args | Goose |
| ------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------- | ---------------------------- | -------------- | ------------- | -------------------------- |
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same obsolete Codex yolo flag here; the spawn config uses --dangerously-bypass-approvals-and-sandbox, not -s danger-full-access.

Suggested change
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `--dangerously-bypass-approvals-and-sandbox` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |

Comment thread docs/README_FULL.md
| ----------- | ------------- | ---------- | ---------- | ------------- | ----- | --------- | ----------- | ------ |
| Claude Code | `claude-code` | `claude` | `claude` | JSON | Yes | Yes | Yes | Yes |
| Codex | `codex` | — | `codex` | TOML | Yes | Yes | Yes | Yes |
| OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OpenCode has mcpEnv: serializeOpenCodeMcpEnv, so supportsMcpAtSpawn("opencode") returns true and this summary should say MCP spawn is supported.

Suggested change
| OpenCode | `opencode` || `opencode` | JSON | No | No | Yes | Yes |
| OpenCode | `opencode` || `opencode` | JSON | No | Yes | Yes | Yes |


## Resuming sessions

Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@poe-code/agent-spawn has no poe-agent entry in allSpawnConfigs, so package consumers following this with resumeThreadId hit Agent "poe-agent" has no spawn config. Poe Agent resume is handled by the top-level CLI/provider path instead.

Suggested change
Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.
Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, and Goose have resume mappings.

```ts
import { startManagedProcess, stopManagedProcess } from "@poe-code/process-launcher";

const record = await startManagedProcess({

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This example omits the required spawnDaemon callback. StartManagedProcessOptions requires it, and startManagedProcess() calls options.spawnDaemon(spec.id) before waiting for the managed process state, so copying this sample fails at compile time or runtime instead of starting the process.

@poe-code-agent
poe-code-agent Bot force-pushed the agent/update-documentation branch from 893f216 to 615b453 Compare June 20, 2026 00:39
@poe-code-agent poe-code-agent Bot changed the title docs: document latest toolcraft changes docs: document latest agent stash updates Jun 20, 2026

@poe-code-agent poe-code-agent Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requested changes: docs still describe unsupported or obsolete behavior.

Comment thread docs/README_FULL.md
> **Audience**: AI agents and developers who need to understand and use every feature of the `poe-code` library — CLI, SDK, providers, and internals.

`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.
`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, Cursor, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor is not Poe-routed: src/providers/cursor.ts has requiresProvider: false and an empty configure manifest, and agent-spawn uses the authenticated local cursor-agent account.

Suggested change
`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, Cursor, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.
`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api), and can also spawn Cursor through the authenticated local `cursor-agent` CLI. Instead of managing multiple provider accounts for Poe-routed agents, a single Poe subscription powers those coding agents.

Comment thread docs/README_FULL.md
| `-C, --cwd <path>` | Current dir | Working directory for the agent. |
| `--stdin` | `false` | Read the prompt from stdin. |
| `-i, --interactive` | `false` | Launch in interactive TUI mode (inherits stdio). |
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This row now sits under a target list that includes poe-agent, but createPoeAgentSpawnHandler() does not pass options.mode into spawnPoeAgentWithAcp, so poe-code spawn poe-agent --mode read is not constrained by the documented read mode.

Suggested change
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. |
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode for declarative spawn providers: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. Poe Agent uses its custom spawn path and does not currently receive this option. |

Comment thread docs/README_FULL.md
| `ingest --sources <sources>` | `claude,codex` collector | Comma-separated trace sources: `claude`, `codex`, or both. |
| `ingest --since <duration>` | `30d` | Only include recently updated traces. |
| `ingest --limit <number>` | `200` | Maximum extracted human prompts. |
| `ingest --output <path>` | `.poe-code/gaslight.yaml` | Generated gaslight config path. |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This default is only used when .poe-code/gaslight.yaml does not already exist; resolveOutputPath() writes an agent-prefixed variant such as .poe-code/codex-gaslight.yaml when the default file is present.

Suggested change
| `ingest --output <path>` | `.poe-code/gaslight.yaml` | Generated gaslight config path. |
| `ingest --output <path>` | `.poe-code/gaslight.yaml`, or an agent-prefixed variant when that file exists | Generated gaslight config path. |

Comment thread docs/README_FULL.md
| `openai/gpt-5.1-codex-mini` | |
| Model ID | Default |
| --------------------------- | ------- |
| `openai/gpt-5.2-codex` | Yes |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is still out of sync with src/cli/constants.ts, where DEFAULT_CODEX_MODEL is openai/gpt-5.5; the current Codex model list also includes openai/gpt-5.3-codex.

Suggested change
| `openai/gpt-5.2-codex` | Yes |
| `openai/gpt-5.5` | Yes |
| `openai/gpt-5.3-codex` | |

Comment thread docs/README_FULL.md
|------|------|
| Mode | Args |
| ------ | ----------------------- |
| `yolo` | `-s danger-full-access` |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex yolo uses --dangerously-bypass-approvals-and-sandbox in packages/agent-spawn/src/configs/codex.ts, not -s danger-full-access.

Suggested change
| `yolo` | `-s danger-full-access` |
| `yolo` | `--dangerously-bypass-approvals-and-sandbox` |

Comment thread docs/README_FULL.md
| `read` | Read-only, no modifications | `--permission-mode plan` | `-s read-only` | `--agent plan` | (none) | `GOOSE_MODE=chat` |
| Mode | Description | Claude Code Args | Codex Args | Cursor Args | OpenCode Args | Kimi Args | Goose |
| ------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------- | ---------------------------- | -------------- | ------------- | -------------------------- |
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same obsolete Codex yolo flag here; the spawn config maps both yolo and auto to --dangerously-bypass-approvals-and-sandbox.

Suggested change
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `--dangerously-bypass-approvals-and-sandbox` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |

Comment thread docs/README_FULL.md
| ----------- | ------------- | ---------- | ---------- | ------------- | ----- | --------- | ----------- | ------ |
| Claude Code | `claude-code` | `claude` | `claude` | JSON | Yes | Yes | Yes | Yes |
| Codex | `codex` | — | `codex` | TOML | Yes | Yes | Yes | Yes |
| OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OpenCode has mcpEnv: serializeOpenCodeMcpEnv, so supportsMcpAtSpawn("opencode") returns true and this summary should say MCP spawn is supported.

Suggested change
| OpenCode | `opencode` || `opencode` | JSON | No | No | Yes | Yes |
| OpenCode | `opencode` || `opencode` | JSON | No | Yes | Yes | Yes |


## Resuming sessions

Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@poe-code/agent-spawn has no poe-agent entry in allSpawnConfigs, so package consumers following this with resumeThreadId hit Agent "poe-agent" has no spawn config. Poe Agent resume is handled by the top-level CLI/provider path instead.

Suggested change
Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.
Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, and Goose have resume mappings.

```ts
import { startManagedProcess, stopManagedProcess } from "@poe-code/process-launcher";

const record = await startManagedProcess({

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This example omits the required spawnDaemon callback. StartManagedProcessOptions requires it, and startManagedProcess() calls options.spawnDaemon(spec.id) before waiting for the daemon to report state, so copying the sample fails before starting the process.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 615b453f4d

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread docs/README_FULL.md
| Mode | Description | Claude Code Args | Codex Args | Cursor Args | OpenCode Args | Kimi Args | Goose |
| ------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------- | ---------------------------- | -------------- | ------------- | -------------------------- |
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |
| `auto` | Native safe-action auto approval when the agent supports it | `--permission-mode auto` | Not supported | Not supported | Not supported | Not supported | Not supported |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Document Codex auto mode as supported

The updated mode table says Codex does not support auto, but the actual spawn config defines codexSpawnConfig.modes.auto and supportsSpawnMode("codex", "auto") returns true; Codex maps it to --dangerously-bypass-approvals-and-sandbox. Users reading this section will wrongly expect poe-code spawn codex --mode auto or Gaslight's default auto mode to fail instead of running in Codex's unattended mode.

Useful? React with 👍 / 👎.

Comment thread docs/README_FULL.md
| ----------- | ------------- | ---------- | ---------- | ------------- | ----- | --------- | ----------- | ------ |
| Claude Code | `claude-code` | `claude` | `claude` | JSON | Yes | Yes | Yes | Yes |
| Codex | `codex` | — | `codex` | TOML | Yes | Yes | Yes | Yes |
| OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Mark OpenCode MCP spawn as supported

This summary still says OpenCode has no MCP spawn support, but the same document now lists OpenCode's OPENCODE_CONFIG_CONTENT serialization and the actual openCodeSpawnConfig exposes mcpEnv, so supportsMcpAtSpawn("opencode") is true. Users relying on the summary will incorrectly avoid passing --mcp-servers to OpenCode even though the CLI can inject them.

Useful? React with 👍 / 👎.

poe-code-agent Bot and others added 8 commits June 23, 2026 00:36
Remove Cursor from wrap and configure quickstart targets because Cursor spawn support does not route calls through Poe provider configuration.

Format docs/README_FULL.md with Prettier to restore the repository formatting check.

Addresses review comments 3406958006, 3406961902, and 3406961905.
@poe-code-agent
poe-code-agent Bot force-pushed the agent/update-documentation branch from 615b453 to 48d1af6 Compare June 23, 2026 00:37
@poe-code-agent poe-code-agent Bot changed the title docs: document latest agent stash updates docs: document recent runtime and explorer updates Jun 23, 2026

@poe-code-agent poe-code-agent Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requested changes: docs still describe unsupported or obsolete spawn behavior.

Comment thread docs/README_FULL.md
> **Audience**: AI agents and developers who need to understand and use every feature of the `poe-code` library — CLI, SDK, providers, and internals.

`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.
`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, Cursor, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor is not Poe-routed: src/providers/cursor.ts has requiresProvider: false and an empty configure manifest, and agent-spawn launches the authenticated local cursor-agent account.

Suggested change
`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, Cursor, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.
`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api), and can also spawn Cursor through the authenticated local `cursor-agent` CLI. Instead of managing multiple provider accounts for Poe-routed agents, a single Poe subscription powers those coding agents.

Comment thread docs/README_FULL.md
| `-C, --cwd <path>` | Current dir | Working directory for the agent. |
| `--stdin` | `false` | Read the prompt from stdin. |
| `-i, --interactive` | `false` | Launch in interactive TUI mode (inherits stdio). |
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This row now sits under a target list that includes poe-agent, but createPoeAgentSpawnHandler() does not pass options.mode into spawnPoeAgentWithAcp, so poe-code spawn poe-agent --mode read is not constrained by the documented read mode.

Suggested change
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. |
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode for declarative spawn providers: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. Poe Agent uses its custom spawn path and does not currently receive this option. |

Comment thread docs/README_FULL.md
| `ingest --sources <sources>` | `claude,codex` collector | Comma-separated trace sources: `claude`, `codex`, or both. |
| `ingest --since <duration>` | `30d` | Only include recently updated traces. |
| `ingest --limit <number>` | `200` | Maximum extracted human prompts. |
| `ingest --output <path>` | `.poe-code/gaslight.yaml` | Generated gaslight config path. |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This default is only used when .poe-code/gaslight.yaml does not already exist; resolveOutputPath() writes an agent-prefixed variant such as .poe-code/codex-gaslight.yaml when the default file is present.

Suggested change
| `ingest --output <path>` | `.poe-code/gaslight.yaml` | Generated gaslight config path. |
| `ingest --output <path>` | `.poe-code/gaslight.yaml`, or an agent-prefixed variant when that file exists | Generated gaslight config path. |

Comment thread docs/README_FULL.md
| `openai/gpt-5.1-codex-mini` | |
| Model ID | Default |
| --------------------------- | ------- |
| `openai/gpt-5.2-codex` | Yes |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This default is out of sync with src/cli/constants.ts, where DEFAULT_CODEX_MODEL is openai/gpt-5.5; the current Codex model set also includes openai/gpt-5.4 and openai/gpt-5.3-codex.

Suggested change
| `openai/gpt-5.2-codex` | Yes |
| `openai/gpt-5.5` | Yes |
| `openai/gpt-5.4` | |
| `openai/gpt-5.3-codex` | |
| `openai/gpt-5.2-codex` | |

Comment thread docs/README_FULL.md
Comment on lines +1734 to +1735
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |
| `auto` | Native safe-action auto approval when the agent supports it | `--permission-mode auto` | Not supported | Not supported | Not supported | Not supported | Not supported |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex yolo and auto are both supported by packages/agent-spawn/src/configs/codex.ts, and both map to --dangerously-bypass-approvals-and-sandbox; this table still shows the old -s danger-full-access flag and says auto is unsupported.

Comment thread docs/README_FULL.md
| ----------- | ------------- | ---------- | ---------- | ------------- | ----- | --------- | ----------- | ------ |
| Claude Code | `claude-code` | `claude` | `claude` | JSON | Yes | Yes | Yes | Yes |
| Codex | `codex` | — | `codex` | TOML | Yes | Yes | Yes | Yes |
| OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OpenCode has mcpEnv: serializeOpenCodeMcpEnv, so supportsMcpAtSpawn("opencode") returns true and this summary should say MCP spawn is supported.

Suggested change
| OpenCode | `opencode` || `opencode` | JSON | No | No | Yes | Yes |
| OpenCode | `opencode` || `opencode` | JSON | No | Yes | Yes | Yes |


## Resuming sessions

Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@poe-code/agent-spawn has no poe-agent entry in allSpawnConfigs, so package consumers following this with resumeThreadId hit Agent "poe-agent" has no spawn config. Poe Agent resume is handled by the top-level CLI/provider path instead.

Suggested change
Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.
Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, and Goose have resume mappings.

```ts
import { startManagedProcess, stopManagedProcess } from "@poe-code/process-launcher";

const record = await startManagedProcess({

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This example omits the required spawnDaemon callback. StartManagedProcessOptions requires it, and startManagedProcess() calls options.spawnDaemon(spec.id) before waiting for the daemon to report state, so copying the sample fails before starting the process.

@poe-code-agent poe-code-agent Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requested changes: documentation still describes unsupported spawn behavior.

Comment thread docs/README_FULL.md
> **Audience**: AI agents and developers who need to understand and use every feature of the `poe-code` library — CLI, SDK, providers, and internals.

`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.
`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, Cursor, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor is not Poe-routed: src/providers/cursor.ts sets requiresProvider: false with an empty configure manifest, and the spawn path launches the user's local cursor-agent account.

Suggested change
`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, Cursor, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.
`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api), and can also spawn Cursor through the authenticated local `cursor-agent` CLI. Instead of managing multiple provider accounts for Poe-routed agents, a single Poe subscription powers those coding agents.

Comment thread docs/README_FULL.md
| `-C, --cwd <path>` | Current dir | Working directory for the agent. |
| `--stdin` | `false` | Read the prompt from stdin. |
| `-i, --interactive` | `false` | Launch in interactive TUI mode (inherits stdio). |
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This row now sits under a target list that includes poe-agent, but createPoeAgentSpawnHandler() does not pass options.mode into spawnPoeAgentWithAcp. As written, poe-code spawn poe-agent --mode read is documented as read-only but is not constrained by that mode.

Suggested change
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. |
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode for declarative spawn providers: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. Poe Agent uses its custom spawn path and does not currently receive this option. |

Comment thread docs/README_FULL.md
| `ingest --sources <sources>` | `claude,codex` collector | Comma-separated trace sources: `claude`, `codex`, or both. |
| `ingest --since <duration>` | `30d` | Only include recently updated traces. |
| `ingest --limit <number>` | `200` | Maximum extracted human prompts. |
| `ingest --output <path>` | `.poe-code/gaslight.yaml` | Generated gaslight config path. |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This default is only used when .poe-code/gaslight.yaml does not already exist; resolveOutputPath() writes an agent-prefixed variant such as .poe-code/codex-gaslight.yaml when the default file is present.

Suggested change
| `ingest --output <path>` | `.poe-code/gaslight.yaml` | Generated gaslight config path. |
| `ingest --output <path>` | `.poe-code/gaslight.yaml`, or an agent-prefixed variant when that file exists | Generated gaslight config path. |

Comment thread docs/README_FULL.md
| `openai/gpt-5.1-codex-mini` | |
| Model ID | Default |
| --------------------------- | ------- |
| `openai/gpt-5.2-codex` | Yes |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This default is out of sync with src/cli/constants.ts, where DEFAULT_CODEX_MODEL is openai/gpt-5.5; the current Codex model set also includes openai/gpt-5.3-codex.

Suggested change
| `openai/gpt-5.2-codex` | Yes |
| `openai/gpt-5.5` | Yes |
| `openai/gpt-5.3-codex` | |

Comment thread docs/README_FULL.md
Comment on lines +1734 to +1735
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |
| `auto` | Native safe-action auto approval when the agent supports it | `--permission-mode auto` | Not supported | Not supported | Not supported | Not supported | Not supported |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex yolo and auto are both supported by packages/agent-spawn/src/configs/codex.ts, and both map to --dangerously-bypass-approvals-and-sandbox; this table still shows the old -s danger-full-access flag and says auto is unsupported.

Suggested change
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |
| `auto` | Native safe-action auto approval when the agent supports it | `--permission-mode auto` | Not supported | Not supported | Not supported | Not supported | Not supported |
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `--dangerously-bypass-approvals-and-sandbox` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |
| `auto` | Native safe-action auto approval when the agent supports it | `--permission-mode auto` | `--dangerously-bypass-approvals-and-sandbox` | Not supported | Not supported | Not supported | Not supported |

Comment thread docs/README_FULL.md
| ----------- | ------------- | ---------- | ---------- | ------------- | ----- | --------- | ----------- | ------ |
| Claude Code | `claude-code` | `claude` | `claude` | JSON | Yes | Yes | Yes | Yes |
| Codex | `codex` | — | `codex` | TOML | Yes | Yes | Yes | Yes |
| OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OpenCode has mcpEnv: serializeOpenCodeMcpEnv, so supportsMcpAtSpawn("opencode") returns true and this summary should say MCP spawn is supported.

Suggested change
| OpenCode | `opencode` || `opencode` | JSON | No | No | Yes | Yes |
| OpenCode | `opencode` || `opencode` | JSON | No | Yes | Yes | Yes |


## Resuming sessions

Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@poe-code/agent-spawn has no poe-agent entry in allSpawnConfigs, so package consumers following this with resumeThreadId hit Agent "poe-agent" has no spawn config. Poe Agent resume is handled by the top-level CLI/provider path instead.

Suggested change
Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.
Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, and Goose have resume mappings.

```ts
import { startManagedProcess, stopManagedProcess } from "@poe-code/process-launcher";

const record = await startManagedProcess({

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This example omits the required spawnDaemon callback. StartManagedProcessOptions requires it, and startManagedProcess() calls options.spawnDaemon(spec.id) before waiting for the daemon to report state, so copying the sample fails before starting the process.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0d5b375dcf

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread docs/README_FULL.md
> **Audience**: AI agents and developers who need to understand and use every feature of the `poe-code` library — CLI, SDK, providers, and internals.

`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.
`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, Cursor, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Don't list Cursor as Poe-routed

Including Cursor in this sentence says Poe Code configures it to route API calls through the Poe API, but the Cursor provider is explicitly requiresProvider: false with an empty configure manifest in src/providers/cursor.ts, and Cursor spawns use the authenticated cursor-agent account without Poe environment injection. Users who choose Cursor from this overview will not get Poe-routed calls through their Poe subscription.

Useful? React with 👍 / 👎.

@poe-code-agent poe-code-agent Bot changed the title docs: document recent runtime and explorer updates docs: document recent plan and terminal updates Jun 24, 2026

@poe-code-agent poe-code-agent Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requested changes: e2e config still fails from a clean install.

Comment thread e2e/setup.ts
@@ -1,11 +1,10 @@
import { runPreflight, formatPreflightResults } from '@poe-code/e2e-test-runner';

import { formatPreflightResults, runPreflight } from "../packages/e2e-test-runner/src/preflight.js";

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This direct source import fixes the old globalSetup/matcher problem, but it now exposes unaliased workspace deps during e2e startup. From a clean checkout after npm ci, npm run e2e -- --reporter=verbose --passWithNoTests fails resolving toolcraft-design from packages/e2e-test-runner/src/preflight.ts because e2e only aliases @poe-code/e2e-test-runner and auth-store to source while toolcraft-design (and its workspace transitive deps) still point at unbuilt dist. Please mirror the root vitest workspace-package aliases in e2e/vitest.config.ts or otherwise resolve those workspace deps to source before importing preflight here.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4a2cf2e9cd

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread docs/README_FULL.md
| `agentArgs` | No | Additional arguments forwarded directly to the agent CLI. |
| Argument | Required | Description |
| ----------- | -------- | ------------------------------------------------------------------------------------------------------ |
| `agent` | Yes | Agent to spawn, such as `claude-code`, `codex`, `cursor`, `opencode`, `kimi`, `goose`, or `poe-agent`. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Don't advertise Poe Agent as interactive spawn-capable

When users pick poe-agent from this generic spawn list and combine it with the adjacent -i, --interactive option, spawn.ts takes the interactive branch before checking custom handlers and calls resolveServiceAdapter for the agent. Poe Agent is registered only as an extraServices custom handler in src/cli/program.ts, not as a provider service, so poe-code spawn poe-agent -i ... fails instead of launching an interactive session. Please either exclude Poe Agent from the generic spawn list/options or document that it only works through the non-interactive handler until the interactive path is wired.

Useful? React with 👍 / 👎.

@poe-code-agent poe-code-agent Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requested changes: docs still describe unsupported spawn behavior.

Comment thread docs/README_FULL.md
> **Audience**: AI agents and developers who need to understand and use every feature of the `poe-code` library — CLI, SDK, providers, and internals.

`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.
`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, Cursor, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor is not Poe-routed: src/providers/cursor.ts sets requiresProvider: false with an empty configure manifest, and agent-spawn launches the authenticated local cursor-agent account.

Suggested change
`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, Cursor, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents.
`poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api), and can also spawn Cursor through the authenticated local `cursor-agent` CLI. Instead of managing multiple provider accounts for Poe-routed agents, a single Poe subscription powers those coding agents.

Comment thread docs/README_FULL.md
| `-C, --cwd <path>` | Current dir | Working directory for the agent. |
| `--stdin` | `false` | Read the prompt from stdin. |
| `-i, --interactive` | `false` | Launch in interactive TUI mode (inherits stdio). |
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because this section lists poe-agent, this row overstates what --mode does: createPoeAgentSpawnHandler() does not pass options.mode to spawnPoeAgentWithAcp, so poe-code spawn poe-agent --mode read is not constrained by this documented mode.

Suggested change
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. |
| `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode for declarative spawn providers: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. Poe Agent uses its custom spawn path and does not currently receive this option. |

Comment thread docs/README_FULL.md
Comment on lines +1867 to +1868
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |
| `auto` | Native safe-action auto approval when the agent supports it | `--permission-mode auto` | Not supported | Not supported | Not supported | Not supported | Not supported |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex yolo and auto are both supported by packages/agent-spawn/src/configs/codex.ts, and both map to --dangerously-bypass-approvals-and-sandbox; this table still shows the old flag and says auto is unsupported.

Suggested change
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |
| `auto` | Native safe-action auto approval when the agent supports it | `--permission-mode auto` | Not supported | Not supported | Not supported | Not supported | Not supported |
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `--dangerously-bypass-approvals-and-sandbox` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |
| `auto` | Native safe-action auto approval when the agent supports it | `--permission-mode auto` | `--dangerously-bypass-approvals-and-sandbox` | Not supported | Not supported | Not supported | Not supported |

Comment thread docs/README_FULL.md
| ----------- | ------------- | ---------- | ---------- | ------------- | ----- | --------- | ----------- | ------ |
| Claude Code | `claude-code` | `claude` | `claude` | JSON | Yes | Yes | Yes | Yes |
| Codex | `codex` | — | `codex` | TOML | Yes | Yes | Yes | Yes |
| OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OpenCode has mcpEnv: serializeOpenCodeMcpEnv, so supportsMcpAtSpawn("opencode") returns true and this summary should say MCP spawn is supported.

Suggested change
| OpenCode | `opencode` || `opencode` | JSON | No | No | Yes | Yes |
| OpenCode | `opencode` || `opencode` | JSON | No | Yes | Yes | Yes |


## Resuming sessions

Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@poe-code/agent-spawn has no poe-agent entry in allSpawnConfigs, so package consumers following this with resumeThreadId hit Agent "poe-agent" has no spawn config. Poe Agent resume is handled by the top-level CLI/provider path instead.

Suggested change
Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`.
Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, and Goose have resume mappings.

```ts
import { startManagedProcess, stopManagedProcess } from "@poe-code/process-launcher";

const record = await startManagedProcess({

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This example omits the required spawnDaemon callback. StartManagedProcessOptions requires it, and startManagedProcess() calls options.spawnDaemon(spec.id) before waiting for the daemon to report state, so copying the sample fails before starting the process.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bfe273abd3

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread docs/README_FULL.md
| `read` | Read-only, no modifications | `--permission-mode plan` | `-s read-only` | `--agent plan` | (none) | `GOOSE_MODE=chat` |
| Mode | Description | Claude Code Args | Codex Args | Cursor Args | OpenCode Args | Kimi Args | Goose |
| ------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------- | ---------------------------- | -------------- | ------------- | -------------------------- |
| `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Align Codex yolo args with spawn config

For Codex yolo runs, the actual codexSpawnConfig.modes.yolo in packages/agent-spawn/src/configs/codex.ts emits --dangerously-bypass-approvals-and-sandbox, not -s danger-full-access. Users debugging or reproducing poe-code spawn codex --mode yolo from this new table will get a command that does not match Poe Code's behavior, so this row should be updated to the configured flag.

Useful? React with 👍 / 👎.

Comment thread docs/README_FULL.md
|--------|-------------|
| Option | Description |
| ---------------- | -------------------------------------------- |
| `--agent <name>` | Agent to configure (alias for the argument). |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remove unsupported --agent skill option

This table advertises poe-code skill configure --agent ..., but registerSkillCommand only defines the positional [agent] plus --local, --global, and --yes for skill configure (and skill unconfigure likewise has no --agent). Users following this documented alias get an unknown-option failure instead of configuring skills, so either wire the option or document the positional argument only.

Useful? React with 👍 / 👎.

homeDir: "/home/test",
plan: ".poe-code/pipeline/plans/plan-auth.yaml",
maxRuns: 5,
worktree: true,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Don't document root-only worktree on package APIs

This example imports runPipeline from @poe-code/pipeline, but the package's exported PipelineRunOptions has no worktree field; worktree support is added only by the root poe-code SDK wrapper. TypeScript users copying this hit an excess-property error, and plain JavaScript callers silently run without isolation/reconciliation; the same root-SDK-only mismatch appears in the new Gaslight/Ralph package API docs, so these package READMEs should either point to poe-code or omit worktree.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant