v0.20.0
Open Science v0.20.0
A release that connects sessions together and keeps long ones fast: composer session references (
#), side-chat advisories that reach a running main turn, long pasted text as restorable attachments, notebook package-installation progress, session-number lookup in global search, a consolidated Scenario models card, localized update-dialog release notes, and streamlined Marketplace browsing — alongside major long-session performance work and a long list of notebook, workspace, provenance, connector, and provider fixes.
Open Science is an open-source, local-first AI research workbench for scientists and researchers. It enables reproducible, inspectable research across models with scientific AI agents, Python and R execution, scientific data connectors, and cross-platform support for macOS, Windows, and Linux.
v0.20.0 is a feature release focused on cross-session collaboration and responsiveness. The composer gains a # session picker that inserts a clickable chip and grants the agent turn-scoped, read-only access to the referenced session's visible transcript — so one conversation can safely build on another. Side Chat becomes useful mid-run: its advisories now reach the main agent while its turn is still running, through each framework's native follow-up channel, with a durable fallback to the next user message. Long plain-text pastes no longer flood the composer: over 10,000 characters or 300 lines they become a managed attachment card whose Show in text field restores the exact text and caret position. Long sessions get materially faster: transcript rendering is bounded and indexed with cached images and prefetch before the scroll edge, notebook run history loads progressively in pages, startup stops waiting for transcripts and runtime probes before entering Home, the usage panel caches its projection, and review history loads through batched indexed queries. Denying a permission now truly holds — the agent is told it has no authorization for that operation and must not retry or approximate it through another route in the current turn. Notebooks show package-installation progress, protect environments bound to a session, and scope Python dependency uncertainty accurately. Global search finds sessions by number. Settings consolidates the subagent, reviewer, and vision model policies into one Scenario models card, the Marketplace separates Installed management from browsing, and the update dialog shows release notes in the selected interface language.
✨ Highlights
- Session references (
#). Reference another session directly in the composer. The inserted chip navigates back to the target session, and the agent receives read-only access to the referenced session's visible transcript for that turn. (#1682) - Side-chat advisories in running main turns. Advice from a side conversation now reaches the main agent while its turn is still running, through each framework's native follow-up channel instead of waiting for the next user message. (#1624)
- Long pasted text as attachments. Plain-text pastes over 10,000 characters or 300 lines become a managed attachment with a card in the composer; Show in text field restores the exact text and caret position, and undo re-stages the attachment. (#1678)
- Long-session performance. Transcript rendering is bounded and indexed with cached images and prefetching before the scroll edge, notebook history loads progressively in pages, startup defers transcript and runtime probes, and the usage panel caches its projection — long sessions open and scroll smoothly. (#1636, #1654, #1667, #1651, #1637, #1658)
- Permission denials hold. After you deny a permission, the agent is told it has no authorization for that operation and must not retry or approximate it through another route in the current turn. (#1653)
🚀 New Features
- Session references (
#) in the composer, with turn-scoped read access to the referenced session and clickable chips in drafts and sent messages. (#1682) - Session-number lookup in global search, with exact matches ranked first and stable number metadata on session rows. (#1691)
- Side-chat advisories injected into running main turns, with durable relay to the next user turn when injection is not possible. (#1624)
- Package installation progress for notebook environments, showing requested count, elapsed time, and expectation guidance in the session activity. (#1650)
- Scenario models card in Settings, consolidating the subagent, reviewer, and vision model policies into one accordion alongside a merged main-model section. (#1645)
- Simplified Marketplace navigation — Installed is the management home with one primary Browse Marketplace action, and Marketplace is a separate route with an explicit return path. (#1644)
- Localized update-dialog release notes — dynamic release notes now follow the selected interface language. (#1664)
🔧 Improvements
- Transcript images are cached as bounded renderer blobs, and the next transcript batch is prefetched before the scroll edge. (#1636, #1654)
- Long-session transcript projections are indexed, keeping rendering linear as conversations grow. (#1667)
- Notebook run history loads progressively in pages with scroll anchoring and a bounded page cache. (#1651)
- Startup no longer opens the last session transcript or waits for runtime probes before entering Home. (#1637)
- The usage settings panel reuses a fresh projection for ten minutes instead of reloading on every visit. (#1658)
- Review history loads through batched, indexed queries. (#1689)
🐛 Bug Fixes
- Permission denials now hold. The agent is told it has no authorization for the denied operation and must not retry or approximate it through another command, tool, route, or permission request in the current turn. (#1653)
- Notebook environments expose runtime targets consistently, protect environments still bound to a session from removal, keep REPL errors concise for agents, validate interrupted environment prefixes, and reject flag-like package names in named environments. (#1671, #1672, #1670, #1688, #1687)
- Provenance captures handoff-directory producer execution and accepts producers from ancestor conversation branches. (#1659, #1660)
- Artifact finalization keeps a completed run visible after a later save conflict. (#1647)
- Connectors handle versioned IDs and request timeouts with clearer failures, and surface actionable gate errors. (#1639, #1663, #1655)
- Sessions and workspace publish side-chat session updates, wake the main agent after delegated work settles, link Codex resume errors to Agent settings, keep the mobile sidebar usable, and prevent duplicate onboarding submissions. (#1642, #1532, #1676, #1668, #1674)
- Python dependency analysis scopes uncertainty to conditionally defined names, restoring accurate cross-run tracking. (#1640)
- Concurrent CLI sessions preserve their selected compute host bindings. (#1661)
- Settings align package-install controls with runtime ownership and stabilize token usage refresh. (#1648, #1638)
- Renderer events deliver reliably and isolate failing subscribers. (#1646, #1666)
⚠️ Breaking Changes
- Host SDK result fields are camelCase. Agent-facing Host SDK results that previously used snake_case fields (delegation receipts, frames, lineage, help descriptors) now use camelCase. Skills and scripts that read these fields must switch to the camelCase names; user-owned structured output is unchanged. (#1643)
📦 Install
Requirements: macOS 12+ (Apple Silicon or Intel), Linux x64, or Windows 10/11 x64. On first run, the onboarding wizard checks the environment and can install and configure an app-managed agent runtime. Once installed, the app can update itself in place.
Download the appropriate package from the Assets section below:
| Platform | Package |
|---|---|
| macOS (Apple Silicon) | DMG for ARM64 |
| macOS (Intel) | DMG for x64 |
| Linux | AppImage or Debian package for x64 |
| Windows | Installer for x64 |
macOS — first launch. Official release builds are Developer ID signed and notarized by Apple, so they open like other trusted applications. A locally built copy is not notarized and may require approval through macOS Privacy & Security.
Windows — first launch (unsigned build). No Authenticode certificate yet, so SmartScreen shows a bypassable "unrecognized app" prompt (More info → Run anyway). Verify that the package came from the official release page before continuing.
Build from source instead:
npm install
npm run build:mac # or: build:linux / build:win
🧭 What's in this release (maturity)
- ✅ Implemented: a local-first desktop, localhost-web, headless, CLI, and task-SDK surface over persistent projects and sessions with selectable message branches, branching into a new session from user messages or completed agent messages with persisted source lineage, composer session references (
#) with turn-scoped read access, reversible archiving with keyboard undo, project pinning, collapsed long user messages, persistent side conversations with advisories injected into running main turns, and SQLite-indexed summary-first session startup; selectable Claude Code, OpenCode, and Codex agent frameworks behind a shared provider turn-adapter interface; production subagent delegation with durable messaging, restart recovery, structured output, artifact and review evidence, and camelCase delegation APIs; review-gated session plans with CLI plan controls; a unified composer lane with a session-scoped message queue, active-specialist emphasis, and mid-turn Send now through native follow-up steering; hot-switching of compatible models and providers; multi-provider model configuration including an xAI OAuth subscription, a dedicated Vision model selector with persistent evidence relay, custom token limits, deepseek-v4-flash-vision-exp, and a consolidated Scenario models card; a configurable reviewer model policy with an isolated review runtime, durable assessment snapshots, and empty initial checks; a token usage dashboard; context-window composition insights with compaction boundaries; persistent Python/R/REPL kernels with bounded run-history payloads, separated approval and execution state, cross-run dependency tracking, package-installation progress, progressive history loading, terminated read-only previews, session-scoped remote SSH execution with key or password authentication, harvest ceilings, and a host viewImage capability; frame-scoped Host JavaScript artifact queries with five-field agent summaries, session diagnostics, and model introspection with camelCase Host LLM results; immutable artifact versions with artifact lineage access and connector artifact provenance; multi-format previews with view-in-context navigation, plan-artifact rendering, and message-artifact Markdown previews; file-based skills with conversational creation, save-as-skill turns, direct user folder support, a redesigned management experience, an imported group menu, and confirmed bulk deletion; cross-resource catalog tags with favorites and drag ordering; permissioned scientific connectors with immutable invocation identities, generated local IDs, pre-registered OAuth clients and redirect URIs, a complete authorization lifecycle, and aligned catalog interactions; opt-in review and bounded correction; personal specialist agent profiles with a scoped signed marketplace, governed installed packages, separated Installed and Marketplace browsing, capability icons, quick appearance editing, and capability-row navigation; scoped permission management; local folder access with cross-drive browsing; Chinese (Simplified and Traditional), Japanese, Korean, French, and Russian interfaces with multilingual README and contribution guides and localized dynamic release notes; turn-scoped conversation export as Markdown and PDF; global proxy settings with connectivity diagnostics; prominent update reminders with CLI-driven updates; a run-marks navigation rail; message-center alerts with project and task context; notifications with attention reasons; empty-conversation placeholder banners; a redesigned startup error notice and About with Help Center; contextual GitHub star prompts; a project-scoped command palette with session-number lookup; CLI Codex device login and project agent-context management; smooth live response rendering with bounded event admission and coalesced tool-burst IPC; collapsible side panels; split-view file preview; desktop notifications; a cross-surface notification message center; structured agent clarification cards; live session status; and session keyboard shortcuts. - 🚧 Partial: R remains managed-only; provider choice remains constrained by the active framework's endpoint compatibility; remote compute is SSH-only; skills remain local (no hosted public discovery commons); and review is opt-in and record-scoped.
- 🗺️ Roadmap: a unified model gateway, a hosted public skills and specialist discovery commons, Slurm/cloud-GPU execution, stronger sandboxing and credential isolation, and collaborative research workflows.
🐢 Known Limitations
- R is managed-only. A bring-your-own R interpreter path is not built yet.
- Remote compute is SSH-only. Slurm and cloud GPU submission are not built yet.
- Provider choice is per framework, not one unified gateway. The available protocol depends on the selected agent backend.
- Hot-switching applies only to registered compatible targets. Framework, auth-lane, wire-route, or unsafe capability changes still require a reconnect.
- Code reconstruction is LLM-generated. It does not replace deterministic reproduction; portable environment locks and full-fidelity session replay remain open.
- No hosted public specialist discovery commons. Specialist packages are portable across machines via import/export and the signed marketplace; what is not built yet is a hosted public discovery and forking hub.
- The task SDK is a first-generation surface. Task creation, polling, artifact retrieval, run progress, and cancellation work; broader orchestration remains open.
- Switching agent backends cannot transfer in-flight tool state. Existing conversation history can replay, but a running action is not migrated.
- Skills are local only. There is no shared public commons, cross-machine forking, or user-facing version pinning yet.
- The reviewer is opt-in and record-scoped. It does not replace domain-specific validation of citations, units, statistics, or methods.
- Scoped permissions cover allow-grants only. Network sandboxing, directory-level file access control, and a credential vault are not built yet.
- Windows builds are unsigned. SmartScreen may warn on first launch; official macOS builds are notarized.
- No local GPU compute backend.
- No multi-user real-time collaboration.
🙏 Acknowledgements
Thanks to @ewen-poch, @wen2zhou, @daanveer-tech, @justemu, and everyone in Discord, X, and Discussions.
Full Changelog: https://github.com/aipoch/open-science/commits/v0.20.0