Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 15:22
· 35 commits to main since this release
149d6ab

Install as a package, for amd64 (tested on Fedora 44 and Debian stable) or arm64
(built, not yet tested):

# Fedora
sudo dnf install https://github.com/fqazzazee/shuttle/releases/download/v0.2.0/shuttle_0.2.0_linux_amd64.rpm
# Debian, Ubuntu
curl -LO https://github.com/fqazzazee/shuttle/releases/download/v0.2.0/shuttle_0.2.0_linux_amd64.deb
sudo apt install ./shuttle_0.2.0_linux_amd64.deb

Then enable the service and, on GNOME 50, the extension: see the
README.

On Android 11 or later (arm64): download shuttle_0.2.0_android_arm64.apk on the
phone and open it. It installs over an earlier release, keeping its setup; see the
README.

checksums.txt has every file's SHA-256.

shuttle is source-available under PolyForm Noncommercial 1.0.0 or PolyForm Internal Use
1.0.0; its GNOME extension is GPL-2.0-or-later. See
LICENSE.

Changelog

Features

  • feat(android): About links to the license; the notices on a page of their own (#183)
  • feat(android): About links to the source, the releases and Buy me a coffee, and checks this copy (#178)
  • feat(android): Help: how to use the app, as questions (#179)
  • feat(android): a new folder on the share, from the wizard (#166)
  • feat(android): a shuttle's settings, every row, set and reset (#145)
  • feat(android): add a share and a shuttle on the phone (#140)
  • feat(android): an App tab for Help, Backup, About and the app's colours (#182)
  • feat(android): ask for the three permissions, and wait without them (#130)
  • feat(android): back up and restore the app's setup (#180)
  • feat(android): edit a shuttle in the wizard (#164)
  • feat(android): enable, disable and delete a shuttle (#165)
  • feat(android): examples under the share editor's fields (#174)
  • feat(android): held deletions in the Conflicts tab, and Allow them (#147)
  • feat(android): keep share passwords under an Android Keystore key (#131)
  • feat(android): notifications in a channel per kind, worded as the desktop's (#139)
  • feat(android): one daemon per process, and a service for real time (#132)
  • feat(android): run scheduled and share-available shuttles with WorkManager (#133)
  • feat(android): say so when the app was force-stopped, and sync again (#134)
  • feat(android): shrink the release APK, 35 MB to 13 (#169)
  • feat(android): shuttle's palette, and a switch for the wallpaper's colours (#177)
  • feat(android): the Activity tab, by shuttle and problems only (#148)
  • feat(android): the Conflicts tab: keep the phone's, the share's, or both (#146)
  • feat(android): the Profiles tab: each profile and who uses it (#153)
  • feat(android): the Shares tab: each share, its users, its state, its room (#150)
  • feat(android): the TUI's logo, the bus and the wordmark, atop the Shuttles tab and About (#181)
  • feat(android): the TUI's tabs, and a notice's tap opens its tab (#142)
  • feat(android): the app's skeleton, built on the Go core in CI (#129)
  • feat(android): the launcher icon, the bus in shuttle's colours on ink (#175)
  • feat(android): the profile editor: new, its settings, duplicate, delete (#155)
  • feat(android): the selected shuttle in full, as the TUI's panel (#144)
  • feat(android): the share editor: add, edit, test, password, delete (#152)
  • feat(android): the shuttle list, with Sync now, pause and pause all (#136)
  • feat(android): the wizard replaces the minimal form; the flow test runs through it (#167)
  • feat(android): the wizard's first step: the share, and its folder, browsed (#157)
  • feat(android): the wizard's last steps: name, profile, settings, saved (#163)
  • feat(android): the wizard's second step: what to sync of the folder, marked (#159)
  • feat(android): the wizard's third step: the folder on the phone, browsed or made (#162)
  • feat(android): third-party notices in the APK, and an About screen (#170)
  • feat(config): a profile's settings as rows, set one at a time (#154)
  • feat(config): a shuttle as its editor has it before it is saved (#160)
  • feat(daemon): name this side in conflict copies by a given device name (#126)
  • feat(daemon): read and set a shuttle's settings over D-Bus (#118)
  • feat(daemon): shuttles pause on a metered connection, by default (#114)
  • feat(engine): a local side that ignores case, as the phone's storage does (#124)
  • feat(engine): leave out names the other side cannot hold, never delete them (#125)
  • feat(extension): a preferences window for each shuttle's settings (#119)
  • feat(extension): the dropdown says when a metered connection holds a shuttle (#116)
  • feat(fsys): a local folder says whether it folds case and which names it refuses (#123)
  • feat(mobile): the Android app's binding to the daemon (#127)
  • feat(release): pin the release key's certificate (#172)
  • feat(release): the signed arm64 APK in each release (#168)
  • feat(tui): a Metered row in the settings of profiles and shuttles (#115)

Bug fixes

  • fix(android): follow config reloads: the service, the jobs, removed shuttles (#135)
  • fix(android): no freeze when the app opens while it is updated (#176)
  • fix(core): name this side as the phone or the computer it runs on (#161)
  • fix(daemon): no share notices from shuttles waiting for a permission (#138)
  • fix(fsys): read a share 1 MB at a time, not 32 KB (#121)
  • fix(release): read the APK's certificate as newer build tools print it (#173)

Other changes

  • refactor(config): the settings form's rows, shared by every editor (#117)
  • refactor(notice): word the daemon's events in a portable package (#137)
  • refactor(pick): what a shuttle syncs of its folder, marked for the TUI and the phone (#158)
  • refactor(present): say where a share is, for the TUI and the phone (#149)
  • refactor(present): the shuttle panel's words, for the TUI and the phone (#143)
  • refactor(secrets): keep the Secret Service apart from the Store (#122)
  • refactor(shares): keep a share's password in one place, for the TUI and the phone (#151)
  • refactor(shares): list a share's folder as the wizard shows it, for the TUI and the phone (#156)