Skip to content

Fission 0.2.0

Choose a tag to compare

@zcourts zcourts released this 29 May 22:11
· 144 commits to main since this release
ed8744a

Fission 0.2.0 turns the initial GUI framework into a broader application platform. This release adds charts, 3D, web/mobile/static-site/terminal targets, the fission CLI workflow, design-system generation, a major documentation site, packaging/release tooling, desktop tray support, and a comprehensive host capability model.

Source commit: ed8744aaed3994ccd8e09bd643d894e1655d4c82
Published crate metadata points at crates/authoring/fission in that commit.

Highlights

  • Added cargo-fission, installed as the single fission command for init, device discovery, running, site generation, packaging, release workflows, and the terminal UI.
  • Added first-class target scaffolding and run paths for desktop, web, Android, iOS simulator/device workflows, static HTML sites, and terminal user interfaces.
  • Added fission-charts with a broad native chart catalog, chart gallery, animations, datasets, and chart documentation.
  • Added fission-3d and Scene3D/embed rendering work.
  • Added design-system package support with build-time typed theme generation and widget consumption of generated styles.
  • Added Fission static site generation and moved the documentation site onto the Fission static-site shell.
  • Added release lifecycle tooling: packaging, signing/notarization hooks, release metadata, credential vault, cloud/static publishing providers, GitHub Releases, app-store metadata/status flows, and Microsoft Store MSIX Partner Center support.
  • Added terminal shell support and a Fission-built terminal UI mode for the CLI.
  • Added platform capabilities for notifications, deep links, NFC, biometrics, barcode scanning, clipboard, geolocation, haptics, camera, microphone, Bluetooth, Wi-Fi, volume control, and passkeys.

New Features

CLI And Developer Workflow

  • Added cargo-fission, exposing the installed fission command.
  • Added project scaffolding with fission init, including idempotent behavior for existing projects.
  • Added target scaffolding and generated platform folders for web, Android, iOS, and desktop-style projects.
  • Added fission devices and fission run workflows with target/device selection.
  • Added setup/doctor-style checks and platform smoke runners.
  • Added CLI module separation into command crates while preserving one public command for developers.
  • Added the Fission terminal UI mode, later renamed to fission ui, implemented as a Fission app with screens, routes, async command execution, logs, settings, and terminal-shell rendering.

Platform Shells And Targets

  • Added shared winit shell infrastructure used by desktop and test paths.
  • Added mobile shell foundations for iOS and Android, including simulator smoke paths, touch handling, safe-area/input-coordinate fixes, native display scale handling, and Android activity integration.
  • Added web shell scaffolding, fullscreen web target generation, browser smoke path, and canvas focus fixes.
  • Added static-site shell support with generated HTML/CSS, Markdown rendering, route/link checks, favicon support, optional code highlighting, generated client-side search index, responsive documentation layout, headers/footers, sidebars, and GitHub Pages publishing.
  • Added terminal shell backend using terminal rendering and input handling, plus interaction/density improvements.
  • Added feature-boundary reorganization so the public fission facade can remain simple while platform-heavy shells are opt-in through features.

Widgets, Text, Embeds, And Interaction

  • Expanded the widget surface and rebuilt examples around the public facade and prelude.
  • Added PTY terminal widget support.
  • Added native Markdown viewer support.
  • Added Scene3D and additional embed examples for video/webview/3D-style surfaces.
  • Improved scrollbar rendering and input handling, including retained scrollbar fixes.
  • Added scoped raw action plumbing.
  • Advanced rich text and text input parity: paragraph-aware rendering, IME configuration sync, locale-aware rich text, text selection affordances, inline widgets, hover/span actions, tap-outside actions, and decorated input APIs.
  • Reworked text sessions and rendering/hit-testing so renderer and input paths share layout information more consistently.

Charts And 3D

  • Added fission-charts and a chart gallery example.
  • Implemented layout algorithms for a broad set of chart families, dataset encoding, chart configuration controls, dynamic viewport sizing, geo/hierarchy renderers, and family-specific chart animations.
  • Added chart documentation, a chart showcase on the homepage, and reference organization for chart families.
  • Added fission-3d with WGPU integration and interactive controls in gallery/example paths.

Design Systems And Theming

  • Added DSP-backed theme generation from design-system JSON at build time.
  • Added typed generated component styles and widget consumption of DSP styles.
  • Added design-system shell builders and standard preset design systems.
  • Exposed app window title through Env.
  • Updated the website to use the same design-system direction.

Capabilities And Host Integration

  • Replaced ad-hoc system effects with typed capabilities and documented the capability runtime.
  • Added capability APIs and platform metadata for notifications, deep links, NFC, biometrics, barcode scanning, clipboard, geolocation, haptics, camera, microphone, Bluetooth, Wi-Fi, volume control, and passkeys.
  • Added macOS capability usage-string packaging support.
  • Added route-filtered static-site page elements for site-specific scripts and metadata.
  • Added detailed capability guides, reference pages, and a capability matrix.

Packaging, Release, And Distribution

  • Added post-build lifecycle RFC and implementation work for packaging and release workflows.
  • Added package icon generation policy and platform metadata handling.
  • Added release config parsing while preserving fission.toml formatting.
  • Added encrypted credential vault support and interactive auth import.
  • Added release content validation, release notes/content sidecar validation, artifact manifests, screenshot capture through test control, and provider status checks.
  • Added direct file distribution providers.
  • Added GitHub Releases distribution through the GitHub CLI.
  • Added static site publishing lifecycle support, including GitHub Pages, Cloudflare Pages lifecycle operations, and Netlify API deploys.
  • Added Google Play metadata sync, review operations, beta tester operations, and group sync.
  • Added App Store metadata sync, build status checks, review operations, and beta tester operations.
  • Added Microsoft Store status polling, metadata sync, and MSIX Partner Center publishing support.
  • Added macOS signing and notarization packaging hooks.

Documentation Site And Public Docs

  • Added and then replaced the documentation site with a Fission-generated static site.
  • Added guided Learn pages, cookbook pages, reference sections, widget pages, chart pages, CLI/device workflow docs, platform smoke prerequisites, terminal shell docs, static site workflow docs, design system guide, lifecycle docs, and capability docs.
  • Added local search indexing and GitHub Pages publishing from main.
  • Updated README and crate READMEs for crates.io presentation.

Bug Fixes

  • Fixed chart-gallery rendering, labels, missing instantiations, viewport sizing, and E2E timeouts.
  • Fixed editor regressions around resize redraw, cursor blink, tab bars, context menus, rename flow, stable scroll IDs, caret position, focus routing, rich text hit testing, viewport culling, and custom render object event routing.
  • Fixed stale paint-cache behavior, animation invalidation, paused redraw loops, compositor-layer retention, and resize distortion.
  • Fixed terminal test reliability and terminal live output checks.
  • Fixed mobile smoke target icon paths, iOS software render fallback, Android/iOS touch handling, and web canvas focus/fullscreen behavior.
  • Fixed documentation-site typography contrast, responsive layout, generated CSS, markdown media rendering, docs nav, and CI checkout of Android submodules.
  • Fixed keyring/dbus dependency leakage for static site builds.
  • Fixed package publishability issues for fission-command-core and terminal widget dependencies.

Performance Improvements

  • Added retained GPU texture compositor work for the desktop shell.
  • Added static-content caching under dynamic compositor layers.
  • Added partial root recomposition and retained compositor plans across composite-only frames.
  • Throttled low-priority repeating animations and reduced animation churn during resize.
  • Improved rich text layout/cache behavior and text-rendering consistency.
  • Improved large editor file handling with windowed navigation, sparse indexing, soft wrap defaults, and virtualized file views.
  • Tightened resize cadence and screenshot capture settling for more reliable visual tests.

API Changes And Migration Notes

  • Applications should prefer the fission facade crate and fission::prelude::* rather than depending directly on internal crates.
  • New action ergonomics are available through #[fission_action], with_reducer!, and #[fission_reducer]; manual action structs and reducer binding remain supported.
  • Platform-heavy functionality is split behind facade features such as desktop, web, mobile, site, terminal shell, charts, and 3D.
  • fission.toml becomes the authoritative project manifest for generated targets, platform metadata, capabilities, packaging, and release workflows.
  • The host-access model moves toward typed capabilities instead of generic system effects.
  • Static site generation is now driven by Fission widget/static-site shell infrastructure, with generated routes, styles, assets, search, and publishing workflows.

Published Crate Set

This release includes new or substantially expanded crates such as cargo-fission, fission-charts, fission-3d, fission-shell-site, fission-shell-terminal, fission-shell-winit, fission-command-*, fission-credentials, fission-design-system-codegen, and fission-text-engine, alongside the existing core/rendering/widgets/facade crates.

Contributors

  • zcourts
  • Courtney Robinson
  • thrilokntv

Verification

  • Published crate VCS metadata confirms this release was built from ed8744aaed3994ccd8e09bd643d894e1655d4c82.
  • Package fixes after the initial Prepare Fission 0.2.0 release commit are included in the tag because they were required for the actual published crates.

Full changelog: v0.1.0...v0.2.0