Back to Blog
5 min read

Open Science v.0.9.2 Released

Hand off to a specialist the moment you switch, see which agent framework and model ran each completed turn, and keep your context-usage indicator across restarts — while the Windows renderer recovers from native crashes, the notebook control plane and ACP session lifecycle get considerably harder, and agent context overhead shrinks.

AIPOCHAugust 2, 2026

Hand off to a specialist the moment you switch, see which agent framework and model ran each completed turn, and keep your context-usage indicator across restarts — while the Windows renderer recovers from native crashes, the notebook control plane and ACP session lifecycle get considerably harder, and agent context overhead shrinks. Watch: Open Science v0.7.2

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.9.2 is a patch release on top of v0.9.1. It brings immediate specialist handoff so switching agents takes effect on the in-flight turn instead of waiting for the next boundary, completed-turn agent framework and model identification in the usage popover, and context-usage persistence so the indicator survives application restarts. Under the hood it hardens the Windows renderer against native crashes with automatic recovery, serializes the notebook session registry lifecycle, preserves the control RPC capability across ACP cleanup, recovers incompatible Claude session resumes, bypasses proxies for the Codex local Responses bridge, and reduces agent context overhead by deriving activity groups without model control calls — while a broad ownership refactor continues to extract narrower, independently testable modules from the ACP runtime, notebook runtime, Settings service, main process, and headless task runner, backed by a consolidated CI runner bundle and a dependency-aware shadow gate.

Highlights

Immediate specialist handoff. Switching specialists mid-conversation now hands the in-flight turn to the new specialist right away instead of waiting for the next turn boundary, so context is not lost. Switch and delete approval cards show resolved specialist identity, capability scope, and direction instead of redacted JSON, and specialist updates travel an ordinary chat-reviewed mutation path. (#607) Completed-turn runtime icons. Each completed agent message now identifies the ACP framework and model that produced it, with framework and provider icons alongside usage in the token popover and muted agent/model lines at the bottom. Incomplete historical metadata stays hidden rather than showing a placeholder. (#613) Context-usage persistence. The context-usage indicator now survives application restarts. The last known usage is persisted as a sanitized session field, mirrored for attached runtime sessions, and used as a fallback for restored detached sessions. Windows renderer crash recovery. An unexpected renderer exit on Windows — previously leaving a blank window — now triggers up to two automatic reloads within a 60-second window before falling back to a native Reload/Close prompt, preventing an infinite loop. Local Crashpad starts before the renderer is created with uploads disabled, and privacy-safe diagnostics project renderer load failures and child-process exits without logging content, URLs, or paths.

New Features

Immediate specialist handoff — switching specialists hands the in-flight turn to the switched specialist immediately via a per-control invocation identity bound to the active completion, so an approved continuation can re-enter the control queue safely without deadlock. Switch approval cards show the resolved specialist identity, capability scope, and current-to-target direction (with a stale-warning fallback when the target was renamed, removed, or disabled mid-request); delete cards get a friendly detail block with a destructive primary action and fail-closed binding warning; specialist updates including renames are now ordinary chat-reviewed mutations with the revision guard and atomic single-profile commit preserved; and a deeplink opens the specialist's Settings editor from the approval card. Completed-turn runtime icons — each completed message resolves its framework and model through the existing conversation-graph runtime segment, rendering Settings framework and provider icons beside usage in the token popover plus muted agent and model lines at the bottom. Labels and icons appear only when their display value can be resolved; incomplete or deleted historical metadata stays hidden. Persisted data is unchanged — sessions continue to store only framework/backend/model identifiers. Context-usage persistence across restarts — the last known context-usage snapshot is persisted as an optional, sanitized session field, mirrored for attached runtime sessions and cleared when an attached context generation is invalidated. Restored detached sessions fall back to the persisted snapshot. New conversations remain unchanged — no session means no indicator.

Improvements

Activity groups are now derived from the existing transcript without making supplementary model control calls, reducing per-turn API overhead for sessions with many tool-activity cards. Agent context overhead is reduced by trimming redundant control-plane content from the prompt sent to the model, lowering token consumption without changing tool or response fidelity. The Settings navigation now treats Model and Agent as the two primary tabs, making the most frequently accessed configuration surfaces immediately reachable.

Bug Fixes

Windows renderer crash recovery — an unexpected renderer exit (previously leaving a permanently blank window) now triggers at most two automatic reloads within 60 seconds, then falls back to a native Reload/Close prompt instead of looping. Windows-only local Crashpad initializes before the renderer is created with upload and compression disabled, and privacy-safe diagnostics project renderer load/preload failures and GPU/utility child-process exits without logging content, URLs, command lines, or paths. Reviewer and edit-state subscriptions are localized so lifecycle changes no longer rebuild unchanged agent rich text in long sessions. Notebook session lifecycle hardening — the session registry lifecycle is serialized to prevent interleaved start/dispose races, environment leases are closed on disposal, stale executor callbacks are ignored after a session is torn down, and the control RPC capability is preserved across ACP cleanup so in-flight control calls survive agent-driven reconfiguration. ACP session recovery — incompatible Claude session resumes are recovered by detecting protocol mismatches and starting a fresh session instead of failing silently, and the reviewer session lifecycle is hardened against concurrent mutation and premature teardown. Codex local Responses bridge — the loopback bridge between the Codex agent runtime and the local Responses server now bypasses HTTP proxies so localhost traffic is not routed through a configured proxy, preventing connection failures when a system-wide proxy is active. SSH Compute Skill materialization — skill materialization for remote SSH compute hosts is unified into a single path so the skill directory is prepared consistently regardless of host registration order, preventing missing-skill errors on first use. Workspace message width and runtime icons — user messages now use the full available width instead of being constrained by the activity column, and runtime label icons use semantic framework and provider identifiers instead of raw internal values. Electron adapter installation — the app-managed agent runtime installation no longer installs an incompatible Electron adapter version, rolling back the adapter step when the resolved version does not match the installed Electron major.