Skip to content

wflow 0.3.0

Choose a tag to compare

@github-actions github-actions released this 25 Apr 08:58
· 146 commits to main since this release

First public release. wflow goes from a private prototype to a real shipping product on the AUR. Flathub submission to follow once the manifest is verified on a Flatpak-enabled box.

The headline framing is "Shortcuts for Linux — GUI + KDL workflow files": a Qt Quick GUI for visual editing, a CLI for cron and scripts, and a plain-text workflow file underneath that you can diff in git, hand-author in $EDITOR, include into other workflows, and share as a single file. No proprietary container, no binary blob.

Highlights

Leg-2 GUI

  • Welcome card on first launch with a hero glyph and two CTAs (+ New workflow, ● Record a workflow). After dismissal, the empty-state copy returns to the concise variant for a returning user. State persisted in ~/.config/wflow/state.toml.
  • New-workflow dialog with three tabs: Blank, From template, Record. Seven hand-authored example workflows ship inside the binary (include_str!); distros can override at $XDG_DATA_DIRS/wflow/examples/.
  • Tutorial overlay on the editor's + Add step footer, shown the first time a user opens a blank workflow. Auto-dismisses after 4500ms (a11y), or on × click.

Security

  • First-run trust prompt for any workflow file wflow didn't author here. Both the CLI (wflow run, prompts on TTY, refuses non-TTY without --yes) and the GUI (modal dialog over WorkflowPage) surface the same categorized step summary with shell + clipboard lines highlighted.
  • Trust is keyed by (absolute path, SHA-256 of content) in ~/.config/wflow/trusted_workflows. Editing the file re-prompts (hash changed). Moving the file re-prompts (path changed). wflow new and the GUI editor auto-trust files they wrote.
  • Threat model + six concrete attack patterns documented in REVIEW.md.

Distribution

  • AUR: wflow (release) and wflow-git (VCS) packages live at https://aur.archlinux.org/packages/wflow / /wflow-git.
  • Flatpak manifest at packaging/flatpak/. Uses flatpak-spawn --host via the org.freedesktop.Flatpak D-Bus interface for shell, key, click, focus, notify, and clipboard actions, so workflows actually run on the user's host session. Five host-machine items pending verification before Flathub submission (see packaging/flatpak/README.md).
  • Prebuilt x86_64 Linux tarball below. Unpack, INSTALL.txt walks through the install. Requires Qt 6 runtime libraries (qt6-base, qt6-declarative).

CI / release automation

  • cargo build --all-targets --locked + cargo test --locked + wflow validate examples/*.kdl + bash-lint on PKGBUILDs runs on every push to main and every PR.
  • Tag pushes (like the one that built this release) auto-build the tarball + SHA256SUMS and create a draft GitHub release.

Other

  • wflow man subcommand — emits one man page per CLI subcommand via clap_mangen. Twelve total, packaged into the tarball + AUR install.
  • Dual MIT / Apache-2.0 license with text files at the repo root.
  • 60 unit tests (was 38 at v0.2.0).

Not in this release

  • Record-mode event coalescing — the libei backend lands in v0.2.0 but the coalescing pass that collapses Move floods, merges runs of type events, and assembles modifier+key chords is deferred until the backend has soaked. Recordings work; they're just longer than they need to be.
  • Cross-platform builds — linux/x86_64 only this cycle.
  • Flathub submission — manifest is ready; final verification on a Flatpak-enabled machine pending.

Install

From the prebuilt tarball

curl -LO https://github.com/cushycush/wflow/releases/download/v0.3.0/wflow-0.3.0-x86_64-unknown-linux-gnu.tar.gz
curl -LO https://github.com/cushycush/wflow/releases/download/v0.3.0/SHA256SUMS
sha256sum -c SHA256SUMS
tar -xzf wflow-0.3.0-x86_64-unknown-linux-gnu.tar.gz
cd wflow-0.3.0-x86_64-unknown-linux-gnu
cat INSTALL.txt

Arch Linux (AUR)

# any AUR helper, e.g.:
paru -S wflow              # release
# or
paru -S wflow-git          # tracks main

From source

cargo install --path . --locked

Requires Rust ≥ 1.77 and Qt 6 development headers.

Full changelog

v0.2.0...v0.3.0 — 17 commits, no breaking changes from v0.2.0.

Plus three review documents that informed the cycle: