Skip to content

WolfStack v22.14.3

Choose a tag to compare

@github-actions github-actions released this 11 May 11:24
· 1851 commits to master since this release

v22.14.3: Restore APP_ICONS + BOOKMARK_ICONS, theme-aware data-icon fill, Lucide fallbacks

Critical fix for the iconless-UI regression on v22.14.0–v22.14.1.

──── 1. Restored data-table emoji values ─────────────────────────────

APP_ICONS (28 entries, app-store cards) and BOOKMARK_ICONS (70
entries, bookmark icon palette) were destroyed by the v22.14.0 emoji
strip — every value emptied because the multi-line 'key': '<emoji>',
form didn't match the data-line skip regex. Restored from the v22.13.0
state with a comment marking them as theme-driven lookup keys. End
users on clean (default) now see Lucide icons via the runtime
emoji-translator; users on standard see emoji.

──── 2. Theme-aware data-icon filling with Lucide fallback ───────────

fillDataIconPlaceholders previously always rendered Lucide regardless
of the active icon theme, making standard and candy_emoji themes
visually identical to clean for every static <span data-icon="X">
in index.html. Now it respects the theme:
• clean → Lucide SVG
• standard → the canonical emoji glyph (inverse map of
EMOJI_TO_SEMANTIC + CLEAN_EXTRA_EMOJI_MAP)
• candy_emoji → that emoji put through CANDY_ICON_MAP
• icon-pack → empty (pack walker fills it)
Safety net: if a semantic has no emoji equivalent (e.g. health,
compass, docker), the standard/candy paths fall through to Lucide
rather than leaving the placeholder blank. Better a line icon than
missing chrome.

──── 3. Predictive Inbox icon ───────────────────────────────────────

The 🔮 crystal-ball glyph on the top-strip Predictive Inbox button got
left behind by the earlier index.html sweep. Replaced with a Lucide
inbox placeholder.

──── 4. Remaining index.html emoji ───────────────────────────────────

Replaced 7 stray emoji (🚨, 👀, 👤, 💽, 💿, 🎛, 🧰, 📱, 🧩) with
explicit <span data-icon="..."> placeholders mapped to the
appropriate Lucide icon (warning, eye, user, hard-drive, disc,
sliders, wrench, smartphone, puzzle). Header-position emoji were
stripped entirely per the no-emoji-in-headers directive.

──── 5. Expanded LUCIDE_NAME_MAP ─────────────────────────────────────

Added inbox, hard-drive, disc, sliders, puzzle, smartphone, eye, user,
siren so the new placeholders resolve. All verified against the
vendored Lucide v1.14.0 dictionary.

──── Tests ───────────────────────────────────────────────────────────

695 / 695 wolfstack tests pass in release mode.


Verifying this release

Each binary is signed via cosign keyless OIDC (no key distribution — signing identity is the GitHub Actions workflow itself, anchored to the Sigstore Fulcio CA and the Rekor transparency log) and ships with a SLSA build provenance attestation.

Verify the cosign signature:

cosign verify-blob \
  --bundle wolfstack-x86_64.cosign.bundle \
  --certificate-identity-regexp 'https://github.com/wolfsoftwaresystemsltd/WolfStack/\.github/workflows/release\.yml@.*' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  wolfstack-x86_64

Verify the build provenance:

gh attestation verify wolfstack-x86_64 --repo wolfsoftwaresystemsltd/WolfStack

Verify the SHA-256 checksum:

sha256sum -c SHA256SUMS

Artifacts

  • wolfstack-x86_64 / wolfstack-aarch64 — static musl binaries (Linux x86_64 and ARM64 / Raspberry Pi 4+).
  • wolfstack-<arch>.cosign.bundle — cosign signature bundle (cert + signature + Rekor entry).
  • SHA256SUMS — checksums for both binaries.

For per-version history see CHANGELOG.md.