OpenAI4S v0.2.0 is the first multi-platform release: one version, two desktop packages — macOS and Linux — both carrying the same embedded Python and offline science stack. (A Windows/WSL2 package is built and under stabilization; it ships in a future release.)
✨ Highlights
- Two desktop packages — the Apple Silicon
.dmgand a relocatable Linuxx86_64tarball with the same embedded Python and science stack. - Auto Mode (Stages 0–12) with a Guardian review boundary — autonomous runs route boundary actions to a read-only, digest-bound reviewer instead of failing closed.
- Honest completion evidence — a crashed or unrun cell can no longer be rendered as a clean success; completion is reconciled against what actually executed.
- Team Server M1–M4 — multi-tenant foundation, governance, cluster orchestration, and persistent Slurm sessions.
- MCP Streamable HTTP transport, the Volcengine DataPro connector, Doubao web search, and Anthropic Messages SSE streaming.
- 603 bundled Skills — the pinned 561-recipe bioSkills collection joins the 42 curated directories, installable anywhere via
npx. - The interrupt-signal train — a running R cell is now reliably stoppable on every platform (tgkill the main thread, reset inherited SIG_IGN at spawn, never drop a delivered SIGINT).
- Docker/Kubernetes deployment, the trajectory-ledger workbench view, read-only session sharing over an outbound relay, environments-as-a-transaction, and
openai4s --version.
📦 Downloads
| Asset | Platform | sha256 |
|---|---|---|
OpenAI4S-0.2.0-macos-arm64.dmg |
macOS 12+, Apple Silicon | e3665e5e548da35540cb75f42fde99173593acc3986a799a28d6f6b28e3ce864 |
OpenAI4S-0.2.0-linux-x86_64.tar.gz |
Linux x86_64 | 2eb33f7bf1399752fcd7f6375c4158d2822259899123a46eb2321a35701b7caa |
Verify a download against the attached SHA256SUMS: shasum -a 256 -c SHA256SUMS (macOS) or sha256sum -c SHA256SUMS (Linux).
- macOS — drag the app from the DMG into Applications. The image is not notarized: on first launch use System Settings → Privacy & Security → "Open Anyway" (macOS 15+), or right-click → Open (macOS 12–14).
- Linux —
tar -xzfanywhere, then./OpenAI4Sto start (or./install.shfor a per-user PATH entry and menu item; no root needed). Installbubblewrapso cells run sandboxed. - Windows — the WSL2-based package is not part of this release while it is stabilized; it ships in a future release. Meanwhile, install inside WSL2 with
pip install openai4s, or unpack the Linux tarball in your WSL2 distribution. - PyPI —
pip install openai4sworks on every platform, including Intel Macs and arm64 Linux. - The R kernel is not bundled in any package (it needs a conda environment): install micromamba/mamba/conda, then run
openai4s setup.
What's Changed
Platforms & packaging
- docs: macOS DMG startup guide + README refresh (unblocks stale PyPI-publish governance tests) by @Nobody-Zhang in #35
- feat(release): Linux and Windows desktop packages, and close an xattr read of denied files by @Nobody-Zhang in #58
- fix(release): stop anchoring the Linux bundle to PyPI, which can never hold it by @Nobody-Zhang in #67
- fix(windows): stop wsl.exe's stdout becoming the launcher's return value by @Nobody-Zhang in #68
- feat: add supported Windows WSL2 launcher by @Nobody-Zhang in #81
- feat(deploy): official Docker and Kubernetes deployment by @Nobody-Zhang in #89
- release(v0.2.0): version bump, CLI --version, and the v0.2.0 README sweep by @Nobody-Zhang in #120
Agent & kernel runtime
- fix: improve Conda environment discovery by @Linmj-Judy in #37
- Promote v0.3 to main: dual-loop hardening, R as a first-class channel, and two review rounds by @Nobody-Zhang in #52
- Add Anthropic Messages SSE streaming by @stau-7001 in #79
- fix: land the completion-evidence reconciliation train — honest completion reporting, serve/stop lifecycle, suite hermeticity by @Nobody-Zhang in #82
- fix(kernel): preserve R fallback capture and refresh contributors by @Nobody-Zhang in #90
- feat(auto-mode): Stages 0–12, and the review pass that hardened them by @Nobody-Zhang in #103
- fix(kernel): never drop a delivered SIGINT, and install the Skill library with npx by @Nobody-Zhang in #111
- fix(kernel): make the interrupt SIGINT actually land — tgkill the main thread, reset inherited SIG_IGN at spawn by @Nobody-Zhang in #119
Web workbench & API
- feat(webshare): share sessions read-only via an outbound relay tunnel by @Nobody-Zhang in #38
- fix(webui): route web sharing through the versioned API prefix by @Nobody-Zhang in #42
- refactor(server): introduce declarative route registry for kernel API by @wangyu-sd in #87
- ui: complete the trajectory ledger view by @Nobody-Zhang in #91
Science: skills, connectors & compute
- science: add BioProBench skill (with review fixes) — supersedes #36 by @Nobody-Zhang in #39
- Feat/retrosynthesis workflow triage by @wangyu-sd in #70
- feat: add the Volcengine DataPro connector and Doubao web search over a new MCP Streamable HTTP transport by @Nobody-Zhang in #88
- fix(doubao,mcp): a fully-read response died on its own closed socket by @Nobody-Zhang in #96
- Add model-backed retrosynthesis planning and deployment by @wangyu-sd in #98
- feat(skills): integrate pinned bioSkills collection and fix CI test bugs by @Linmj-Judy in #108
- feat(benchmark): add tool bring-up verifier and workflow cases by @Linmj-Judy in #109
- fix: MCP tools discovery crash, false-ready env steps, uv fallback by @Nobody-Zhang in #115
- feat(model-backend): formalize bring-up & admission; ship protein-design MCP; fix CI test bugs by @Linmj-Judy in #117
Team Server & orchestration
- feat(team): Team Server M1–M4 — multi-tenant foundation, governance, cluster orchestration, persistent Slurm sessions by @Nobody-Zhang in #92
- fix(team,orchestration,kernel): the defects a max-effort review found by @Nobody-Zhang in #104
- release: next → main — Team Server M1–M4, auto mode Stages 0–12, cluster orchestration, and the fixes two review passes found by @Nobody-Zhang in #110
Security & trust
- Trust Foundation (0.1.x Trust Patch): P0 correctness, secrets, durability, contract v1 by @Nobody-Zhang in #41
- Tenth-round review fixes: terminal-evidence integrity, keychain boundary, resume cursors, and per-directory docs by @Nobody-Zhang in #44
- fix(security): survive squash-rewritten fingerprints without widening a path rule by @Nobody-Zhang in #57
- fix(compute): fail closed in the BYOC confinement probe, and describe the boundary that now exists by @Nobody-Zhang in #62
- fix(security): an inline gitleaks:allow cannot cover the commit before it by @Nobody-Zhang in #63
- fix(security): deny the whole read class over $HOME in the BYOC profile by @Nobody-Zhang in #65
- v0.3 trust-boundary batch: P0-0 through P1-B, audited against production call chains by @Nobody-Zhang in #69
Docs, CI & tooling
- docs(readme): credit joint research laboratory by @ClarenceYC in #53
- fix(ci,contract): exempt dependabot by branch, and unpin a raced response shape by @Nobody-Zhang in #54
- chore(lint): move ruff to astral-sh v0.16.0 and pin the rule set explicitly by @Nobody-Zhang in #55
- test(byoc): probe the git directory a worktree actually has by @Nobody-Zhang in #56
- docs(readme): name the originating lab in the citation block by @Nobody-Zhang in #60
- chore: sync next with main after the v0.3 squash and the July 31 gate fixes by @Nobody-Zhang in #61
- chore(ci): retire the history secret scan and the Linux sandbox job by @Nobody-Zhang in #64
- fix(contract): stop publishing a thread race as the example-session shape by @Nobody-Zhang in #66
- docs(readme): update joint laboratory attributionUPDATE: orgnization info by @ClarenceYC in #74
- docs: refresh the root README and correct 28 directory READMEs against the code — plus the five source defects that audit found by @Nobody-Zhang in #77
- chore: run the offline suite — and the response capture — in parallel by @Nobody-Zhang in #107
Dependencies
- chore(deps): bump the workflow-actions group across 1 directory with 6 updates by @dependabot[bot] in #45
- chore(deps): bump https://github.com/pycqa/isort from 5.12.0 to 8.0.1 by @dependabot[bot] in #46
- chore(deps): bump https://github.com/pre-commit/pre-commit-hooks from v4.2.0 to 6.0.0 by @dependabot[bot] in #48
- chore(deps-dev): bump pre-commit from 4.6.0 to 4.6.1 in the development-dependencies group across 1 directory by @dependabot[bot] in #49
- chore(deps-dev): bump mypy from 1.20.2 to 2.3.0 by @dependabot[bot] in #50
- chore(deps): bump rdkit from 2026.3.3 to 2026.3.4 by @dependabot[bot] in #51
- chore(deps): declare the dev floors the gate is actually verified against by @Nobody-Zhang in #59
- chore(deps): land the black / ruff / codeql-action bumps, with the reformat and the target-version pin Dependabot cannot author by @Nobody-Zhang in #75
- chore(deps): bump the workflow-actions group with 2 updates by @dependabot[bot] in #76
- chore(deps): bump rdkit to 2026.3.5 and codeql-action/upload-sarif to 4.37.6 by @Nobody-Zhang in #86
- chore(deps): batch the #93/#94/#95 Dependabot rollup into one branch by @Nobody-Zhang in #97
New Contributors
- @Linmj-Judy made their first contribution in #37
- @dependabot[bot] made their first contribution in #45
- @ClarenceYC made their first contribution in #53
- @stau-7001 made their first contribution in #79
Contributors
- @Nobody-Zhang — 43 PRs — primary maintainer
- @Linmj-Judy — 4 PRs — bioSkills collection, tool bring-up verifier, model-backend bring-up, conda env discovery
- @wangyu-sd — 3 PRs — retrosynthesis workflow & planning, declarative kernel-API route registry
- @ClarenceYC — 2 PRs — joint research laboratory attribution
- @stau-7001 — 1 PR — Anthropic Messages SSE streaming
- @YuyangSunshine — BioProBench skill (authored PR #36, landed via #39)
- @dependabot[bot] — 7 dependency PRs
Commit trailers also credit the Claude models used throughout development as AI pair-programming assistants.
Full Changelog: v0.1.0...v0.2.0