Skip to content

v0.12.1

Choose a tag to compare

@github-actions github-actions released this 09 Aug 07:52
· 259 commits to main since this release
218d77e

Open Science v0.12.1

A patch release that groups sidebar sessions by live activity and calendar buckets, surfaces context compaction as a visible transcript activity, adds keyboard-driven search navigation and pre-approved customization grants, and fixes Codex MCP approval routing, ask-user question presentation, thinking elapsed time, artifact finalization stalls, and Windows notebook runner crashes — while the workspace, compute, session-persistence, and reviewer ownership refactor continues.

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.12.1 is a patch release. It groups workspace sidebar sessions into live, Today, Yesterday, This week, and Older buckets so completed conversations no longer pile up under a single Active label; makes automatic context compaction visible in the session transcript with loading, completed, cancelled, and failed states across all supported agent frameworks; adds Tab selection for composer mention results and platform search shortcuts for Settings filters; and seeds a set of personalization grants so common agent, skill, and connector customization actions are pre-approved on first run. On the fix side it routes Codex MCP tool approvals through the permission broker instead of showing a non-actionable ask-user card, normalizes structured clarification presentation so only the product-owned question card remains, preserves thinking elapsed time across view remounts, prevents stale session saves from clobbering the live conversation graph and stalling artifact finalization, and detects a crashing bundled runner on Windows to preflight and fall back to a compatible alternative. Under the hood it continues the ownership refactor — extracting workspace-page panel layout, composer state, and session controllers, compute host-profile, remote-operation, and job-workflow owners, and reviewer session-driver, assessment, and fix-loop owners.

✨ Highlights

  • Sidebar sessions grouped by live activity and date. The workspace sidebar now distinguishes live work (running, waiting-on-user, waiting-permission, waiting-plan-approval) from recently completed sessions, keeps an idle session in Active for a 15-minute grace period, then files it into Today, Yesterday, This week, or Older buckets by local date. Pinned sessions stay first and are excluded from Active. (#1006)
  • Context compaction activity in the transcript. Automatic context compaction is now visible as a branch-scoped activity row with spinner, completed, cancelled, and failed states. App-owned compaction lifecycles (Claude Code, OpenCode) and Codex structured context-compaction events are normalized into one correlated runtime event that persists alongside the session. (#1003)
  • Keyboard-driven search navigation. Composer mention results now support Tab selection, and platform search shortcuts navigate Settings filter fields. Hidden or closing Settings searches no longer consume the app-level shortcut. (#a85c18b9)
  • Pre-approved customization grants. Common agent, skill, and connector customization actions are seeded as global allow grants on first run through an idempotent migration, so personalization flows are not interrupted by repeated approval prompts. (#fb923c4b)

🔧 Improvements

  • Horizontally scrollable workspace controls — preview tabs, kernel/environment switchers, notebook input data, and provenance tabs — now show theme-aware edge fades driven by actual overflow and scroll position, and existing session/composer fades were deepened for consistent softening. (#996)
  • The workspace-page ownership refactor continues, extracting panel layout, composer state, and session controllers behind independently testable contracts. (#bdc3251e, #36cc60b6, #5613f140, #7b226105)
  • The compute ownership refactor continues, extracting host-profile, remote-operation, and job-workflow owners. (#989, #990, #992)
  • The reviewer ownership refactor continues, extracting session-driver, assessment, and fix-loop owners. (#1002, #1004, #1007)
  • Expanded compute, reviewer, notebook, and workspace certification and impact-boundary test coverage. (#988, #995, #986, #6b1b5caf, #1000)
  • Windows CI test throughput improved by mocking the PDF parser at the runtime fallback seam and batch-seeding notification retention fixtures. (#979)

🐛 Bug Fixes

  • Codex MCP approvals routed through permission broker. Codex can deliver ordinary MCP tool authorization as an elicitation with an approval marker instead of a permission request, which produced a non-actionable ask-user card and left authorization waiting. These approvals are now routed through the existing permission broker, the trusted ask-user bootstrap is preserved, and approval-shaped elicitations without a valid tool-call correlation are declined. (#982)
  • Normalized ask-user presentation and lifecycle. Codex could emit app-owned ask-user questions as sparse generic MCP updates, causing both a generic tool-activity row and the product-owned question card to appear. The activity is now normalized across Claude Code, OpenCode, and Codex so only the question card remains, the session reflects the interaction boundary correctly while pending, and runtime replacement or application restart no longer clears a durable question from blocking state. (#985)
  • Thinking elapsed time preserved across navigation. The thinking indicator previously restarted at 0:00 when the user switched sessions or returned to Home because the clock origin lived in component-local state. It is now derived from session timeline data that survives view remounts. (#987)
  • Artifact finalization stalls eliminated. A session save echo from the same lifecycle client could replace the live conversation graph with an earlier durable snapshot, removing the runtime segment needed by in-flight artifact claims and leaving them stuck in finalization. Same-client echoes are no longer applied as authoritative to the live projection; events from other clients remain unchanged. (#997)
  • Windows notebook runner preflight and fallback. On some Windows machines the bundled runner crashes with an access violation before it can report its own version. The runner is now integrity-checked and preflighted before bundle I/O, with a one-time fallback to an independently pinned compatible alternative; the successful selection is cached and reused across provisioning, package mutation, listing, and relocation. (#994)
  • GitHub import empty-state polish. The empty imported-skills state is now a centered icon, title, and supporting description instead of a single inline sentence. (#999)
  • Conversation scope wording aligned. Permission scope wording for conversation-level grants has been clarified and the persistence model for those grants is now described consistently. (#582ed050)
  • Startup animation preserved during conversation loading. The branded loading indicator no longer disappears prematurely when a conversation is still loading on startup. (#5ebca88c)

📦 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, and reversible archiving; selectable Claude Code, OpenCode, and Codex agent frameworks behind a shared provider turn-adapter interface; review-gated session plans with durable execution contracts and persistent plan call records; 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 and inline image-output previews; immutable artifact versions with inspectable audit evidence and on-demand LLM-driven code reconstruction; multi-format previews including TIFF and code syntax highlighting; file-based skills with conversational imports, keyword search from GitHub URLs, authenticated GitHub access, and ZIP export; permissioned scientific connectors with standard remote OAuth sign-in and portable configuration import/export; opt-in review and bounded correction; personal specialist agent profiles with scoped capabilities, conversational customization, immediate in-flight handoff, and package import/export; scoped permission management with global, project, and session grants and live profile changes during a running turn; 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; a project-scoped command palette; 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; a cross-surface notification message center with durable read state; structured agent clarification cards; live session status on the Home dashboard; and sidebar sessions grouped by live activity and calendar buckets.
  • 🚧 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, cloud GPU, and parallel sub-agent fan-out 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.


What's Changed

  • test(windows): stabilize slow CI tests by @ewen-poch in #979
  • refactor(workspace-page): extract panel layout controller by @ewen-poch in #980
  • refactor(workspace-page): extract composer state controller by @ewen-poch in #981
  • refactor(workspace): extract session controller by @ewen-poch in #983
  • fix(acp): route Codex MCP approvals through permission broker by @ewen-poch in #982
  • refactor(workspace): add conversation interface by @ewen-poch in #984
  • test(workspace): certify page ownership by @ewen-poch in #985
  • test(notebook): use local RPC transport in user input tests by @ewen-poch in #986
  • fix(workspace): preserve thinking elapsed time by @ewen-poch in #987
  • test(compute): define service impact boundary by @ewen-poch in #988
  • refactor(compute): extract host profile owner by @ewen-poch in #989
  • fix(acp): normalize ask-user presentation and lifecycle by @ewen-poch in #985
  • refactor(compute): extract remote operation owner by @ewen-poch in #990
  • feat(permissions): seed global customize grants by @ewen-poch in #991
  • refactor(compute): extract job workflow owner by @ewen-poch in #992
  • test(compute): certify service ownership by @ewen-poch in #995
  • feat(workspace): add scroll edge fades by @ewen-poch in #996
  • fix(notebook): preflight and fall back between Windows runners by @ewen-poch in #994
  • fix(session-persistence): preserve live graph on save echo by @ewen-poch in #997
  • fix(skills): improve GitHub import empty state by @ewen-poch in #999
  • feat(shortcuts): improve keyboard search navigation by @ewen-poch in #1001
  • test(reviewer): define orchestrator impact boundary by @ewen-poch in #1000
  • refactor(reviewer): extract session driver by @ewen-poch in #1002
  • feat(acp): show context compaction activity by @ewen-poch in #1003
  • refactor(reviewer): extract assessment owner by @ewen-poch in #1004
  • feat(workspace): group sidebar sessions by activity by @ewen-poch in #1006
  • fix(permissions): align conversation scope wording by @ewen-poch in #1005
  • refactor(reviewer): extract fix-loop owner by @ewen-poch in #1007
  • fix(app): keep startup animation during conversation loading by @ewen-poch in #1008

Full Changelog: v0.12.0...v0.12.1