v0.5.0
Immutable
release. Only release title and notes can be modified.
What's new in v0.5.0
Added
- Computer Use is now backed by the standalone
compuxlibrary. 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 andfermix doctor.
Performance
- Sandbox path checks no longer recompute their invariant root sets.
read_path/write_path/working_dirresolve the protected and effective root
sets once per call instead of ~3×, andcontent_search/glob_searchvalidate
their candidates through a single batchedSandbox.read_paths/3instead of a
per-filelstat/lssyscall storm. Behavior-preserving: identical allow/deny
decisions,condorder, 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_writecan no longer reach anext::RCE —GIT_ALLOW_PROTOCOL
is pinned so agit pullcannot invoke an external protocol helper. - Security: the home page no longer mints a
/setuplaunch token to any
visitor. - Computer use fails closed on host control for detached
/backgroundruns,
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
watchconstruct, 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.