Skip to content

v0.15.1

Choose a tag to compare

@github-actions github-actions released this 15 Aug 13:09
· 790 commits to main since this release
16ea482

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.artifacts now filters by the exact latest-producer frameId instead of sessionId, returns a fixed camelCase JavaScript projection (including nullable provenance fields and separate source/Version timestamps), makes count the total pre-pagination match count with cursors bound to all filters, and supports exact MIME types plus validated top-level prefixes such as text/. (#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 contracthost.artifacts replaces the sessionId filter with exact latest-producer frameId filtering; 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; count is the total pre-pagination match count and cursors bind to all filters; exact MIME types and validated top-level prefixes such as text/ are supported; provenance metadata reads are batched. (#1248)

⚠️ Breaking Changes

  • Frame-scoped host.artifacts. host.artifacts no longer accepts sessionId. Callers must use frameId for exact producer filtering. Result fields such as projectId, latestVersionId, agentFrameId, and nextCursor are camelCase. (#1248)

    Migration: any notebook code or skill script calling host.artifacts({ sessionId }) must switch to frameId filtering 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.