Changelog
Mirrored from
cli/mix-shell/CHANGELOG.md, where releases update it. The component's page is mix-shell. This page describes the currentmainbranch of MixOS.
0.117.0
Changed
mix manreads the manual built into the binary: everydocs/mix/*.mdpage is packed into one zstd frame at build time, so a binary copied alone, with no checkout and no network, has its whole manual. With noMIXOS_MAN_*variable set the built-in page wins (it documents exactly this binary), then files on disk, then the online copy.MIXOS_MAN_SOURCE=localputs files on disk first, then the built-in manual, and never uses the network.MIXOS_MAN_SOURCE=autoorMIXOS_MAN_URLkeeps the online-first order, with the built-in manual before a stale cached copy.mix doctorandmix aproposcount and search the built-in pages. The compiled-in path to the build checkout'sdocs/mixis no longer a lookup candidate.
Fixed
- A foreground job stopped (^Z) just after its exec is now stopped, not
reported as "job stopped before exec acknowledgement" and aborted. The
launch checked for the stop before reading the exec acknowledgement that
was already waiting. This was the intermittent failure of the
owned_editor_ptytestforeground_job_ctrl_z_fg_and_nested_editor_stop_preserve_draft.
0.116.0
Added
- Released with mix 0.116.0: the remote mix binary for
ssh_mixand the other remote-mix builtins comes from themix_binoption, elseMIX_REMOTE_BIN, else the old install path's mix (mix man remote).
0.115.0
Added
- Released with mix 0.115.0:
unix_connect()opens a local unix-domain stream socket, with NUL-terminated frames for Varlink and hostd (mix man system).
0.114.0
Changed
- Usage statistics are an append-only JSONL store. A run's exit appends one
record to
runs/YYYY-MM-DD.jsonlwith a single write and does nothing else, so recording costs nothing measurable:mix -c 1went from 151 ms to 52 ms on a host with a busy history, the same as with stats off. Raw day files are never rewritten;cache/holds disposable per-day aggregates checked against the exact raw file; reports filter by each bucket's own date.mix stats queryruns SQL over the oldmix.dbtables built in memory, so on a large history it now takes about a second. clearandresetappend an operation anchored to storage positions, not a clock, underops.lock. They refuse while the old weekly documents (current.json,YYYY-WNN.json) exist; those are read in place, never moved, and theirstats.lockis never taken, so an older mix still writing them keeps working.mix man statsdocuments the store.
Fixed
- A session task no longer inherits file descriptors the shell itself inherited without close-on-exec.
0.113.1
Fixed
- Built on mix 0.113.1:
on dopus-test.command.executed(a hyphenated handler name) now fires; before, it parsed and never did.mix man busdocuments it.
0.113.0
Added
- Built on mix 0.113.0 with the
mimefeature:mime_type()names a file's type as the desktop does.mix man iodocuments it.
0.112.1
Fixed
- Built on mix 0.112.1: SIGTERM and Ctrl-C end a blocking
tcp_accept,tcp_recv,tcp_recv_lineorws_recvat once,tcp_sendtakes a whole-send{timeout}(TCP_SEND_TIMEOUT), and receives serve buffered data first while traffic that delivers nothing counts against the deadline.mix man systemdocuments them.
0.112.0
Added
- Built on mix 0.112.0: server-side TCP (
tcp_listen,tcp_accept,tcp_local_addr,tcp_onon a listener) andon @.verb, which registers a handler under the--servename so one generic script serves any instance.mix man serveandmix man systemdocument both.
Fixed
- The serve reload lifecycle test's TERM-ignoring fixture creates the trace file itself. The citizen spawned it before the first trace line existed, so a fast start panicked on open and the grace test timed out.
0.111.0
Fixed
- An interrupted run exits with status 130 (128+SIGINT) derived from the signal
actually received, never from error text: an ordinary error whose message
mentions
interruptednow fails with its own diagnostic instead of exiting 0. - SIGINT/SIGTERM are honoured during
--servestartup (stalled broker registration, CPU-bound preludes, reloads) and during-c, script and.mixrcprelude loading. A caught interrupt cannot end in success, and--result-fdalways reports it as an error frame. script_path()is resolved before the prelude runs in script and serve modes.
0.109.4
Initial MixOS shell transplant. Language semantics retain the source version. Application transport is native ABP through noded. Runtime directories use the shared config rule; installed manuals are available offline. Cross-process native-session handoff bytes retain the frozen compatibility contract.