Skip to content

Releases: FormikaDesk/rada-fm

rada 0.6.0-rc.17

rada 0.6.0-rc.17 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Oct 15:58

On a Mac the standard colours renamed in the Finder keep their colour, an Arch Linux package is ready, and the code of the interface is reorganised. Still a pre-release.

Added

  • An Arch Linux package (PKGBUILD in packaging/aur), to be published on the AUR.

Fixed

  • On a Mac a standard tag you renamed in the Finder keeps its colour. A tag renamed to "🌈" (the orange one) or "👵🏼" (the green one) was drawn gray in the sidebar and on files that carry another number; rada now reads the Finder's list of names (FavoriteTagNames in its preferences) and gives a renamed tag the colour of its place in that list. The list is used only when it is the Finder's own (eight entries, the first empty, every standard colour name in its place, at least three of them) and is read again only when the file changes; otherwise it is ignored as a whole. The colour of a tag is now decided in this order: a standard colour name, a name from the list, the number in the file, none. Nothing changes on Linux and Windows.

Internal

  • The functions of App live with the groups they work on, and none is longer than 40 lines.

rada 0.6.0-rc.16

rada 0.6.0-rc.16 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Oct 15:17

Tags on a Mac show the colours of the Finder, and the panels view lists your own tags. Still a pre-release.

Fixed

  • On a Mac a tag named after one of the seven colours shows that colour even when the file carries another number, as in the Finder: a file tagged Verde with the number 1 (gray) was drawn gray in the list, the TAG column and the details, and the Finder shows it green. Tags of your own keep the colour of their number. Nothing changes on Linux and Windows.
  • The row of tags in NAV of the panels view lists the tags of your own after the seven colours (on a Mac "Arancio", "🌈", "👵"), as the classic sidebar does: each is a dot in its colour (gray if it has none), a click or Enter opens its list, and ← → walk them. When they do not fit on a line they go on to a second and a third; in a short box the extra lines go first and the others are counted as +N. The name of the dot under the pointer or the keyboard is in the status bar. Nothing changes on Windows, which keeps no tags.

rada 0.6.0-rc.15

rada 0.6.0-rc.15 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Oct 11:41

The terminal's background takes the theme's colour while rada runs, so the margin around the window has no frame, the ring and the preview follow a zoom of the font, and the interface's code is split into groups. Still a pre-release.

Changed

  • The terminal's background is the theme's colour while rada runs, and goes back to what it was when rada ends, so a terminal that keeps a margin around its grid no longer shows a frame of another colour. It also goes back on an error and when the terminal is closed. Nothing is changed with a transparent theme, on 16 colours, with NO_COLOR, under tmux or screen, in Terminal.app and in the Windows console. After kill -9 the terminal keeps the colour until you run reset. The window of Rada.app shares the leftover room on every side.
  • The blank rows between the bars of the panels view stay from 40 rows, not 42: a Mac window of 41 rows no longer loses them all.

Fixed

  • The ring and the picture of the preview are made again when you change the size of the terminal's font (zoom), so they no longer stay at the old size.

Internal

  • The interface's state is split into groups: the main structure goes from 114 fields to 19, and switching, opening and closing a tab swap one value instead of copying 17 fields by hand. docs/ARCHITECTURE.md says what each group holds.
  • A test can no longer wait for ever: the chooser tests wait for the folder before moving, a test that lasts more than 120 seconds says what it was doing and stops the run, and the test job may run 45 minutes.
  • The tests that draw disks wait for the system's list before setting their own, so a late answer (seen once on macOS) cannot replace them.

rada 0.6.0-rc.14

rada 0.6.0-rc.14 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Oct 16:32

The file chooser gets a preview, a rename onto a name that exists asks what to do, and the panels view keeps the places in sight and cuts long names in the middle. Still a pre-release.

Added

  • The file chooser shows a preview of what is under the cursor beside the list, from 70 columns; below that Alt+P swaps the list and the preview. The chooser never asks for a bigger window.
  • Renaming onto a name that exists asks what to do: skip, keep both, or overwrite. Overwrite sends the old item to the trash first, so Ctrl+Z brings both back.

Changed

  • Long names are cut in the middle (CV_Alessan…Accenture.pdf), so the start and the end show and similar names can be told apart. This holds in the list, the file chooser, NAV, the path bar, the tabs and the sidebar; a column too narrow for four cells on each side cuts at the end as before.
  • NAV keeps Home and the other places in sight. When the box is short, PERCORSO gives up rows first ("… N more"), then the blank rows go, and DEVICES shows only the main disk and "… N more".
  • SPAZIO gives a disk's name the room it needs; the bar shrinks, down to six cells.
  • The blank rows between the bars of the panels view go in steps with the height of the window.
  • The README opens on the panels view, and Windows and macOS are described as a pre-release.

Fixed

  • unicode-std and the panels view. The marks of the panels use the standard set, and "selected" and "ready to paste" no longer look the same.
  • The scroll thumb of NAV no longer covers the end of the highlighted row.
  • The list of a file chooser fits its columns to the room it has, and the hint of a binary file's preview is cut to its box.

Internal

  • Code review: docs/ARCHITECTURE.md, long functions split, and the tests reorganised by subject.

rada 0.6.0-rc.13

rada 0.6.0-rc.13 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Oct 17:27

The panels view — the screen as rounded boxes — with the Neon theme, the state of a git repository, folders from zoxide, colours in the preview of source files, and the corrections of what was seen in it: the NAV tree opens its folders, follows the folder you are in and scrolls, the favourites no longer repeat the standard folders, and SPAZIO draws the main disk as a ring. Security updates of two libraries. Still a pre-release.

Added

  • The main disk of SPAZIO is a ring where the terminal draws pictures (kitty, Ghostty, WezTerm… and a theme in true colours): a ring from cyan to violet with the percentage and usato in its middle and, beside it, the name, used of total and free. The picture is made at the size of its cells, in four pieces around the hole where the text is, and again only when the percentage changes. Elsewhere the bar stays.

  • The panels view. On a window of 140 columns by 36 rows or more rada draws the screen as rounded boxes: NAV (a tree of folders from Home with the number of items in each, the favourites, a row of the seven tag colours, the trash) and SPAZIO (the main disk with its percentage, used of total and free, and the other volumes with a bar of twelve cells) on the left; the folder in the middle (Name, Size as a number alone, Modified, Tag; the selected row filled with the selection colour and rounded; the card of the last operation inside the box); ANTEPRIMA (the preview, name and type, rounded labels for type, size and resolution, a short full Apri button) and DETTAGLI on the right. The tabs, the navigation row and the buttons are rows of their own with a blank row between them, as are the status bar and the key hints; below 42 rows the blank rows go. Tab moves the keyboard between NAV, the folder and ANTEPRIMA, and the border of the box it is in takes the accent colour. The tree is listed by a worker (rada_core::workers::tree_dirs), never by the drawing. The box under ANTEPRIMA is chosen in one place, ready for an assistant box in a later version. Documented in docs/interface.md.

  • layout = "auto" (the default), "panels", "classic" or "compact". Auto draws the panels with three columns from 140×36 and with two from 70×24 (NAV on the left, the folder; SPAZIO under NAV from 36 rows; the command that shows the details — Alt+P, F6, Details pane in View ▾ — puts ANTEPRIMA in the place of NAV and, the same command again, NAV back; Ctrl+B still takes the left column away), and the classic layout below that (a tiled window, the file chooser always). With auto there is no advice to enlarge the window — rada chooses the view; it is shown only with layout = "panels" when the boxes do not fit. "panels" chooses between three columns (from 100×24) and two. It changes by itself as the window is resized. In the narrow boxes a label or a button that does not fit whole is left out, NAV drops the numbers when a name does not fit with them, and SPAZIO writes 156/209 GB and 53 GB liberi (no decimals from 10 up) where the full figures would be cut, with bars that give up cells so that the names of the disks stay whole. View ▾ has Layout: automatic / panels / classic; the choice is remembered in ui.json and replaces the configuration's. explorer still means classic.

  • The date column of the list goes below 90 columns (the classic layout and the middle box of the panels view): the name has the room, and the sort by date stays.

  • The state of a git repository in the panels view. When the folder shown is in a repository, the top edge of its box says the branch (with an icon and how far it is from its upstream) and the number of changed (●) and new (?) files; an M in yellow or a ? in green follows a file's name, and the status bar and DETTAGLI say the same. It is read with git status --porcelain=v2 -b -z on a thread of its own, only when git is installed, with a time limit; with git missing, refusing or slow nothing is shown and no error is reported. git is told to take no locks, to leave the file system monitor of a repository alone and to ask nothing on the terminal. git = false never calls it; git_path names the program.

  • nav = "percorso" (the default) or "albero": what the NAV box lists. percorso shows on top the places of the classic sidebar (Home, Recenti, the standard folders, the favourites, the devices, the tags, the trash) and, under a blank row and the title PERCORSO, only the way to the folder shown: the nearest place that holds it (or the root of its disk) with its icon, then the folders down to it one to a row and indented, the folder itself highlighted with its number of items, and its subfolders, as many as the box has room for and then "… N more". In a place (Home, Documents, a pinned folder, a disk) there is no PERCORSO, only the highlighted place; the folders have the colour of those of the middle box, and the trash is always the last row of the box. It follows every change of folder; a click or Enter on a row shows that folder. albero keeps the whole tree of Home as in the earlier builds of this release.

  • The theme neon (theme = "neon"): an indigo night (#0e1022, boxes #13152b) with a violet accent and selection and six bright hues. A light terminal gets Gesso.

  • Every theme has two new kinds of entry for the panels view: inner (the tone the inside of a box is filled with) and six hues (cyan, pink, yellow, green, orange, blue). Contrast tests cover them; on Gesso and Carta the text on the selection is dark.

  • Jump with zoxide. In the bar (Ctrl+P), when what you type matches no command, no place and no name in the folder, rada also offers the folders zoxide query --list <text> gives (at most five, marked zoxide); Enter opens the one picked, or the first. Every folder rada enters is told to zoxide with zoxide add, in the background. If zoxide is not installed nothing happens and no error is shown. zoxide = false in config.toml makes rada never call it; zoxide_path names the program (the tests use a made-up one). Documented in docs/usage.md and docs/configuration.md.

  • Colours in the preview of source files. Comments, strings, numbers, keywords, types, functions and attributes are coloured, for most languages (syntect, with its pure Rust regex engine: nothing to build with a C compiler, so Windows, macOS and musl are not harder; TOML, which it does not know, has a small reader of its own). The colours are taken from the active theme (text_dim, success, warn, accent and the file-kind colours): none of them is written by hand. Only the first 64 KB and 1000 lines are coloured, by the preview worker and not by the interface; an unknown language or a binary file looks as before. syntax_highlight = false in config.toml turns it off. deny.toml ignores RUSTSEC-2025-0141 (bincode, which syntect uses to read its own bundled definitions) with the reason.

Changed

  • The colours of Neon are those of its reference screens (docs/design/): cyan #5fe1e6, pink #f472b6, yellow #fbbf24, green #34d399, orange #fb923c, blue #60a5fa, red #f87171, the quiet tone #4b5180 and the track #262a52, sampled from the pictures.
  • rustls-webpki 0.103.16 and webpki-roots 1.0.10 (RUSTSEC-2026-0381, RUSTSEC-2026-0382).
  • rada update names the version to a copy installed with cargo while the new one is a pre-release. Cargo does not pick a pre-release by itself, so cargo install rada --locked would find nothing: the advice is now cargo install rada --locked --version <new version> (in Italian too). With a stable version it stays cargo install rada --locked. docs/install.md and docs/updates.md say the same.

Fixed

  • The NAV tree follows the folder you are in and scrolls. Wherever the folder changes from (the list, the path, Ctrl+P, zoxide, back and forward) the tree opens the branches down to it, highlights it and scrolls so that it is in view; a tree longer than its box scrolls with the wheel and with ↑ ↓ when NAV has the keyboard, and a thin bar at its right edge says there is more. Enter and a click on a name show the folder in the middle box with the same history as the classic sidebar; a click on an arrow only opens or closes the branch. Tests cover a tree longer than the box, a deep folder, the wheel and the keys.
  • PREFERITI no longer repeats the standard folders (Documents, Downloads, Pictures…): they are in the tree under Home. Only the folders you pinned are listed, and with none the section is not drawn.
  • The end of a pill or of a row stood on the wrong colour with a theme that leaves the terminal's background alone (catppuccin, tokyo-night, transparent_background): the round end took the colour the cell had before and blended into the pill. The background behind an end is now always set. A test checks every pill of the panels view.
  • The program's name keeps its lower case at the start of a notice. The message that closes an update said "Rada 0.6.0-rc.12 è installato…" (seen on Windows): the notice title puts its first letter in capitals, and it did so to the name too. A text that begins with the word rada is now left as it is, in Italian and in English.

rada 0.6.0-rc.12

rada 0.6.0-rc.12 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Oct 15:40

rada can now be installed from crates.io (cargo install rada --locked, from the moment the crates are published), and rada update leaves a copy installed that way to cargo. The pictures of the README and the docs are drawn again, so that they show the centred icons of the narrow sidebar and the Tag column as it is now. Still a pre-release.

Added

  • The crates can be published on crates.io, so that cargo install rada --locked builds rada from there (it works from the moment the crates are published; while only pre-releases exist, add --version 0.6.0-rc.12). rada-core, rada-tui and rada carry the data crates.io asks for (description, licence, repository, keywords, categories, a README each, the minimum Rust version) and depend on each other by path and by exact version; each package holds only what compiling needs (no tests, screenshots or media: 380, 285 and 204 KB). docs/install.md and the README tell how to install it, docs/release.md has the steps to publish a version (rada-core, then rada-tui, then rada), and scripts/set-version.sh moves the versions the crates ask of each other along with the workspace.

Changed

  • The screenshots and the GIFs of the README and the docs are drawn again (docs/screenshots, docs/media; the 29 pictures and the two GIFs) with the program of this version, from the tapes and on the made-up home folder of scripts/demo-home: they showed the Tag column empty and the icons of the narrow sidebar off centre, which rc.11 fixed. The status bar in them says v0.6.0-rc.12.
  • rada update leaves a program installed with cargo install rada to cargo. It reads cargo's .crates.toml next to the bin folder, and when rada from crates.io is listed there it replaces nothing and says to run cargo install rada --locked (in Italian too). A program put in ~/.cargo/bin by cargo install --path, or only copied there, is updated as before.
  • scripts/set-version.sh also moves the install line in the README of the rada crate (crates/rada/README.md).
  • contrib/rada-wrapper.sh, the script rada setup file-picker installs, now lives in crates/rada/assets/linux/ with the other files the program carries inside itself, so that the crate can be built from crates.io.

rada 0.6.0-rc.11

rada 0.6.0-rc.11 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Oct 13:56

rada setup shell puts the "cd on exit" in your shell's file for you, rada no longer ends with a terminal error after opening a file with another program (found on a Mac), and a narrow window is better used: the icon of the current place is back in the icon-only sidebar, the Tag column and the file chooser's help line give their room back. On macOS, make Rada.app again with rada setup desktop: the launcher that keeps the window open on an error is in the new one (the old one keeps working). Still a pre-release.

Added

  • rada setup shell installs the "cd on exit" for you. rada --init <shell> printed the function (v: opens rada and, when you quit, the shell goes to the folder you were in) but you had to put the call in your shell's file yourself. Now rada setup shell finds your shell in $SHELL (--shell bash|zsh|fish|nushell|powershell chooses by hand; PowerShell on Windows), shows what it would write and where, asks, and writes (--yes skips the question). fish gets a file of its own, ~/.config/fish/conf.d/rada.fish (config.fish is not touched); bash (~/.bashrc, ~/.bash_profile on a Mac), zsh ($ZDOTDIR/.zshrc, else ~/.zshrc) and PowerShell (the profile) get a block between # >>> rada >>> and # <<< rada <<< that holds only the line calling rada --init; nushell, which cannot run what a command prints, gets a file of its own in its autoload folder (vendor/autoload/rada.nu) with the function in it. If it is already installed (or your file already calls rada --init) it says so and writes nothing; --remove takes away exactly that block or file, and a file of rada's own that you changed since is left alone. At the end it says to use v and to open a new terminal. Not tried on a real nushell, PowerShell or Mac: the places are tested in a temporary home. The help screen (?) has a line about it.

Changed

  • The Tag column takes no room where it has nothing to show. It is left out of a folder in which no item carries a tag, and below 80 columns; the room goes to the names. In a wide window, a folder with tagged items has it as before.
  • The file chooser's help line has a short version. In a window too narrow for the whole line (for example Space mark · Enter choose the marked · → open folder · ← up · Esc cancel at 78 columns) it said only half and ended with …; now it gives Space mark · Enter choose (in Italian, Spazio segna · Invio scegli), and likewise for the folder and save-as bars. The full line is used where it fits.
  • scripts/set-version.sh <version> moves the version in Cargo.toml, Cargo.lock and the numbers in docs/ in one go (see docs/release.md).

Fixed

  • The icon of the place you are in was missing in the icon-only sidebar (a window of less than 100 columns): the highlighted pill showed empty. The pane inside the border is three cells wide, and the icon sat in the third, where the half circle that rounds the right end of the pill was drawn over it. The icon is now in the middle cell, which also centres it in the column.
  • docs/install.md: the download example named one version in the address and another in the file name. Both are now the same, and the script above keeps them so.
  • rada ended with "terminal error: The cursor position could not be read within a normal duration" after opening a file with another program (reported on a Mac, in Ghostty; the same on Linux in a pseudo-terminal). Starting a program makes rada draw the screen again from nothing (now, and again after 0.3, 1.5 and 4 seconds, because some programs write on the terminal they were started from), and clearing the screen asked the terminal where the cursor is. The thread that reads the keyboard was waiting in crossterm::event::read(), which keeps the only reader of the terminal's answer locked for as long as it waits: the question could not be answered, and after two seconds it failed and ended rada. Now the keyboard thread waits for at most 50 ms at a time and is stopped, and waited for, before the terminal is asked anything; what is typed meanwhile waits in the terminal and is read right after, so no key is lost.
  • A terminal that does not answer, or a screen that could not be drawn, no longer ends rada. The failure goes to the log as a warning and the screen is drawn again from nothing at the next turn. A terminal that did not answer the cursor question is not asked again (the screen is cleared without it). Only a terminal that is gone (closed, hung up) or that fails 50 frames in a row ends rada.
  • Every error that ends rada is written to the log (rada.log, as ERROR) with all its causes in one line, before it leaves; before, a terminal error left only the start-up lines there.
  • macOS: a window of Rada.app no longer vanishes with the error in it. When rada ends with an error and was started by Rada.app, it shows the message and waits for a key before the window closes. The launchers set RADA_FROM_APP=1 for this; make Rada.app again with rada setup desktop to get it (the old one keeps working, but its window still closes at once).

rada 0.6.0-rc.10

rada 0.6.0-rc.10 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Oct 10:50

rada can now be the file picker of the Linux desktop (the window a browser opens for "upload a file"), the light theme is a more neutral off-white, tabs respect your sorting settings, and on Windows rada can open folders for other programs. This is also the first update you can verify with the signature: if you have rc.9, rada update checks SHA256SUMS.minisig before it installs this one. Still a pre-release.

Added

  • Windows: rada setup desktop --default-file-manager makes rada the program that opens a folder when another program asks (the Run box, "Open containing folder" in many programs), as Total Commander and Directory Opus can be set up to be. It writes only in your own registry (HKEY_CURRENT_USER\Software\Classes, never the machine's): the open of the Directory class, and takes away a DelegateExecute that another replacement left there. It shows each key and value (and what was there) first and writes only after a yes (--yes skips the question); what was there is written down, and setup desktop --remove puts it back, takes away only the keys it made and leaves alone a value changed since. Explorer is not touched (its own folders, Win+E, Open in new window, the virtual folders and the drives stay as they are). Not tried on a real Windows yet: the logic is tested with a registry in memory.
  • A table of what rada does with each system in docs/platforms.md (System integration): opening folders for other programs, "show in folder", the browser's file picker (Linux only: on macOS and Windows it is a window of the system that a program cannot replace), cd on exit, trash, tags, launcher. It also says what Rada.app can and cannot be on a Mac (the Finder's place and NSFileViewer are left alone, and what would need a real Mac to find out is listed).
  • A theme called carta (theme = "carta", --theme carta): the warm parchment that rada-light was until now, with its values unchanged. It is a light theme of its own that does not follow the terminal (carta or paper pin it, like nebbia-light).
  • rada as the system's file chooser (Linux). rada --chooser-file ANSWER is the window that other programs get when they ask the desktop for a file ("upload a file" in a browser), through xdg-desktop-portal-termfilechooser, as yazi and ranger do. Enter chooses (the paths go to ANSWER, one per line, and rada quits), Esc cancels and writes nothing. A bar at the top says what is asked: Choose a file, Choose files (--chooser-multiple, Space marks), Choose a folder (--chooser-dir: only folders are listed, Alt+Enter takes the one you are in) or Save as (--chooser-save=NAME: Ctrl+S asks for the name with the suggested one filled in, and a name already taken asks twice). Nothing can be deleted, moved, renamed, copied or changed in this mode: those actions, the context menu, the command buttons and the key hints are gone, and the confirmation window refuses any plan that is not a new folder, the one thing that can be made (where a folder or a place to save is asked for). A chooser starts sorted by date of modification, the most recent first (what is looked for is nearly always what was just made or downloaded), whatever the sort setting says; the order can be changed as usual while choosing, and rada leaves its own remembered state, updates and the font offer alone in this mode.
  • rada setup file-picker writes the three files that make it work, for this user only: the script the portal runs (contrib/rada-wrapper.sh, which opens rada in $TERMCMD, $TERMINAL or the first terminal found, with the options that keep the window in front: Ghostty gets --gtk-single-instance=false), the portal's config, and <desktop>-portals.conf (FileChooser=termfilechooser, starting from the system's own file so that the other portals keep their backends). It shows what it would write and where, with the new lines marked, and writes only after you say yes (--yes skips the question); it keeps a copy of every file it changes, uses no sudo and installs no package (it says which one to install). --remove goes back. See Use rada as the file picker in docs/desktop.md.

Changed

  • The default light theme (rada-light) is now "Gesso" (chalk): an almost neutral off-white, #f4f3f0, instead of the warm parchment #ebe4d5, which was too "paper" (on a Mac most of all). Text is a near-black neutral (#2f2f2f) and the accent a little cooler blue (#3d5b88). Every other token (the row under the mouse, fields, borders, selection, key caps, buttons, tabs) is the old one moved to the new background together, with the same distance in lightness from it, so the theme stays as coherent as it was. Contrast on the background: text 12.1:1, secondary text 5.6:1, accent 6.2:1, the border of a menu or window 3.1:1; the thin lines between panels are as visible as they were (1.4:1). Whoever liked the parchment keeps it with theme = "carta" (below).
  • sort = "date" is the most recent first, as in the Finder and Explorer, and reverse = true is the oldest first. Before it was the other way round ("date" showed the oldest at the top and you had to reverse it). The arrow beside the column title says what the list does (↓ from the newest), the Sort ▾ menu's Ascending and Descending follow it, and a new key keeps the direction of the arrow. If you had sort = "date" with reverse = true to see the newest first, remove the reverse line. Tabs saved by an older version look as they did.

Fixed

  • CI: every job ends after 30 minutes at most. A Windows test job once ran for over 30 minutes until it was cancelled. The one test that read the real Windows registry is gone (the logic is tested with a registry in memory), and reg.exe, when it is run for real, is stopped after 20 seconds.
  • A tab remembered its order even when you had never changed it, and that order won over config.toml (with sort = "date" the Downloads folder was still alphabetical). Every saved tab used to carry sort and reverse, so a configuration changed later was ignored by the tabs that were open at the time. Now a tab's order is written to ui.json only where it was chosen (a click on a column title, the Sort ▾ menu, the keys), at the moment it is chosen; every other tab follows config.toml at each start. A ui.json from an older version cannot tell the two apart: a tab sorted by name and not reversed is taken for one that was never touched, and any other order for a choice.
  • Two writes of the remembered state close together could leave the older one in the file (each is made by a thread of its own). The older one is now given up when a newer one has been asked for.
  • scripts/sign-release.sh without RADA_REPO signed the release but then failed to upload the signature and publish (fatal: not a git repository): it had moved to a temporary folder and gh could not tell which repository it was in. The repository is now asked of gh once, before leaving the folder the script was started from, printed (Repository: owner/name) and passed with -R to every call; if it cannot be told, the script stops at once and says to set RADA_REPO. scripts/test-sign-release has three new cases for it.

rada 0.6.0-rc.9

rada 0.6.0-rc.9 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Oct 14:03

The first signed release: rada update now checks a signature before it installs anything. Also phones, cameras and USB sticks in the sidebar on Linux, a tidier sidebar, and fixes found in a review of the code. Still a pre-release.

Updating from rc.8: rc.8 does not check signatures, so the step from rc.8 to rc.9 is checked only by the hash, as before. From rc.9 on every update is checked with the signature. To be sure about this first one, check the download by hand: verify.md.

Documentation

  • Documentation reorganized. The README is now a short page (what rada is, why to trust it, install, a quick start, the public keys for verifying downloads, links) and everything else it used to hold moved, unchanged in substance, to docs/: features.md, usage.md (first steps, command line, all keys, mouse, requests as data), interface.md, configuration.md, themes.md, terminals.md, archives.md, tags.md, devices.md, updates.md, install.md, desktop.md, platforms.md, development.md and roadmap.md. docs/verify.md says that releases up to 0.6.0-rc.8 carry no signature. Added .github/FUNDING.yml (Ko-fi).

Added

  • Phones, cameras and sticks in the sidebar (Linux). DEVICES now lists the phones and cameras (MTP and PTP) that the desktop has opened, under their own names (from gio mount -li, or from the folder name without it), and the ones that are plugged in and not mounted: a phone or camera that gio lists, a USB stick that lsblk shows as a removable drive with a filesystem and no mount point. An entry that is not mounted says so after its name, and Enter, a click or its menu mounts it (gio mount, udisksctl mount); a phone or a stick can be ejected (gio mount -u, udisksctl unmount and power-off). A missing tool is a sentence saying what to install (install gvfs-mtp), not an error; a phone that is locked or held by another program says so. The programs run with the C locale and a time limit, in a thread of their own. Before, a phone was invisible: fuse.gvfsd-fuse and /run/user/* were both in the hidden list, and it is not a mount of its own anyway.

  • The plan says what is different on a phone or camera, before it runs: the data reaches the device when the file is closed; permissions, owner and extended attributes are not kept; links are skipped and hard links become separate files; renaming and moving are not atomic; there is no trash (a delete copies to the trash of this computer first); undo is not guaranteed; an archive cannot be written onto one. Eight new kinds of warning (DeviceWrite, DeviceAttrs, DeviceLink, DeviceHardLink, DeviceUndo, DeviceNoTrash, DeviceRename, DeviceArchive), in English and Italian, and the plan schema.

  • A stick mounted by hand somewhere unusual (/mnt/stick) is removable (it has the icon and the Eject entry): the drive is flagged removable, or sits on the USB bus, in /sys. Before, only /run/media and /media said so.

  • A test-only variable, RADA_TEST_GVFS_DIR, points the folder of the devices at a folder of a test; it exists only in test builds, like RADA_TEST_SIGNING_KEY.

  • rada debug devices (hidden): prints what the device code sees, read only: the tools found, every mount and why it is listed or left out, the entries of the virtual filesystem's folder, what gio mount -li and lsblk printed and what became of each volume and drive in it, and the final lists. A gio or lsblk that fails, times out or prints something nobody expected is written to the log and shown there, so a device is never left out in silence.

Changed

  • The sidebar's entries stand one column further in than the titles of the groups (PREFERITI, DISPOSITIVI, TAG), which are what sets the groups apart, and there is a space after the icon of every entry (it touched the name, a wide Nerd Font symbol most of all). A disk's bar follows the indent of its disk. Names are cut sooner by it (Canon E… not mounted). New setting sidebar_density = "auto" | "compact" | "comfortable": auto is compact, one line to an entry and one gap between groups, as before; comfortable adds blank lines between the entries as the height of the terminal allows (between Home and Recent and two between groups, then after every second entry, then after every entry; never fewer than a gap between groups, the list scrolling if it must) and the blank lines are not entries (no click, no arrow lands on them). The column of icons is unchanged.
  • Inside a phone or camera the path bar starts with the device's name (motorola edge 40 › Memoria interna condivisa) instead of run › user › 1000 › gvfs › mtp:host=…; the first crumb is the device and a click goes to it. The real folder stays in the details and in the properties.
  • A date of zero is shown as "—" in the list, the details, the properties and the previews, on any filesystem (a phone gives 1970-01-01 when it has no date).
  • Copying to or from a phone is written for what a phone is. The file is written under its final name (no temporary file, no rename); permissions, dates and fsync are tried and never fail the copy; the file is closed and the answer to the close is read (a plain drop threw it away); what the device kept is measured against what was sent; a move or a verified copy is read back and compared before the source is touched, and what the device half-kept is removed. Sparse files are not looked for on a FUSE filesystem. A move between two phones, or two storages of one, is a copy and not a rename.
  • Nothing is counted, tag-read or read for a preview on a phone just because the cursor is on it: folder sizes skip the devices and the folder that holds them, entries there skip the per-entry attribute read, and the preview of a file there says it is not read.
  • The test sandbox now puts do-nothing gio, lsblk and udisksctl at the front of PATH (a test never lists or mounts the real disks and phones of whoever runs it); gio is no longer one of the openers that fail a test when run.

Security

  • Updates are signed. Every release now carries SHA256SUMS.minisig, a minisign signature of SHA256SUMS, and rada update refuses a release that has none or whose signature is not valid for one of the two public keys built into the program (the main one and a reserve). The signed comment must be exactly rada <tag> of the release being installed, so an old signed release cannot be shown again as a new one. The order is: signature, then the hash of the archive, then unpacking, and only then is the new program started (--version) and, on a Mac, the quarantine flag removed; before, the program was run before any signature existed. With an invalid or missing signature nothing is downloaded or changed, and the way back stays as it was. The two public keys are in crates/core/src/update/sign.rs, the README and docs/verify.md, and a test checks that they are the same and that no placeholder is left. Source and package updates are unchanged (they trust the repository you chose and the package manager). How to check a download by hand: docs/verify.md.
  • Releases are published by hand. The release workflow creates a draft with the binaries and SHA256SUMS and publishes nothing; scripts/sign-release.sh <tag> downloads the draft, checks the hashes again, signs with the offline key (the passphrase is asked by rsign) and publishes. The workflow runs only for tags v<digit>…, has a read-only token except in the job that makes the draft, and every action is pinned to a commit hash. The flow is in docs/release.md.
  • rustls 0.23.46 (RUSTSEC-2026-0346, -0347, -0348, -0349).
  • The state folder is private. ~/.local/state/rada (and the journal, the interface state, the update state, the logs) is 0700 and its files 0600 on Unix; an existing install is corrected at start. Before, the folder was 755 and the journal readable by other users of the machine when the home folder allowed it.
  • A .7z that asks for more than 1 GiB of memory for one block (a dictionary of gigabytes) is refused before it is unpacked, as an .xz already was.
  • Extracting an archive keeps the links of the archive in view whatever the case where the destination ignores case (macOS, Windows): a file under foo/ is not written through a link called Foo.
  • Extracted files are written to the disk before they get their name (fsync of the file, then of the folder when the run ends), so a power cut cannot leave a name on an empty file with a journal that says "done".
  • An empty entry in PATH (/usr/bin::/bin) is no longer the current folder when rada looks for a program (7z, unrar, xdg-open, the terminal, pdftoppm…): one function, platform::which, replaces seven copies.
  • An SVG over 20 MB is not drawn (it was read whole, with no limit).
  • Removing a tree uses remove_dir_all, which cannot be sent through a link swapped in while it walks (it is used by the trash across volumes and by putting back).

Under the hood

  • One write_atomic (a temporary name of its own, fsync, rename, fsync of the folder) for the four state files that had a copy each.
  • The crates of the workspace depend on each other by path through [workspace.dependencies] (no version to keep up to date), and are marked publish = false.
  • CI: a job cargo audit and cargo deny (deny.toml: permissive licences, advisories as errors, duplicates as warnings, crates.io only); the token is read-only; the actions are pinned to commit hashes; --locked for the build and the tests.

Fixed

  • A flaky test (spotlight_is_asked_for_the_tag_by_the_name_the_finder_stores, one failure in 360): starting a program that was written a moment before could fail with "Text file busy" when another test forked at that instant, and ...
Read more

rada 0.6.0-rc.8

rada 0.6.0-rc.8 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Oct 19:49

Carta on a less warm paper, the names of the Finder on macOS, a "Recent" entry in the sidebar, and an option to leave the terminal's background alone. Still a pre-release.

Added

  • Recent in the sidebar, right under Home: a read-only list of the files used lately, the last used first (at most 200), with a Last used column instead of Modified. Enter opens the file; Show in folder (Alt+F, and the menu of the right button, also in the list of a tag) opens its folder with the cursor on it. Where the list comes from: macOS, Spotlight (mdfind, the last-used date of the last 30 days, asked on a worker with a timeout); Linux, recently-used.xbel in the data folder, only files that still exist; Windows, the user's Recent folder, whose shortcuts (.lnk) are read for the file they point at (the format is read directly, without the shell). If the source is missing or fails, the entry is not there and nothing is said. Hidden folders and the Mac's Library are left out.
  • transparent_background = true in the configuration: the default dark theme leaves the terminal's own background instead of painting its night blue, as catppuccin and tokyo-night do. Off by default; the other themes ignore it.
  • A demo scene recenti and the tapes recenti and recenti-carta; the demo home has a recently-used.xbel.

Changed

  • Carta is less warm: the background is #ebe4d5 (it was #ecdfc6), fields and buttons #e1d9c8, keys #d9d0bc, lines #cbbfa6, text #3a3229 (dim text #5d5446), the selected row #ddd6c7, taken from the reference picture; the contrast tests still pass (the text was darkened, not the background lightened). The whole interface is still one background.
  • macOS: the folders of the Finder have the Finder's names, in the language of the interface. With the interface in Italian, Desktop is shown as Scrivania, Documents as Documenti, Downloads as Download, Pictures as Immagini, Music as Musica, Movies as Filmati, Public as Pubblica, Applications as Applicazioni and Library as Libreria, in the sidebar, the list, the bar of the path and the tabs. The names come from the system's own table (SystemFolderLocalizations/<lang>.lproj/SystemFolderLocalizations.strings, binary, XML or text), with a short fixed table for Italian as a reserve; only folders in the home folder (or /Applications and /Library) that carry the .localized marker are renamed, as in the Finder. Only the shown name changes: the path, the search, copy, move, rename and the command line use the real name (the filter finds a folder by either). In English the names stay as they are, whatever the Finder's own language is. Linux and Windows are unchanged (on Windows the sidebar and the bar of the path already show Explorer's names; the tab keeps the name on disk for now).