Skip to content

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 05 Jul 21:54
Immutable release. Only release title and notes can be modified.
c5eca62

What's new in v0.5.0

Added

  • Computer Use is now backed by the standalone compux library. The native
    computer-use sidecar was extracted into a separate signed binary (mechanism in
    compux, policy in Fermix). This release wires Fermix to it, ships the compux
    v0.2/v0.3 action set, surfaces the screenshot cursor, and gives the Computer
    Use setup card its own name and logo. Computer use can also run over realtime
    voice now, across one shared untrusted boundary. Still experimental and off by
    default.
  • Emoji-reaction acknowledgements. A pure acknowledgement ("ok", "thanks",
    👍) is answered with a message-level emoji reaction instead of a text bubble,
    across all reaction-capable channels (Telegram, Discord, WhatsApp, Signal,
    Slack). A delivered reaction with no accompanying text ends the turn without a
    continuation LLM call, roughly halving ack latency.
  • Chief-of-staff prompt surgery (safe subset) landed in the operating prompt.
  • Plugin auth failures are agent-actionable, and stale OAuth tokens are now
    flagged in the provider badge and fermix doctor.

Performance

  • Sandbox path checks no longer recompute their invariant root sets.
    read_path/write_path/working_dir resolve the protected and effective root
    sets once per call instead of ~3×, and content_search/glob_search validate
    their candidates through a single batched Sandbox.read_paths/3 instead of a
    per-file lstat/ls syscall storm. Behavior-preserving: identical allow/deny
    decisions, cond order, and deny audit traces.
  • Album image downloads run concurrently. Multi-image attachments (e.g. a
    Telegram media group of up to 10 images) are fetched in parallel (bounded)
    instead of serially, cutting pre-turn latency from the sum of the downloads
    toward the slowest single one. Ordering, all-or-nothing fail-loud, and
    temp-file cleanup are preserved.

Fixed

  • Security: git_write can no longer reach an ext:: RCE — GIT_ALLOW_PROTOCOL
    is pinned so a git pull cannot invoke an external protocol helper.
  • Security: the home page no longer mints a /setup launch token to any
    visitor.
  • Computer use fails closed on host control for detached /background runs,
    and picks up the compux stop-kill and display-asleep fail-fast paths.
  • Scheduled deliveries no longer drop on a Finch pool-checkout timeout
    (wake-from-sleep pool starvation).
  • FermixPet stays in its speaking look for the whole spoken reply. The macOS
    voice companion previously flipped back to the listening face as soon as the
    model finished generating, even though the buffered voice kept playing for
    seconds after; it now tracks actual audio playback (face, glow, controls, and
    motion), leaving the microphone/turn-taking state machine untouched.

Changed

  • Removed the watch construct, parked pending a redesign.
  • FermixPet mascot animation feels more alive on the existing art — no new
    assets or dependencies: eye blinks on the open-eyed states, motion that eases
    between states instead of snapping, a smoothed audio-reactive speaking pulse,
    and a corrected speaking-face offset. The animation timeline now pauses when
    the pet window is hidden to save energy.

Verifying signatures

Each binary is signed with cosign using GitHub Actions OIDC keyless signing. Verify a download with:

cosign verify-blob \
  --certificate fermix_<target>.pem \
  --signature  fermix_<target>.sig \
  --certificate-identity-regexp "https://github.com/tezra-io/fermix/.github/workflows/release.yml@.*" \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  fermix_<target>

The releases.json artifact lists every binary's URL, sha256, and signature URLs.