Fission 0.3.0
Fission 0.3.0 focuses on turning the platform work from 0.2 into more complete application flows. It adds typed async image loading, FutureBuilder/RefreshIndicator widgets, a product-browser example, native capability hosts, GPU-first web/iOS rendering, native app icons/launch surfaces, and the first server-side Fission shell with sessions, signed actions, progressive workers, browser bridge support, Docker packaging, and security controls.
Source commit: d0183e2fa02e09cb383f423debadfb49e63cd235
Published crate metadata points at crates/authoring/fission in that commit.
Highlights
- Added typed image sources and renderer-backed loading for asset, file, network, memory, and SVG image paths.
- Added async UI helpers:
FutureBuilder,AsyncSnapshot,AsyncConnectionState, andRefreshIndicator. - Added the product-browser example using real remote data, async loading, refresh behavior, grid/list presentation, and network images.
- Added native host implementations and generated metadata for built-in capabilities, plus the Field Inspector example to exercise them across platforms.
- Made web and iOS rendering GPU-first, with Canvas2D/software fallback retained where needed.
- Added app icon/native launch surface generation and documented the full
fission.tomlmanifest reference. - Added
fission-shell-serverandfission-command-serverfor server-rendered Fission apps, including signed actions, sessions, server assets, progressive browser workers, island bridge support, cache/security config, and Hyper serving. - Added Docker image packaging and registry publishing support for server/static deployment workflows.
- Removed the stale Skia renderer crate from the released workspace.
New Features
Images And Async Widgets
- Reworked the
Imagewidget around typedImageSourcevalues rather than a single path-like field. - Added image source support for assets, local files, network URLs with request metadata, memory bytes, and inline SVG text.
- Added image loading/cache/error behavior configuration through typed request and policy structures.
- Added renderer loading paths so loaded images are actually available to Vello/display-list rendering.
- Added tests covering source lowering, network image metadata, SVG handling, and renderer image loading behavior.
- Added
FutureBuilderso widgets can render loading/data/error states from job-backed asynchronous work. - Added
RefreshIndicatorwith pull/armed/refreshing/done states and gesture integration. - Added product-browser documentation and example README updates.
Product Browser Example
- Added a high-quality product browser example using real remote product data.
- Added async loading and refresh behavior using the new async widgets.
- Added image rendering for remote product thumbnails.
- Reworked the example toward grid/list layout instead of a single visible item.
- Added tests and screenshot-oriented checks to catch image-loading and layout regressions.
Capabilities And Native Hosts
- Implemented native capability host plumbing and generated target metadata.
- Added the Field Inspector example to exercise capabilities across desktop, web, iOS, and Android targets.
- Added macOS development-bundle execution so permission prompts and entitlement-style metadata can be exercised through
fission run --target macos. - Added macOS native capability hosts and native notifications.
- Fixed web passkey registration defaults and scheduled notification handling.
- Fixed iOS simulator capability dispatch linkage.
- Documented example learning paths for capability-heavy examples.
Web, iOS, And Rendering Quality
- Made web rendering GPU-first using the WebGPU/Vello path, with the existing Canvas2D/software renderer retained as fallback.
- Added renderer diagnostics so active web renderers can be surfaced by tooling.
- Fixed WebGPU image refresh behavior.
- Made iOS rendering GPU-first where possible and retained fallback handling.
- Fixed iOS safe-area and text layout issues.
- Rendered software frames at device scale to avoid low-resolution/soft output when software fallback is used.
- Added native app icons and launch surface generation.
Server-Side Fission
- Added the server shell RFC and the first implementation of server-rendered Fission apps.
- Added
fission-shell-serverandfission-command-servercrates. - Added
fission server servestyle workflow through the CLI command crate. - Added Hyper-based serving for local server apps.
- Added server-side asset serving for generated CSS/JS/worker/island assets.
- Added revalidated/cache-aware site primitives and runtime integrations.
- Added signed HTTP action/reducer dispatch for server forms.
- Added server-private session state and persistent cart behavior in the Pokémon card store example.
- Added progressive browser worker support and a message bridge for DOM-oriented enhancement work.
- Added browser island bridge support for focused interactive areas.
- Added runtime security controls and configuration for the server shell.
- Added tests around server sessions, signed actions, browser bridge behavior, island worker asset handling, and cache/security paths.
Pokémon Card Store Example
- Added a new server-side e-commerce example selling Pokémon cards.
- Demonstrates static/server-rendered pages, session-backed cart state, signed actions, server assets, progressive workers, browser bridge behavior, and server-side configuration.
- Added documentation using the store as a concrete guide for server-side Fission workflows.
Packaging, Docker, And Deployment
- Added Docker image packaging support for server and static-site deployment paths.
- Added registry publishing support for Docker-style images in the packaging workflow.
- Hardened server build and Docker packaging tests.
- Documented static and server site packaging workflows.
Documentation And Project Metadata
- Added a complete
fission.tomlreference page covering manifest sections, target configuration, metadata, capabilities, icons, splash/launch surfaces, site/server config, packaging, and release settings. - Added documentation for image and async widgets.
- Added server rendering and security workflow docs.
- Added a two-year video calendar documentation item.
- Added app icon and native launch surface docs.
Bug Fixes
- Removed stale Skia renderer crate/package state so the workspace only publishes maintained rendering crates.
- Restricted PR platform checks so external PRs do not run privileged platform workflows by default.
- Fixed remote image rendering bugs that could leave product-browser images invisible.
- Fixed image overflow/layout issues in the product browser by using appropriate grid/image fit behavior.
- Fixed web image refresh after WebGPU rendering changes.
- Fixed iOS fallback rendering and simulator capability dispatch linkage.
- Fixed macOS capability prompts by running desktop targets from development app bundles.
- Fixed web passkey algorithm defaults and scheduled notification behavior.
- Fixed server static asset 404s by serving generated server shell assets through the server runtime.
- Fixed server action POST behavior so form actions return users to normal app routes instead of leaving them on internal action URLs.
- Fixed cart state loss across requests by adding session-backed server state.
Performance Improvements
- Web rendering now prefers GPU/WebGPU/Vello instead of defaulting to software Canvas2D.
- Software fallback rendering now accounts for device scale to reduce soft output.
- Server pages can use cache/revalidation behavior instead of recompiling/redeploying for every content refresh.
- Browser workers and island bridge work reduce the need for a single large client-side application bundle where smaller progressive enhancement is enough.
- Docker/server packaging paths were hardened to reduce deployment friction.
API Changes And Migration Notes
Imageconstruction now uses typed image sources and image request structures. Code that assumed a single string/path image field should migrate to constructors such as asset/file/network/memory/SVG source helpers.- New async widgets are available from
fission-widgetsand through thefissionfacade/prelude where exported. - Server applications should enable the server feature/crates and use the server command workflow rather than treating static-site generation as the only web output path.
- The stale Skia renderer crate is no longer part of the released crate set. Use the maintained Vello/render crates.
- Platform capabilities now require the appropriate
fission.tomlcapability declarations and generated platform metadata for permission-sensitive targets.
Published Crate Set
This release publishes all workspace crates under crates/ as 0.3.0, including the new server command/shell crates and all core, authoring, rendering, shell, command, packaging, release, credential, test, chart, and 3D crates.
Contributors
- zcourts
- Courtney Robinson
Verification
Before publishing 0.3.0, the release was checked with:
cargo fmt --all -- --checkcargo test --workspace --no-fail-fastcargo run -p cargo-fission --bin fission -- site check --project-dir documentation --releasecargo publishpackage verification for each crate in dependency ordercargo info <crate>@0.3.0verification for every published crate
Full changelog: v0.2.0...v0.3.0