Skip to content

v0.14.0

Choose a tag to compare

@github-actions github-actions released this 12 Aug 12:00
· 143 commits to main since this release
59747d3

Open Science v0.14.0

Production subagent delegation workflows, immutable resource identities with camelCase Host JavaScript APIs, smooth live response rendering, a new-conversation keyboard shortcut, durable permission request serialization, and refreshed bundled skill content — alongside connector CLI path restoration, global search stabilization, preview scheme registration, and project-file stability during terminal streaming.

Open Science is an open-source, model-agnostic AI workbench for scientific discovery — a self-hosted desktop app pairing a plan-and-execute agent with persistent compute, durable project/session storage, and inspectable research artifacts.

v0.14.0 is a minor release. It introduces production subagent delegation so an agent can delegate structured work to a sub-agent with durable admission, bidirectional messaging, restart recovery, structured output, and artifact and review evidence — all projected into the workspace alongside the main session. Resource identities for connectors and specialists are now immutable: connectors get a fixed lowercase invocation name separate from their editable display name, and specialists keep a stable identity after creation, so renaming a connector or specialist no longer breaks routing, permission grants, or generated skill references. The public Host JavaScript API surface has been migrated to camelCase — method names and caller-supplied option keys now follow standard JavaScript conventions, with translation to the internal wire protocol at the boundary. Live response rendering has been smoothed to reduce flicker during streaming, markdown blocks are preserved on completion, and presentation progress survives view remounts. A new-conversation keyboard shortcut and durable permission request serialization round out the feature side. On the fix side, custom MCP server CLI paths are restored, global search results are stabilized, bundled skill content refreshes when changed, project files remain stable during terminal streaming, preview schemes register before first window, mention filenames stay together, and the composer regains focus after session navigation.

✨ Highlights

  • Production subagent delegation. The agent can now delegate structured work to a sub-agent within the same project. Each delegation gets durable admission, bounded observation, continuation, cancellation, structured output, artifact and review evidence, and partial-failure handling. Bidirectional messaging uses durable receipts with fair scheduling, branch parking and restoration, and restart recovery. Model selection supports fixed and inherited modes with specialist resolution and provider/framework capability checks. Subagent status, transcripts, messages, questions, permissions, and previews are projected into the renderer with accessible Stop workflows. (#1106)
  • Immutable resource identities. Connectors now have an immutable lowercase invocation name separate from an editable display name, so renaming a connector regenerates its generated skill prose without changing routing, permission grants, or host.mcp examples. Specialists likewise keep a stable name after creation while the display name remains editable. Personal skill names must be lowercase-hyphenated standard names and are used unchanged for frontmatter, package directory, and catalog identity. (#1104)
  • camelCase Host JavaScript APIs. The public Host JavaScript surface — host.agents, host.compute, and related methods and caller-supplied option keys — now uses standard camelCase. Former snake_case public spellings have been removed; translation to the internal wire protocol happens at the adapter boundary. (#1109)
  • Smooth live response rendering. Live response rendering has been rewritten to reduce flicker during streaming, preserve markdown block structure on completion, and survive view remounts without losing presentation progress. Terminal event recomputation is also avoided, improving renderer responsiveness during long tool-activity sequences. (#1121, #1131, #1124, #1118)

🚀 New Features

  • Production subagent delegation — authenticated delegation execution with durable admission, bounded observation, continuation, cancellation, structured output, artifact and review evidence, and partial-failure handling; reliable bidirectional main/subagent messaging with durable receipts, fair scheduling, branch parking/restoration, and restart recovery; fixed and inherited subagent model selection with specialist resolution and provider/framework capability checks; usage attribution; and persisted renderer projections for subagent status, transcripts, messages, questions, permissions, previews, and Stop workflows. (#1106)
  • New-conversation keyboard shortcut — a keyboard shortcut to start a new conversation is now available from the workspace. (#1113)

⚠️ Breaking Changes

  • Immutable invocation names for connectors and specialists. Custom connectors must now declare an immutable lowercase-hyphenated name at creation; the displayName is editable but not used for runtime routing. Former display-label and UUID invocation aliases are removed — connectors are invoked only by name. Connector template v1 is changed in place: old slug templates are rejected. Stored connector settings are canonicalized on read so current records remain loadable, but ambiguous allow-policy migration fails closed. Specialist name is immutable after creation; displayName remains editable. Personal skill creation rejects invalid or duplicated names rather than rewriting them. (#1104)

    Migration: connectors created before v0.14.0 that relied on display-label or UUID invocation need to be re-invoked using their immutable name. Connector templates using the former slug field must be updated to use name and displayName.

  • camelCase Host JavaScript APIs. The public Host JavaScript methods and caller-supplied option keys now require camelCase. Former snake_case public spellings (host.artifactPath, renamed host.agents and host.compute methods, and all listed input keys) have been removed. RPC method names, wire parameters, persisted records, and return projections are unchanged — only the public adapter spelling changes. Return objects retain intentionally snake_case fields such as latest_version_id and job_id. (#1109)

    Migration: any notebook code or skill script calling Host JavaScript methods with former snake_case keys must be updated to camelCase. See the bundled skill examples for the correct spelling.

🔧 Improvements

  • Live response rendering has been smoothed to reduce flicker during streaming; markdown block structure is preserved on completion, and presentation progress survives view remounts. (#1121, #1131, #1124)
  • Terminal event recomputation is avoided, improving renderer responsiveness during long tool-activity sequences. (#1118)
  • Connector template v1 now requires name and displayName, rejecting the former slug shape. (#1104)
  • Database migration ledger smoke updates are now gated alongside the versioned schema migration enforcement. (#1110)

🐛 Bug Fixes

  • Durable permission requests serialized. Concurrent durable permission requests could race, producing inconsistent ordering or lost approvals. Requests are now serialized to preserve ordering and prevent loss. (#1130)
  • Connector CLI paths restored for custom MCP servers. Custom MCP servers that specify a CLI path were not resolving correctly, preventing the server from starting. The CLI path resolution is now restored. (#1122)
  • Global search results stabilized. Async search results could arrive out of order or flash stale results before settling. Results are now stabilized to present a consistent final state. (#1119)
  • Bundled skill content refreshed on change. When a bundled skill's content changed on disk (e.g., after an update), the agent could continue using the cached version. Changed skill content is now refreshed automatically. (#1117)
  • Project files kept stable during terminal streaming. Active terminal output streaming could cause the project file list to flicker or reorder. Files are now kept stable during streaming. (#1116)
  • Preview scheme registered before first window. A managed URL scheme used for preview rendering could fail on the first window launch because it was registered after the window was created. The scheme is now registered before window creation. (#1115)
  • Mention filenames kept together. When using @ mentions with filenames containing spaces, the mention could split at the space boundary. Filenames are now kept together as a single mention token. (#1127)
  • Composer focus restored after session navigation. Switching sessions could leave the composer without focus, requiring an extra click to resume typing. The composer now regains focus after navigation. (#1125)
  • Test windows kept hidden. E2E test windows could briefly appear on screen during CI runs. They are now kept hidden. (#1129)

📦 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, reversible archiving, project pinning, and persistent side conversations; 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, and artifact and review evidence; review-gated session plans with durable execution contracts and persistent plan call records; a unified plan-approval, permission-approval, and ask-user composer lane; hot-switching of compatible models and providers without reconnecting the agent process; agent-aware context replay respecting each framework's context path; multi-provider model configuration with combined model/reasoning selection; persistent Python/R/REPL kernels and remote SSH execution with read-only installed-package inventories, inline image-output previews, host capability introspection, notebook artifact read access, and bounded REPL inference; immutable artifact versions with inspectable audit evidence, artifact lineage access, and on-demand LLM-driven code reconstruction; multi-format previews including TIFF and code syntax highlighting; file-based skills with conversational creation, conversational imports, keyword search from GitHub URLs, authenticated GitHub access, and ZIP export; permissioned scientific connectors with standard remote OAuth sign-in, portable configuration import/export, runtime status and recovery surfaces, and immutable invocation identities; opt-in review and bounded correction; personal specialist agent profiles with scoped capabilities, conversational customization, immediate in-flight handoff, package import/export, and immutable invocation identities; scoped permission management with global, project, and session grants and live profile changes during a running turn; local folder access via @path mentions; conversation export as Markdown and PDF; selective session-artifact downloads; per-turn token usage; message timing metadata; tool-activity elapsed time; completed-turn agent and model identification; context-usage persistence across restarts; branch-aware context-window run trends; a project-scoped command palette; refined session sidebar rows with project actions and agent context; project-scoped frame reads; camelCase Host JavaScript APIs; smooth live response rendering; a new-conversation keyboard shortcut; collapsible side panels; split-view file preview beside the session; prompt history navigation; session link favicons; branded loading indicators; adaptive macOS app icons; offline detection indicator with a Network status panel; desktop notifications plus durable unread conversation badges; a cross-surface notification message center with durable read state; structured agent clarification cards; live session status on the Home dashboard; 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; specialist roles are personal-only (no cross-machine sharing); and review is opt-in and record-scoped.
  • 🗺️ Roadmap: a unified model gateway, a public skills commons and cross-machine specialist sharing, 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.
  • Specialist roles are personal-only. There is no shared public commons or cross-machine specialist forking yet.
  • 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.