Merge branch 'codex/simp-session-log-representation' into codex/simp-snapshot-fixture-inventory

# Conflicts:
#	examples/acp-agent/tests/acp.snapshot.ts
This commit is contained in:
Tianyi Cui
2026-07-14 00:36:28 +08:00
112 changed files with 10838 additions and 129 deletions
+15
View File
@@ -26,6 +26,7 @@ const AGENT = {
// replay swap resolves each one's sibling `*cordis.snapshot.yml`).
const CODE_MODE_CONFIG = fileURLToPath(new URL('../code-mode.cordis.yml', import.meta.url))
const BOTH_MODE_CONFIG = fileURLToPath(new URL('../both-mode.cordis.yml', import.meta.url))
const ADVANCED_CONFIG = fileURLToPath(new URL('../advanced.cordis.yml', import.meta.url))
function snapshotModeFromEnv(value: string | undefined): SnapshotSuiteOptions['mode'] {
switch (value) {
@@ -75,6 +76,20 @@ const SCENARIOS: Scenario[] = [
// child runs as a spawn subagent under the worker-thread engine (its session is the
// child fixture), and the tool result carries the script's return value.
{ name: 'workflow-run', hasModelTurn: true, recorded: true },
// ACP-facing counterpart to the packaged Python SDK snapshot: Cordis mounts
// a live marker, Code Mode inspects it through the worker bridge, then a
// direct child and a workflow child run before the mount is disposed. This
// class adds both Code Mode and the opt-in Cordis tools to the base tree, so
// it owns a distinct request-header pin. The scripted fixture is authored:
// the value is deterministic cross-boundary composition, not live-model prose.
{
name: 'advanced-toolchain',
hasModelTurn: true,
recorded: false,
pinsHeader: true,
headerClass: 'advanced',
configPath: ADVANCED_CONFIG,
},
// Hook matrix — one scenario per hook point × its headline Decision outcome,
// across BOTH bridges (Claude `hooks.json`, Codex `codex-hooks.json`, seeded in
// workspace/). The block scenarios need no model call: a UserPromptSubmit hook