v0.15.1
Open Science v0.15.1
A run-marks navigation rail for long conversations, frame-scoped Host JavaScript artifact queries, bounded notebook run-history payloads, and compute harvest ceilings with local disk protection — alongside stale ask-user interaction prevention, web reconnect event replay, coordinated project deletion cleanup, Windows PowerShell ACL fallbacks, session-branch switch blocking during plan approval, and storage recovery hardening.
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.15.1 is a patch release. It adds a run-marks navigation rail so long desktop conversations can be scanned and revisited: each visible human-authored prompt gets a compact mark fixed at the conversation panel midpoint, with a hover preview showing the user line and up to two agent lines, keyboard focus, reduced-motion support, and click navigation that stays stable while approval surfaces resize. The Host JavaScript artifact query contract is aligned to frame scoping — host.artifacts filters by exact latest-producer frameId instead of sessionId, returns a fixed camelCase projection with nullable provenance fields and separate source and version timestamps, makes count the total pre-pagination match count, supports exact MIME types and validated top-level prefixes such as text/, and batches provenance metadata reads. Notebook run-history payloads are bounded — executable code, output text, images, and run counts all have explicit budgets so long-lived or output-heavy sessions no longer cause memory spikes and expensive rewrites. Compute harvest gains application-owned ceilings with a local free-space reserve. On the fix side, stale ask-user interactions are prevented, the web client replays missed events after reconnect, project deletion cleanup is coordinated, Windows falls back when PowerShell ACL launch is denied, session-branch switching is blocked during plan approval, and storage recovery paths are hardened across staged-copy failures, committed-root preservation, and IPC errors.
✨ Highlights
- Run marks navigation rail. Long desktop conversations gain a compact rail of marks — one for each visible human-authored prompt — fixed at the conversation panel midpoint so it stays put while approval or permission surfaces resize the transcript. Hover or keyboard focus emphasizes a mark and tapers its neighbors; a compact preview shows one dark user line and up to two muted agent lines; clicking jumps to that run. (#1245)
- Frame-scoped Host artifact queries.
host.artifactsnow filters by the exact latest-producerframeIdinstead ofsessionId, returns a fixed camelCase JavaScript projection (including nullable provenance fields and separate source/Version timestamps), makescountthe total pre-pagination match count with cursors bound to all filters, and supports exact MIME types plus validated top-level prefixes such astext/. (#1248) - Bounded notebook run-history payloads. New executable code is bounded at 1 MiB, run output at a shared 2 MiB text budget with per-image and per-run image budgets, all enforced at both the producer and persistence boundaries; state reads return the most recent 100 runs with a total run count; ordinary kernel status changes stay in memory instead of rewriting the full document — eliminating the memory and IPC spikes of long-lived, output-heavy sessions. (#1236)
- Compute harvest ceilings. Harvested compute results enforce application-owned ceilings — 100 MiB per file, 500 MiB per job including stdout/stderr, declared outputs before logs, and a 2 GiB local free-space reserve — streamed through byte-bounded SSH processes, so a large remote output can no longer exhaust the local disk. (#1237)
🚀 New Features
- Run marks navigation rail — a desktop-only rail with one mark per visible human-authored prompt, fixed at the conversation midpoint independent of bottom-panel resizing; hovered or focused marks are emphasized with distance-tapered neighbors; a compact preview shows the user line plus up to two explicitly linked agent lines; click navigation, keyboard focus, reduced motion, RTL positioning, and localized accessibility labels are supported. (#1245)
- Frame-scoped Host JavaScript artifact contract —
host.artifactsreplaces thesessionIdfilter with exact latest-producerframeIdfiltering; Project ownership stays token-bound while Uploads are excluded from frame-filtered results; results use a fixed camelCase projection with nullable provenance fields and separate source/version timestamps;countis the total pre-pagination match count and cursors bind to all filters; exact MIME types and validated top-level prefixes such astext/are supported; provenance metadata reads are batched. (#1248)
⚠️ Breaking Changes
-
Frame-scoped
host.artifacts.host.artifactsno longer acceptssessionId. Callers must useframeIdfor exact producer filtering. Result fields such asprojectId,latestVersionId,agentFrameId, andnextCursorare camelCase. (#1248)Migration: any notebook code or skill script calling
host.artifacts({ sessionId })must switch toframeIdfiltering and read the camelCase result fields. See the bundled self-awareness skill for the updated contract.
🔧 Improvements
- Notebook state reads return the most recent 100 runs with a non-persisted total run count; notebook views disclose the recent window and truncated output, and images use lazy async decoding. (#1236)
- Compute queries, concurrency, IPC, and renderer contracts are keyed by globally stable session identity, with cross-project session-ID reuse rejected and duplicates omitted from startup hydration. (#1237)
- The web connection recovery copy is localized with the rest of the interface. (#1241)
🐛 Bug Fixes
- Stale ask-user interactions prevented. An ask-user card that outlived its owning turn could still accept answers, desynchronizing the conversation. Stale interactions are now rejected. (#1247)
- Web events replayed after reconnect. Events emitted while the web client was reconnecting were missed, leaving the UI in a stale state. Missed events are now replayed after reconnect. (#1235)
- Project deletion cleanup coordinated. Deleting a project could leave orphaned cleanup work behind. Cleanup is now coordinated with deletion. (#1234)
- Stale project edits prevented. Concurrent project edits could overwrite each other with stale data. Stale edits are now rejected and recovery is improved. (ec04a07)
- Staged-copy cleanup recovery. A failure during staged-copy cleanup could leave storage in an unrecoverable state. Recovery is now handled. (#1252)
- Committed root preserved on cleanup errors. A cleanup error could discard the committed storage root. The committed root is now preserved. (#1233)
- Data-root actions recovered after IPC errors. Storage actions could go missing after an IPC error during data-root operations. They are now recovered. (#1243)
- Windows ACL cache owner set. The Windows ACL fallback did not set the cache owner, producing incorrect ownership on the notebook cache directory. The owner is now set. (#1250)
- PowerShell ACL launch fallback. When Windows PowerShell ACL launch is denied, the runtime now falls back instead of failing notebook startup. (#1246)
- Session-branch switching blocked during plan approval. Switching message branches during an active plan approval could desynchronize the plan state. Switching is now blocked while a plan approval is pending. (#1232)
- Personal skill editor budgets enforced. The personal skill editor could write oversized content past its documented budgets. Budgets are now enforced. (#1238)
- Sidebar order aligned. The Settings entry is placed before Notifications in the workspace sidebar. (#1244)
📦 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 with persisted source lineage, 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, artifact and review evidence, and camelCase delegation APIs; review-gated session plans; a unified composer lane; hot-switching of compatible models and providers; multi-provider model configuration with DeepSeek V4 Pro Responses and GLM-5.3 support; a configurable reviewer model policy with an isolated review runtime and durable assessment snapshots; persistent Python/R/REPL kernels with bounded run-history payloads, separated approval and execution state, remote SSH execution with harvest ceilings, and a host viewImage capability; frame-scoped Host JavaScript artifact queries; immutable artifact versions with artifact lineage access; multi-format previews; file-based skills with conversational creation, save-as-skill turns, direct user folder support, bulk management, and imports; permissioned scientific connectors with immutable invocation identities; opt-in review and bounded correction; personal specialist agent profiles; scoped permission management; local folder access with cross-drive browsing; Chinese (Simplified and Traditional) interface translations; global proxy settings; prominent update reminders; a run-marks navigation rail; conversation export as Markdown and PDF; a project-scoped command palette; CLI Codex device login; smooth live response rendering; 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; 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, @roxi3906, @daanveer-tech, @justemu, and everyone in Discord, X, and Discussions.