Skip to content

harness-opencode/test: the crashed drive's stand-in host stops sending at the crash (fixes CI on main) - #15

Merged
pranaygp merged 1 commit into
mainfrom
fix/opencode-restart-test
Oct 19, 2026
Merged

pranaygp merged 1 commit into
mainfrom
fix/opencode-restart-test

Conversation

@pranaygp

Copy link
Copy Markdown
Collaborator

CI on main has failed every run since 89c0e14 (the push and three daily runs), always on one test: harness-opencode's "a crash while the model streams, after a never tool…" (added in #4). It also failed on one of #10's runs.

Why: the test's crash is in-process (the chaos step). The first drive is killed, but its stand-in OpenCode host keeps streaming the reply the crash cut off: unsafe_send_email returned: email sent to a@b.c (message id …), 12 characters every 150 ms. That's about half a second of deltas after the crash. When the next drive's recovered reply starts streaming within that window, the two interleave after the restart event. Examples from the CI logs:

  • "nt to a@b.c Recovered from the log: the email we(message id nt out.msg_qnjjsm74"
  • "Recovered from the log: the email went to a@b.c nt out."

The test's own comment said a real crash writes nothing more; the stand-in didn't model that. So it was a race. It passed when #4 merged and has lost every run since.

Fix: the stand-in host stops sending at the crash, as a real crash takes the host with it. With that, the test checks the resumed text exactly. The text that streamed before the crash is still checked. Locally, the old test failed 1 run in 6; the new one passed 15 of 15. The whole harness-opencode suite passes.

Also in docs/followups.md: live events aren't fenced. What this stand-in did (a drive's host still streaming after the next drive took over) could happen with a driver still running after a takeover, such as a stalled process.

Test and docs only. harness-opencode isn't published, so there's no changeset.

🤖 Generated with Claude Code

…g at the crash

CI on main failed every run since 89c0e14 on this test: after the `restart` event, the resumed reply came interleaved with deltas of the reply the crash cut off. The chaos crash is in-process, so the first drive's stand-in OpenCode host kept streaming that reply (12 characters every 150 ms) after the crash, and it raced the next drive's recovered reply. A real crash takes the host with it: the stand-in now stops sending at the crash, and the test checks the resumed text exactly. Locally the old test failed 1 run in 6; the new one passed 15 of 15.

docs/followups.md: live writes aren't fenced, so a driver still running after a takeover could do the same.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 19, 2026 15:42
@vercel

vercel Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
durable-fx-example Ready Ready Preview, v0 Oct 19, 2026 3:43pm UTC
harness-on-world Ready Ready Preview, v0 Oct 19, 2026 3:43pm UTC

Copilot AI 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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@pranaygp
pranaygp merged commit dda5ef2 into main Oct 19, 2026
12 of 13 checks passed
@pranaygp
pranaygp deleted the fix/opencode-restart-test branch October 19, 2026 16:05
pranaygp added a commit that referenced this pull request Oct 19, 2026
…est (#15)

main fixed the same flaky test in #15 (dda5ef2). Taking main's version here, so this stack merges into main with no conflict.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
pranaygp added a commit that referenced this pull request Oct 19, 2026
…est (#15)

main fixed the same flaky test in #15 (dda5ef2). Taking main's version here, so this stack merges into main with no conflict.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

This branch was successfully deployed

2 active deployments
Preview – harness-on-world — 8c9a6484 Deployed Oct 19, 2026 by vercel[bot]
Preview – durable-fx-example — 8c9a6484 Deployed Oct 19, 2026 by vercel[bot]
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