8000 feat(e2e-live): the north-star run on Codex and OpenCode (--host); run-summary records the host by adeelahmad · Pull Request #38 · adeelahmad/aloop · GitHub
[go: up one dir, main page]

Skip to content

feat(e2e-live): the north-star run on Codex and OpenCode (--host); run-summary records the host - #38

Merged
adeelahmad merged 1 commit into
masterfrom
claude/project-thread-qerfr9
Oct 18, 2026
Merged

adeelahmad merged 1 commit into
masterfrom
claude/project-thread-qerfr9

Conversation

@adeelahmad
Copy link
Copy Markdown
Owner

Requested by Adeel · project thread

Before: the north-star run (make e2e-live YES=1) only ran on Claude Code, so M8's "measured public runs on Codex and OpenCode" had no way to be produced even on a machine with both CLIs.

After: make e2e-live YES=1 HOST=codex or HOST=opencode seeds the same repo, installs the plugin into it with aloop install <host>, drives the host's headless CLI (codex exec --json --full-auto, opencode run --format json) with the same intent and up-front approval, runs the same checks, and ends with a ledger row whose reproduce command names the host. --dry-run prints the command without spending anything. Models come from the host's routes (Codex's are empty, so it runs the session's model unless --model is given). A transcript with no result line records the cost as unmeasured (—), never $0.00.

How: test-first in scripts/test/e2e-live-hosts.test.py (5 checks with stub CLIs: install happens, the right command per host, usage errors, run-summary's host record), wired into make ci. README, OVERVIEW, ROADMAP M8, TRACKING, the evidence ledger and CHANGELOG updated; README suite count 43 → 44 (derived test). make ci green locally. The measured Codex/OpenCode rows themselves still need a machine with both CLIs.


Generated by Claude Code

…n-summary records the host

e2e-live.sh --host codex|opencode (make e2e-live YES=1 HOST=…) installs the plugin into
the seeded repo with `aloop install <host>` and drives the host's headless CLI
(`codex exec --json --full-auto`, `opencode run --format json`) with the same intent,
approval and checks; models come from the host's routes. --dry-run prints the command.
run-summary --host records the host, names it in the reproduce command, and records an
unmeasured cost as — instead of $0.00 when the transcript has no `result` line.

Test: scripts/test/e2e-live-hosts.test.py (5 checks, stub CLIs). Docs: README, OVERVIEW,
ROADMAP M8, TRACKING, evidence ledger, CHANGELOG.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015QxyVf3NgwsgRyYpBgDDTC
@adeelahmad
adeelahmad merged commit 4c1d5b4 into master Oct 18, 2026
4 checks passed
adeelahmad pushed a commit that referenced this pull request Oct 18, 2026
…rs to the gate's suppression check (run 22)

e2e-live.sh (#38) passed the Claude prompt as an argument after --allowedTools, which takes
every following word, so `claude -p` got no prompt and exited in 2s ("Input must be
provided"). The prompt goes on stdin again; --dry-run says so (test: e2e-live-hosts).

Live run 22 (wordfreq, 361f8d7): 13/13, 16m18s, $1.14, 2 wakes, 0 plugin reads, 3 blocks.
The final-gate persona failed the sprint on RED's #![allow(dead_code)] in tests/common/mod.rs
by its own open-ended grep, costing a GREEN re-dispatch. The persona now names exactly
assert_no_suppression's patterns and defers to `selfcheck final-gate` (test:
suppression-contract.test.py; eval final-gate #4). Ledger, ROADMAP M0.8, TRACKING, CHANGELOG.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015QxyVf3NgwsgRyYpBgDDTC
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.

2 participants

0