Skip to content

msl 0.1.4

Choose a tag to compare

@onexay onexay released this 25 Sep 09:19

Changed

  • x86_64-only distributions (Arch Linux, SUSE Linux Enterprise, eLxr) are no longer offered by msl --list --online, and msl --install refuses them. Under Rosetta, which is built into macOS 27, they don't boot cleanly yet, and x86_64 support is deferred (#40). --install --from-file still accepts x86_64 images.
  • Releases no longer include a .pkg. install.sh is the way to install msl, and the only one that sets up IDEs.
  • The VS Code extension has its own releases, vscode-<version>, like the kernel. Each msl release bundles the published one. The first is vscode-0.1.0.
  • Distro files on the Mac moved from ~/MSL/<distro> to ~/.msl/distros/<distro>, so they no longer add a visible folder to your home directory. Each distro still appears in Finder › Locations with its logo. On start, msld unmounts any old ~/MSL mounts and removes ~/MSL if it's empty. MSL_VIEW_DIR still overrides the location.
  • The README covers installing and the basics. The command reference, installer details and WSL compatibility table moved to docs/, which adds a Getting started walkthrough and a Troubleshooting page.

Fixed

  • msl --help now lists every command msl accepts, adding --debug-shell, --mount/--unmount, --update, --uninstall, --manage, --set-version, --set-default-version and --list --online. docs/cli.md includes the full help text.
  • The VS Code extension no longer hands back a dead server. After a VM restart it used to trust a pidfile that a new, unrelated process could now match, because pids start over. It also didn't notice a server that was still running but auto-shutting down and refusing connections. It now requires the server's own command line and a successful connection, and starts only one server when a window's connections resolve at the same time.
  • The VS Code extension works with distros that have no curl or wget, such as stock Debian. It downloads the VS Code Server on the Mac, caches it for every distro, and pipes it in.
  • VS Code tunnels (forwarded ports) no longer cut off a download when the local client reads slowly: the tunnel now applies backpressure and ends cleanly instead of dropping queued data.
  • msld now removes its run/vsock-*.sock bridge sockets when the VM stops, so stale sockets no longer pile up.

Added

  • msl --manage-ide [--ide <vscode|vscode-insiders|vscode-oss|cursor|all>] [--install|--uninstall] sets up the VS Code extension. It installs the bundled .vsix and adds it to enable-proposed-api in the IDE's argv.json, keeping comments and other keys. Without options, it lists the IDEs found and asks what to do. The installer runs it for the IDEs it finds (--no-ide skips this), and msl --uninstall undoes it. The extension (0.1.1) runs whichever msl set it up, recorded in cli-path in msl's data folder, so msl can be installed anywhere without setting msl.path (#35).
  • Preview VS Code extension (extensions/vscode) that opens folders in a distro through managed pipes: no SSH, and no port on the Mac. It needs VS Code's proposed resolvers API (Sodium).
  • msld's connect socket (connect.sock): CONNECT distro=<name> unix=<path>|tcp=<port> opens a byte stream into a distro, over vsock 1026 or the localhost forwarder. Unix sockets are limited to ~/.vscode-server/msl/*.sock, and the connection is made as the distro's default user. The VS Code extension uses it for every pipe and falls back to msl-bridge with an older msld (#32).
  • /run/msl/init msl-bridge unix:<path>|tcp:<port>: relays stdio to a Unix socket or localhost port inside a distro (#29).

Install: sh install.sh (or sh install.sh --version 0.1.4). Update an existing install with msl --update.

Kernel Linux 6.18.15-msl, release kernel-6.18.15-msl.1
VS Code extension release vscode-0.1.1, installed by msl --manage-ide
Commit d67bb9e
Requires Apple silicon, macOS 26 or later
GPL sources BusyBox: the attached Debian source package busybox_*. Kernel: attached to kernel-6.18.15-msl.1.
Signing ad-hoc (not notarised); checksum not PGP-signed

msl-0.1.4-macos-arm64.tar.gz SHA-256: 96942cc849cfc401ee1658eb3f5a3045872e9eb19bad87217585c4a854153716