Skip to content

Add Codex exec fanout - #39

Merged
danielgwilson merged 1 commit into
mainfrom
codex/codex-exec-fanout
Jun 2, 2026
Merged

danielgwilson merged 1 commit into
mainfrom
codex/codex-exec-fanout

Conversation

@danielgwilson

Copy link
Copy Markdown
Owner

Summary

  • Adds explicit codex-exec fanout for --sims 1..4, with bounded read-only lane focuses for install readability, public safety, Observer evidence, and verification/release gates.
  • Writes per-lane terminal streams, sanitized transcript artifacts, actor traces, lifecycle events, and aggregate review status while preserving the existing 1x transcripts/codex-exec-sanitized.jsonl and actor.json paths.
  • Keeps codex-tui single-lane/trust-preflighted and updates the committed mimetic/ dogfood source plus local actor docs to match the new contract.

Refs #28.

Proof

  • pnpm vitest run tests/run.test.ts -> 10 tests passed.
  • pnpm check -> 10 test files / 48 tests passed, build passed.
  • pnpm public-surface:scan -> 72 candidate text files checked.
  • git diff --check -> passed.
  • pnpm mimetic -- doctor --json -> passed.
  • Env-sourced real fanout: pnpm mimetic -- run --actor codex-exec --sims 4 --timeout-ms 120000 --run-id codex-exec-fanout-real-proof-env --json -> passed, 4/4 lanes.
  • pnpm mimetic -- verify --run codex-exec-fanout-real-proof-env --json -> 5/5 checks passed.
  • pnpm mimetic -- watch --run codex-exec-fanout-real-proof-env --detach --no-open --json -> Observer rendered.
  • Env-sourced 1x regression: pnpm mimetic -- run --actor codex-exec --sims 1 --timeout-ms 120000 --run-id codex-exec-1x-regression-env --json -> passed and preserved the original 1x transcript/trace artifact paths.

No raw actor transcripts, secrets, sandbox URLs, or target OSS mutations are included in this PR.

@danielgwilson
danielgwilson merged commit a996b58 into main Jun 2, 2026
2 checks passed
@danielgwilson
danielgwilson deleted the codex/codex-exec-fanout branch June 2, 2026 18:31
danielgwilson added a commit that referenced this pull request Oct 2, 2026
scripts/check-code-prose.mjs counts comments and test names, so the
text a person reads in errors, warnings and command output kept every
class the comment passes removed. It now also walks oxc's string
Literal and TemplateElement nodes under src/ and counts six kinds, each
held to its own --max-string-* flag at today's count:

- string-em-dashes: 172
- string-issue-refs: 11 (one to five digits, as comments count them; a
  CSS color like `color:#111` or `solid #111}` and an HTML entity like
  `'` are not references)
- string-slice: 10 ("a later slice" and its kin)
- string-rationale: 34 ("fail closed", "by construction", "hollow",
  "honest", "safety lie")
- string-plural-s: 62 ("turn(s)"; "http(s)" is a URL scheme and does
  not count)
- string-caps: 339 (the same CAPS_RUN and ACRONYMS as comments; names
  inside embedded shell and python scripts count too, so this cap is a
  ratchet, not a target of 0)

Code spans inside a string are not counted. Model prompts
(participant-prompt.ts, lobby-code.ts) and the terminal's ASCII
transcoding table (encoding.ts) are excluded. Strings under tests/,
scripts/ and tui/ are not counted. No source string changes here; the
cleanup passes lower the caps.

tests/scripts/check-code-prose.test.ts covers each string kind; the
CSS, entity, http(s) and code-span exclusions; comments and strings
counted apart; strings counted only under src; and failure above and
below --max-string-em-dashes. AGENTS.md and CONTRIBUTING.md state the
rule for messages.

Checked: the test file (20 tests), prose:check, tsc, format, and the
full gate (results in the PR). Not checked: which of the 339 caps hits
are emphasis and which are names; the passes sort that out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
danielgwilson added a commit that referenced this pull request Oct 2, 2026
scripts/check-code-prose.mjs counts comments and test names, so the
text a person reads in errors, warnings and command output kept every
class the comment passes removed. It now also walks oxc's string
Literal and TemplateElement nodes under src/ and counts six kinds, held
in scripts/caps.json at prose.src.string-* at today's counts:

- string-em-dashes: 160
- string-issue-refs: 10 (one to five digits, as comments count them; a
  CSS color like `color:#111` or `solid #111}` and an HTML entity like
  `&#39;` are not references)
- string-slice: 10 ("a later slice" and its kin)
- string-rationale: 30 ("fail closed", "by construction", "hollow",
  "honest", "safety lie")
- string-plural-s: 62 ("turn(s)"; "http(s)" is a URL scheme and does
  not count)
- string-caps: 278 (isCapsEmphasis from lib/prose-rules.mjs; names in
  embedded shell and python scripts count too, so this cap is a
  ratchet, not a target of 0)

Not counted: code spans inside a string; string literal types
(`"fail-closed" | "record-evidence"`); model prompts in
src/analysis/execute.ts, participant-prompt.ts and lobby-code.ts; the
terminal's ASCII transcoding table in encoding.ts; and the statement
right after a `prose-check: model prompt` comment, for prompts that
live beside messages. Strings under tests/, scripts/ and tui/ are not
counted. No source string changes here; the cleanup passes lower the
caps.

tests/scripts/check-code-prose.test.ts covers each string kind; the
CSS, entity, http(s) and code-span exclusions; the prompt marker; type
literals; strings counted only under src; and failure above and below
the string-em-dashes cap. AGENTS.md and CONTRIBUTING.md state the rule
for messages.

Checked: tests/scripts (193 tests), prose:check, tsc, format, and the
full gate (results in the PR). Not checked: which of the 278 caps hits
are emphasis and which are names; the passes sort that out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
danielgwilson added a commit that referenced this pull request Oct 2, 2026
scripts/check-code-prose.mjs counts comments and test names, so the
text a person reads in errors, warnings and command output kept every
class the comment passes removed. It now also walks oxc's string
Literal and TemplateElement nodes under src/ and counts six kinds, held
in scripts/caps.json at prose.src.string-* at today's counts:

- string-em-dashes: 160
- string-issue-refs: 10 (one to five digits, as comments count them; a
  CSS color like `color:#111` or `solid #111}` and an HTML entity like
  `&#39;` are not references)
- string-slice: 10 ("a later slice" and its kin)
- string-rationale: 30 ("fail closed", "by construction", "hollow",
  "honest", "safety lie")
- string-plural-s: 62 ("turn(s)"; "http(s)" is a URL scheme and does
  not count)
- string-caps: 278 (isCapsEmphasis from lib/prose-rules.mjs; names in
  embedded shell and python scripts count too, so this cap is a
  ratchet, not a target of 0)

Not counted: code spans inside a string; string literal types
(`"fail-closed" | "record-evidence"`); model prompts in
src/analysis/execute.ts, participant-prompt.ts and lobby-code.ts; the
terminal's ASCII transcoding table in encoding.ts; and the statement
right after a `prose-check: model prompt` comment, for prompts that
live beside messages. Strings under tests/, scripts/ and tui/ are not
counted. No source string changes here; the cleanup passes lower the
caps.

tests/scripts/check-code-prose.test.ts covers each string kind; the
CSS, entity, http(s) and code-span exclusions; the prompt marker; type
literals; strings counted only under src; and failure above and below
the string-em-dashes cap. AGENTS.md and CONTRIBUTING.md state the rule
for messages.

Checked: tests/scripts (193 tests), prose:check, tsc, format, and the
full gate (results in the PR). Not checked: which of the 278 caps hits
are emphasis and which are names; the passes sort that out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
danielgwilson added a commit that referenced this pull request Oct 2, 2026
scripts/check-code-prose.mjs counts comments and test names, so the
text a person reads in errors, warnings and command output kept every
class the comment passes removed. It now also walks oxc's string
Literal and TemplateElement nodes under src/ and counts six kinds, held
in scripts/caps.json at prose.src.string-* at today's counts:

- string-em-dashes: 160
- string-issue-refs: 10 (one to five digits, as comments count them; a
  CSS color like `color:#111` or `solid #111}` and an HTML entity like
  `&#39;` are not references)
- string-slice: 10 ("a later slice" and its kin)
- string-rationale: 30 ("fail closed", "by construction", "hollow",
  "honest", "safety lie")
- string-plural-s: 62 ("turn(s)"; "http(s)" is a URL scheme and does
  not count)
- string-caps: 278 (isCapsEmphasis from lib/prose-rules.mjs; names in
  embedded shell and python scripts count too, so this cap is a
  ratchet, not a target of 0)

Not counted: code spans inside a string; string literal types
(`"fail-closed" | "record-evidence"`); model prompts in
src/analysis/execute.ts, participant-prompt.ts and lobby-code.ts; the
terminal's ASCII transcoding table in encoding.ts; and the statement
right after a `prose-check: model prompt` comment, for prompts that
live beside messages. Strings under tests/, scripts/ and tui/ are not
counted. No source string changes here; the cleanup passes lower the
caps.

tests/scripts/check-code-prose.test.ts covers each string kind; the
CSS, entity, http(s) and code-span exclusions; the prompt marker; type
literals; strings counted only under src; and failure above and below
the string-em-dashes cap. AGENTS.md and CONTRIBUTING.md state the rule
for messages.

Checked: tests/scripts (193 tests), prose:check, tsc, format, and the
full gate (results in the PR). Not checked: which of the 278 caps hits
are emphasis and which are names; the passes sort that out.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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