Skip to content

Releases: MaraniMatias/Muster

Muster v1.0.0-rc.9

Muster v1.0.0-rc.9 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Oct 22:00

Native macOS arm64 and Ubuntu 24.04 amd64 artifacts built and validated from c1b9305.

Muster v1.0.0-rc.8

Muster v1.0.0-rc.8 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Oct 07:22

Native macOS arm64 and Ubuntu 24.04 amd64 artifacts built and validated from fb6d436.

Muster v1.0.0-rc.7

Muster v1.0.0-rc.7 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Oct 00:38

Native macOS arm64 and Ubuntu 24.04 amd64 artifacts built and validated from 0382553.

Muster v1.0.0-rc.6

Muster v1.0.0-rc.6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Oct 21:07

Native macOS arm64 and Ubuntu 24.04 amd64 artifacts built and validated from 80d1826.

Muster v1.0.0-rc.4

Muster v1.0.0-rc.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Oct 11:43

Native macOS arm64 and Ubuntu 24.04 amd64 artifacts built and validated from a752355.

Muster v1.0.0-rc.3

Muster v1.0.0-rc.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 21:36

Muster v1.0.0-rc.3

This release candidate includes both the native macOS app and the Linux package.

Downloads

  • macOS 15+, Apple Silicon: Muster_1.0.0-rc.3_arm64.zip. Unzip and move Muster.app to Applications. The bundle is ad-hoc signed, not notarized; Gatekeeper may block a downloaded copy. Verify the source and download before removing quarantine.

  • Ubuntu 24.04, x86_64: muster_1.0.0-rc.3_amd64.deb. Install with:

    sudo apt install ./muster_1.0.0-rc.3_amd64.deb

    The package's internal Debian version is 1.0.0~rc.3, keeping candidates ordered before the final release; its download filename uses GitHub-safe characters. Linux ARM64, AppImage and older distributions are not included. A working Vulkan driver is required.

SHA256SUMS verifies both downloads. SOURCE_SHA identifies the exact commit used to build them.

Changes and validation

  • Native Debian packaging includes the executable, desktop launcher, icon and runtime dependencies derived from the linked binary.
  • Both platforms must pass formatting, clippy, workspace tests, release-script tests, the RustSec audit and release compilation before publication.
  • The actual Linux package is installed and launched as an unprivileged user in a clean Ubuntu runtime container without development libraries. The Xvfb/lavapipe check requires a window and a process that stays alive; it does not certify real-GPU rendering, IME or Wayland behavior.
  • The release publishes the exact validated macOS and Linux artifacts, without rebuilding after validation. Versions, architectures, source claims and checksums are checked together.
  • Linux clipboard tests now use Ctrl+Shift+V; the Git shared-budget test has realistic CI scheduling margins without changing production limits.

This is a pre-release, not v1.0.0. Native JSON state is unchanged by this candidate; the frozen Tauri application's workspace is not imported or migrated.

Source commit: dffb157ba1126480a5e862025bf1814a7c7c2761

Full changelog: v1.0.0-rc.2...v1.0.0-rc.3

Muster v1.0.0-rc.1

Muster v1.0.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@MaraniMatias MaraniMatias released this 18 Oct 22:39

1.0.0-rc.1

  • Ctrl+Shift+ now reaches the program in the terminal. xterm.js 6 answers the keys it has an
    escape for and drops the rest: Ctrl+Shift+A sent no bytes at all, where Ctrl+Shift+F5 went out
    as ESC [ 15 ; 6 ~ with the shift in it. The letter is what went missing, because it is the one
    key xterm turns into a control character and the shift it cannot put on a control character is
    dropped with it — so a program bound to Ctrl+Shift+<key> never heard it pressed and the shortcut
    did nothing. The terminal now answers that chord itself, in the encoding the program chose: one
    that pushed the keyboard protocol gets ESC [ 97 ; 6 u and the whole chord, and one that never
    announced anything is left with xterm's own answer rather than one invented here. This is the
    same path Shift+Enter already took, and it means the shortcut only exists behind a reader that
    asked to be told about keys at all — no terminal can send a chord no program has agreed to
    distinguish.

  • There is one stored shape, and the file carries no version. Both state
    files in ~/.muster -- the native workspace and the review round store --
    carry no schemaVersion at all: every field is required, no field is unknown,
    and the shape itself is the whole contract. A shape is changed in place, a file
    this build cannot read is refused by name and never written over, and nothing
    left behind reads an older file: the navigation store no longer parses a second
    time to accept a file that carries no version at all, and a stamped file is
    refused like any other one this build does not know.

  • A document can be edited, and a save says what it wrote. The document pane
    is its editor: type in it, and a bar appears along the bottom with Cancel and
    Save — Esc and ⌘S are the same two controls. Cancel puts the text the file
    was read with back; Save writes what the editor holds, through the same walk
    every read of a checkout is answered by: a path outside the checkout, a link, a
    file somebody else wrote since it was opened, or a file that is read-only are
    all refused in as many words rather than overwritten, and what is written is a
    replacement rather than a rewrite, so a reader sees the old text or the new one.
    A Markdown document opens as its reading and is edited as its source, because
    the reading is a parse of the text as it was read.

  • A file with changes offers them from its own document. When Git has said
    this file is in the change set, the document's header carries a Changes
    button with the counts beside it, and it opens that one file's diff rather than
    the whole set. A file Git has not answered about offers nothing, because a
    button that appears and disappears with a read is worse than one that waits.

  • A picture, a video and a file's name stand apart from the text. The toolkit
    measures an inline element as a box of its own, so the air above and below a
    picture — and around the words that stand in for what cannot be drawn — is
    inside that box. A document's SVG is drawn like any other picture: it is the
    one format this window takes by name rather than by its bytes.

  • The app has its icon back on macOS. An executable carries no icon there: the
    icon is what the bundle around it says it is. scripts/bundle-macos.sh builds
    Muster.app with the same bundle identifier, name, copyright and artwork the
    Tauri build shipped, so the OS files the native shell as the same application
    rather than as a second one that happens to look like it. Two fields differ on
    purpose: the bundle declares macOS 15 as its floor, which is what the toolkit
    this app is built on needs rather than what the old webview build needed, and
    the build now enforces that floor instead of only promising it, so an API newer
    than 15.0 is a build error rather than a crash on someone else's Mac. The
    version is whatever native/Cargo.toml declares.

  • There is a menu bar on macOS. The app menu carries About, Services, Hide,
    Hide Others and Quit, and the Edit submenu carries Undo through Select All —
    the same two submenus the Tauri build had. Edit is not decoration there: those
    are the key equivalents ⌘C, ⌘V, ⌘X, ⌘A and ⌘Z are answered by, and on
    macOS they are answered before the key reaches the window, so the terminal
    answers them as the toolkit's copy and paste actions as well as in its own key
    handling. Either way the grid copies its selection and pastes into the child.

  • About Muster says what it always said. The icon, the name, the version, the
    copyright and the repository, in the order macOS shows them, in a panel of its
    own that closes with ⌘W.

  • Where an exported review round lands is a preference. Settings has a "Review notes" section
    with a selector for it: Default keeps them in ~/.muster/tmp/reviews, and Work directory
    keeps them in .muster/reviews inside the checkout the review was made in — the repository or
    worktree in front of you. The folder the selector names is written out underneath it, with how
    many exported notes it holds and how much they weigh, and in the default folder there is a button
    that deletes them: it asks first, and it removes only the files an export wrote, so anything else
    you have put in that folder stays. A working directory's notes belong to the repository, so there
    is no button there and the command refuses one anyway.

  • The app is called Muster. The name changed together with everything that carries it: the
    product, the release artifacts, the paths on disk and the data behind them. The bundle identifier
    went from dev.marvis.workspace to dev.muster.workspace, and that is what moves the app-data
    directory, the log directory, and the filenames of the Linux packages — muster_<version>_.deb
    and Muster_<version>_.AppImage.

  • Preferences move by hand; the workspace does not move at all. Settings live in
    ~/.muster/config.yml now and exported review rounds in ~/.muster/tmp/reviews/, so copy
    across whatever is worth keeping — nothing reads the old folders. Reviews already exported under
    the code-reviews name this section used to carry stay there and are not moved or read: at
    0.x a path change is made in place, and the ones still worth having are worth copying by hand.
    The database is
    muster.sqlite3 and it starts empty: no migration runs in either direction, so the repositories
    you registered, your review notes and your rounds stay in the old marvis.sqlite3 on disk. That
    file is still an ordinary SQLite database if you need anything out of it; this build only refuses
    a schema stamped with a version it does not know, which is the rule that has always governed it.

  • An old Marvis.app stays installed next to Muster.app. Two bundle identifiers are two
    applications to macOS: neither replaces the other, and each keeps its own dock tile and its own
    data. Removing the old one is a manual step.

  • Why it was done in one go. The project is still 0.x, so a change that moves paths is made in
    place instead of being carried by a deprecation window: nothing has to read what an older build
    wrote, and a compatibility layer kept "one release" would only be code nobody exercises.

  • Preview images and videos directly; switch SVGs between an editable source and a live preview.

  • Settings now says what the keyboard does. The chords the window answers were written down in
    the source and nowhere else, so learning them meant reading App.vue. There is now a Shortcuts
    section in Settings that writes them down: the side panels, a new terminal and the three zoom
    keys, then the few keys that mean something only where they are pressed — confirming a session
    name, Esc, ctrl/click on a terminal link, and the inspector's Home/End. Each chord is drawn
    the way the platform it is read on presses it, so a Mac shows ⌘/ and everything else shows
    Ctrl+/ rather than both, because a chord printed the other way round is a key nobody has. It is
    a list and nothing more: no chord is configurable, and none of it is written to config.yml.

  • F2 no longer pretends to rename a session. The sidebar rows carried @keydown.f2, which
    could only fire on a row that already had the focus, and a click does not focus a row: on macOS
    the webview does not move focus to a button it is clicked, so the binding was reachable only by
    tabbing to a row nobody tabs to. Double-click still renames. The binding is gone rather than left
    where it is a lie about a shortcut Settings now lists.

  • About says which build it is, and stops leading with the licences. The section opened with an
    acknowledgement and four groups of credits — artwork, colours, the typeface and every library —
    which is longer than the rest of it and is the answer to a question nobody opened Settings with.
    The version is now the first line, read from the binary rather than written into the dialog, so it
    cannot name a release behind the app it is in; a build that cannot read its own version draws no
    version rather than one that is nearly right. The credits are still all there, folded into a
    "Credits and licences" row that says what is inside it. The notices themselves were never only
    there: the full licence texts ship as THIRD-PARTY-NOTICES.txt inside the bundle, which is where
    a notice has to travel to count as one.

  • A URL in the terminal can now be clicked open in the browser. The terminal underlines the paths
    it can open in the preview, and it refused to underline an address because https://… names no file
    in the checkout — which is true, and left the one thing a terminal prints most often (curl, a
    deprecation warning, an npm error pointing at its own docs) as the one thing it could not follow.
    An address is now underlined next to those paths and ctrl/click opens it in the browser, the same
    key and the same key-...

Read more

Muster v0.22.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 10:44

Full Changelog: v0.21.1...v0.22.0

Muster v0.21.1

Choose a tag to compare

@github-actions github-actions released this 11 Oct 15:18

Full Changelog: v0.21.0...v0.21.1

Muster v0.21.0

Choose a tag to compare

@github-actions github-actions released this 11 Oct 09:06

Full Changelog: v0.20.1...v0.21.0