Skip to content

vibe 0.1.185

Choose a tag to compare

@github-actions github-actions released this 05 Nov 12:56
81bcceb

Fixes for sbx 0.51 upgrade (#12)

Why: 0c17839 got vibe starting again on sbx 0.51. This takes the rest: features that only worked on the old Ubuntu image, a race in the generated on-start, and a few UI bugs found while testing.

Features on the Debian image

  • MySQL: the old feature installed mysql-server, which Debian doesn't have, so it never worked, and start-mysql used --daemonize, which MariaDB's mysqld doesn't take. There are now two features:
    • mysql-8.4: Oracle's own 8.4.13 from its generic tarball (x86_64 minimal, aarch64 full). Both builds have a pinned SHA-256 that I checked against Oracle's published MD5. It installs the libraries the tarball needs, and runs with --no-defaults. Starts take a lock and refuse a data folder they can't read, so they can't clear existing data. The version is in the feature name so later series can sit beside it.
    • mariadb: Debian's server, the previous feature renamed honestly. Breaking: a profile that lists plain mysql must now pick one of these.
  • Playwright installs Node and npm itself and no longer allows Ubuntu's apt hosts. Elasticsearch, PowerShell and the dotnet runtime step now check for the tools they use (curl, gnupg, certificates, tar, gzip) and install any that are missing.
  • New base feature prerequisites: one apt run, or none, for curl, certificates, gpg, tar, gzip, xz, flock and Node. Node moves here from the clipboard feature, since vibe-review needs it too.
  • tools/check-apt-packages.sh (run in a sandbox) lists the apt packages the library asks for that the image doesn't have. It would have caught mysql-server.

on-start

  • The boot-time run and vibe's session-start nudge can overlap. The generated script now takes a lock (flock -o, so daemons it starts don't hold it), waits at most 90 seconds, then gives up cleanly. It runs unlocked if flock is missing.
  • Its log now says how long each start script and the whole run took.

UI and restart

  • Network tab: sbx 0.51 lists a built-in default-deny-all rule that matches every host, so no allow ever showed as "Unblocked". It's now recognised by its shape (a non-editable local deny of **), with its reason text as a backup.
  • Review comments pane: a card's state pill is on its own line above the path. The comments button turns amber while any thread awaits your answer.
  • Restart: a sandbox the page wakes after sbx idled it now runs its start-up again, so the clipboard address is rewritten for the new boot.

Testing

  • Automated: go test ./..., go vet for Linux, Windows and macOS, and the formatting check all pass. Each fix has a test that fails without it, and the new tests were run repeatedly with no flakes.
  • In a real sandbox built from these commits: Elasticsearch, MySQL 8.4.13, Redis, RabbitMQ, PowerShell, Playwright's launch check and a dotnet build. Two real overlapping on-start runs queued as intended.
  • Not verified:
    • The macOS and Windows CI jobs.
    • The new real-Firefox test in CI. It ran locally through a throwaway runner but skips in this sandbox.
    • The aarch64 MySQL build, which is checksum-checked only.
    • The restart fix against a real idle-stop, which has unit tests only.
    • A TempDbMySql project against the 8.4 mysqld.

To install:

  • Linux/macOS: curl -fsSL https://raw.githubusercontent.com/fluffynuts/vibe/master/install.sh | sh
  • Windows: irm https://raw.githubusercontent.com/fluffynuts/vibe/master/install.ps1 | iex
  • Manual: download the zip for your platform (below), unzip it anywhere, and run
    vibe --install from the folder it makes.

To upgrade, run the same command again, or vibe --upgrade once vibe is installed.

Platform Zip
Linux (x86-64) vibe-linux-amd64.zip
Linux (ARM) vibe-linux-arm64.zip
macOS (Apple Silicon) vibe-macos-arm64.zip
macOS (Intel) vibe-macos-amd64.zip
Windows (x86-64) vibe-windows-amd64.zip
Windows (ARM) vibe-windows-arm64.zip

SHA256SUMS holds each zip's checksum. The install scripts and vibe --upgrade check it.

macOS: the binary isn't signed, so if it's blocked after downloading in a browser, run
xattr -dr com.apple.quarantine <folder> once.

What's Changed

Full Changelog: v0.1.182...v0.1.185