Skip to content

v0.2.6

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Aug 10:10
c094b7f

Denial 0.2.6

This is a signed x86-64 public-alpha release of Denial.

  • Source tag: v0.2.6
  • Source commit: c094b7f0952b1b679dfb1eb7b84b4fb694cca36f
  • Signing fingerprint: AE4108FA5E91E26BE0EE331E0F5B3AD16E023091
  • Required packages: denial and denial-flutter-engine
  • Optional live-development package: denial-ui-development

Added

  • A compositor-integrated Impeller GLES path for Flutter's desktop-wide GBM
    atlas, including exact embedder FBO presentation, preserved partial damage,
    backdrop-filter support, native synchronization, and external-texture
    lifetime.
  • Backdrop blur now has a configurable minimum effective window-opacity
    threshold, including an unconditional no-blur path for fully invisible
    windows.

Changed

  • Impeller is now Denial's default Flutter renderer. The retained Skia/Ganesh
    path remains available through --flutter-renderer skia or the packaged
    DENIA_FLUTTER_RENDERER=skia session override.
  • High-rate external-texture frames now preserve precise rotating-atlas
    damage, reuse cached layer-diff metadata for only the dirty textures, and
    avoid redundant Ganesh flushes when cached texture bindings need no GL work.
  • Output ticks use maintained per-output window membership, and output-control
    snapshots are rebuilt only after state changes.
  • The guided Arch setup now stops after trusting the release key and adding
    the signed repository. Package installation remains an explicit
    sudo pacman -Syu denial command.
  • Signed tags now provide package and user-visible runtime versions without a
    predictive Cargo, Dart, PKGBUILD, manual-page, or changelog version bump.
  • dev candidates are never published. After an exact validated merge,
    main independently builds the production candidate; a later signed tag
    versions and publishes those exact compiled payloads without rebuilding.

Fixed

  • Managed X11 toplevels now always receive Denial's frame, rounded corners,
    and shadow, preventing decoration-free Xwayland windows from corrupting
    Impeller backdrop blur and shadow damage when minimized.
  • Retained window-frame layers now include their shadow outset in partial
    repaint damage instead of clipping repair to the window's layout bounds.
  • Denial now clears non-primary DRM planes inherited from the display manager
    before its first compositor frame, preventing a stale hardware cursor or
    overlay image from remaining latched above the Flutter desktop.
  • Retained builder checkouts now run Flutter revision-transition hooks with
    the pinned depot_tools environment instead of depending on a host-global
    vpython3 command.
  • DPMS wake now absorbs transient connector disconnects while monitors retrain
    their links, preserving Wayland outputs and client windows across display
    power cycles.
  • Fully opaque client content no longer requests backdrop blur merely because
    its shadow, rounded corners, or antialiased border carries alpha.
  • Complex Flutter damage regions no longer collapse touching L-shaped output
    repairs into a full-atlas repaint.
  • Failed local tag-signing attempts now reliably erase the decrypted recovery
    kit and temporary keyring after function scope unwinds.
  • Arch packages now disable host-default debug-package rewriting explicitly,
    keeping tag-promoted payloads independent of the build host.

The production binaries were built and independently checked from main on
Denial's owner-operated x86-64 runner. This signed tag promoted those exact
compiled payloads, assigned their package and runtime versions, and signed and
re-verified the repository in GitHub-hosted jobs. This release does not yet
claim an offline dependency closure, reproducible packages, independent
rebuilding, an SBOM, or AArch64 support.

Installation instructions are in
docs/packaging/arch/INSTALL.md.