Skip to content

verso-v1.1.1

Choose a tag to compare

@github-actions github-actions released this 06 Jul 13:45

Release introducing custom layout extensibility with inline and isolated renderers, an in-app extension marketplace with per-notebook required extensions and persisted trust, three showcase layout extensions published as NuGet packages, a redesigned notebook toolbar with icon-only actions and export, smarter .NET runtime detection in the VS Code extension, hardened Python variable publishing, GitHub Codespaces support, and a major documentation expansion alongside a reworked extension project template with a new layout scaffold.

Thanks to @fluentfoundation and @fiVISION for sponsoring and supporting this project.

New: Custom Layout Extensibility

  • Extensions can now ship complete notebook layouts through ILayoutEngine, with ILayoutInteractionHandler for routing UI interactions and ILayoutLifecycleHandler for cell lifecycle notifications
  • Inline layouts render in the host page: the layout emits a slot per cell and the host mounts live, fully interactive cell components into the layout's own HTML
  • Isolated layouts render in a sandboxed iframe with their own renderer package, a bridge API for host communication, and a strict content security policy
  • Layouts declare capabilities (insert, delete, reorder, edit, execute) and hosts adapt: display-only layouts skip mounting the editor, ignore command-mode keys, and keep outputs visible when clicked
  • Layout styling follows the active theme through --verso-* CSS variables that cascade across the web and VS Code hosts, and themes gain coarse background and foreground tokens for layouts to consume
  • Layouts persist their state in notebook metadata and can provide scoped static assets such as stylesheets
  • The built-in layouts run on the same public API, and everything works across Blazor Server, WebAssembly, and the VS Code extension

New: Extension Marketplace

  • A marketplace pane searches NuGet and installs or uninstalls extension packages without leaving the notebook
  • Notebooks can declare required extensions, which are resolved and loaded before the notebook initializes
  • Trust prompts pin to the resolved package version and re-prompt if it drifts; trust decisions persist per notebook
  • Installed extensions that fail to load are flagged in the extension panel with a warning and the reason
  • Package extraction guards against path traversal, and extension load failures degrade to a banner instead of blocking the notebook

New: Showcase Layout Extensions

  • Three sample extensions demonstrate the layout API end to end and are published as Verso.Showcase.* NuGet packages: Image Studio (an isolated-layout image compositor), Form Studio (form-driven notebooks with charts), and Grid Studio (data grid editing)
  • Form Studio charts and Grid Studio grids bind System.Data.DataTable variables in addition to DataBlock, so SQL cell results display directly; DataTable sources are shown read-only

Improved: Notebook Toolbar

  • The toolbar was redesigned with icon-only actions, and extension toolbar actions can declare IconOnly, IsPrimary, and ConfirmationPrompt
  • Notebook export is available from the toolbar, backed by a per-host file download mechanism that also works from isolated layouts
  • Extension health is tracked and surfaced in the UI

Improved: Notebook Reliability

  • Transient outputs, such as the parameters form, no longer mark the notebook edited when they auto-render; cell types declare whether their outputs persist, and interaction handlers can signal persisted-state changes
  • Cell type and language menus render in the browser top layer using the Popover API, so they no longer paint beneath neighbouring cells
  • Publishing Python variables with self-referential or deeply nested structures no longer crashes the host; conversion guards against cycles and depth

New: .NET Runtime Detection and Install Guidance in VS Code

  • The extension resolves which dotnet to use (an explicit verso.dotnetPath setting, a previously acquired runtime, or PATH) and checks it against the host's required runtime
  • Missing or incompatible runtimes produce actionable errors, including an offer to install the runtime on demand through the .NET Install Tool
  • Host start failures are classified (dotnet not found, incompatible runtime, timeout, crash) so the guidance matches the actual problem

Improved: GitHub Codespaces Support

  • The notebook editor now works in GitHub Codespaces from Chromium-based browsers such as Chrome and Edge; a remaining Safari limitation is documented in the known issues

Improved: Extension Project Template

  • Template packaging is fixed so dotnet new install Verso.Templates yields a working, buildable template (package folder structure and the companion test project are preserved)
  • A new --includeLayout parameter scaffolds an inline layout with cell slots, interaction routing, metadata persistence, and themed CSS, along with tests
  • The sample theme and toolbar action scaffolds were refreshed for the new extension points

Improved: Documentation

  • New guides cover cell types, the command line (all six commands and --extensions usage), and embedding the engine
  • Extension documentation expands to layout authoring, inline versus isolated renderers, packaging and marketplace install paths, and security guidance
  • Architecture docs clarify engine and execution behavior, including kernel restart handling and notebook format migration