Daniel Kim 7fc7128d0e Retry ETXTBSY on detection spawns to fix flaky main CI (#408)
* Retry ETXTBSY on detection spawns to fix flaky main CI

Two main-branch CI runs failed within hours when a test exec'd a
just-written shell script: execve returned ETXTBSY because a concurrent
fork elsewhere in the test binary briefly held an inherited write fd on
the target until its own exec. probe_bin mapped that transient spawn
error to Unknown, failing assertions that expect a deterministic Broken.

spawn_with_permit is the funnel for every detection child, so retry
ExecutableFileBusy there — the window is milliseconds. Also covers the
production equivalent: probing a CLI while its installer replaces it.

* Escalate the ETXTBSY retry and reuse it for the OpenCode server spawn

3x25ms only tolerated ~75ms of sibling fork-to-exec slowness; the budget
now escalates 25->400ms (~0.8s total), still far inside every caller
deadline, and only paid when ETXTBSY actually fires. Extracted as
spawn_retrying_busy so the same guard covers the one other site where
the transient reaches a user: start_server spawning an opencode binary
its installer is mid-replacing.

* Drop the dead backoff cap, document Unix-only ETXTBSY, test the retry

Review nits: with five retries the escalating backoff peaks at 400ms on
its own, so the .min() clamp never binds; ExecutableFileBusy is a Unix
phenomenon; and the FnMut closure makes the retry policy checkable with
injected errors — no process fixture needed.
2026-09-22 11:20:00 -07:00
…
…
…
…
…
…
…

OpenResearch

The local-first workspace for research agents and autoresearch.

Turn Claude Code, Codex, OpenCode, Cursor, or Google Antigravity into research agents that can review literature, develop hypotheses, run experiments, and produce research artifacts.

Download OpenResearch for macOS Download OpenResearch for Windows (Beta) Install OpenResearch for Linux

Documentation · Releases

macOS 11+ · Windows beta requires Git for Windows

GitHub Trending: #1 Repository of the Day alphaXiv/OpenResearch | Trendshift

Get started

Install the CLI on macOS or Linux, then launch OpenResearch:

curl -LsSf https://openresearch.sh/install.sh | sh
orx up

On Windows, use the beta download above after installing Git for Windows.

orx up opens the local dashboard at http://127.0.0.1:4791.

Connect a local model to use LM Studio, oMLX, Ollama, or a custom endpoint with OpenCode.

Create an account at openresearch.sh to receive email updates and use managed OpenResearch compute.

Built for research agents

OpenResearch gives you
Parallel exploration Give each research direction an independent agent session and isolated git worktree.
Reproducible experiments Track variants in a git-native experiment tree; every run receives an immutable archive of its recorded commit.
Evidence in context Keep logs, diffs, files, results, and artifacts tied to the work that produced them.
Your choice of agent Use Claude Code, Codex, OpenCode, Cursor, or Google Antigravity, with the harness and model selected per session.
Your choice of compute Run locally, on your own infrastructure, or with managed OpenResearch compute.
Local ownership Keep projects, conversations, experiments, runs, logs, code, and artifacts on your machine.

Autoresearch

OpenResearch can run the full loop autonomously: propose an idea, change the code, launch an experiment, inspect the evidence, and decide what to try next. Multiple agents can explore different directions in parallel while the experiment tree preserves their lineage.

Run anywhere

The same committed source snapshot can run locally, over SSH, or on Slurm, Kubernetes, Ray, Hugging Face Jobs, Modal, Tinker, and managed OpenResearch compute. Publishing the repository is not required.

Run the workspace next to remote GPUs while using the browser on your laptop:

orx up --remote user@host

SSH config aliases and custom ports are supported. The remote service binds to loopback and has no application-level authentication, so other users on that host can reach it.

CLI and agent integration

Install the OpenResearch skill into supported coding agents:

orx install-skills

Common commands:

orx projects
orx project view <project-id>
orx runs <project-id>
orx logs <run-id>
orx exp run <experiment-id>
orx discover keyword <query>
orx paper <arxiv-id-or-doi>

Run orx --help or orx <command> --help for the complete interface.

Local by default

OpenResearch runs on 127.0.0.1 with a local SQLite store. Creating a project or launching a run does not publish your code. An openresearch.sh account is only used for service-owned capabilities such as organizations and managed compute.

Usage analytics

Official release builds send opt-out, coarse usage events tied to a random installation ID. They do not include code, prompts, file contents or paths, repository names, tokens, emails, or project and experiment identifiers.

orx telemetry off
orx telemetry status
orx <command> --no-telemetry

Source and development builds do not send analytics.

S
Description
GitHub Trending: alphaXiv/OpenResearch
Readme MIT
119 MiB
Languages
Rust 70.7%
TypeScript 24%
JavaScript 3.5%
Python 0.9%
Shell 0.4%
Other 0.3%