Releases of Magic Folder

Versions follow the year and month of their release, with a minor number increasing for each release that month.

See also the Magic-Folder Release Process for further explanation.

Magic_Folder 24.3.0 (2024-03-07)

Bug Fixes

  • The new “read-only” option for join introduced in 24.1.0 unintentionally became required; fix this behavior, and document the feature. (#748)

Magic_Folder 24.1.0 (2024-01-31)

Features

  • The status API now exposes events related to invites (#708)

  • Invited devices may decline “write” authority by excluding a Personal capability in their reply (#734)

  • Added the ability to accept invites that are read-only. (#735)

Bug Fixes

  • Do not continuously download updates for conflicted files (#731)

  • Stop using deprecated attr.validators.provides (#739)

  • Properly parse Welcome JSON from tahoe-lafs after 0.18.0 (#743)

Removed Features

  • Python 3.8 is no longer supported (#745)

Misc/Other

Magic_Folder 23.6.0 (2023-06-26)

No significant changes.

Magic_Folder 23.6.0 (2023-06-26)

Features

  • Added a description of the datamodel to the documentation (#702)

  • Conflict files now named after the Participant (not Author) (#711)

Bug Fixes

  • “magic-folder status” properly parses scan/poll events (#717)

  • Handle updates to conflicted files more robustly (#719)

Other Changes

  • Bump dependencies, including security-relevant cryptography library (#716)

Magic_Folder 23.5.0 (2023-05-02)

Backwards Incompatible Changes

  • The /status endpoint now produces event-based output

    This means the messages emitted via the WebSocket are entirely different. Please see the documentation under “Status API” for the new method. Ordinarily, this would mean a new version of the API (e.g. /v2/) but we do not yet declare a stable /v1 API so it has simply changed.

    Please get in touch if this causes you problems. (#686)

Bug Fixes

  • Old or redundant updates from other participants are correctly ignored (#703)

  • If a client saw multiple other Participants with the same update a Conflict was produced (#713)

Magic_Folder 23.3.1 (2023-03-20)

Features

  • Various consistency, formatting and content updates to documentation (#699)

  • Add some missing magic-folder-api subcommands: list-conflicts, file-status, (#700)

Bug Fixes

  • An incoming delete is correctly ignored if there’s no local file to delete (#704)

  • Cancelling an invite no longer reports an error via the status API (#706)

Magic_Folder 23.3.0 (2023-03-06)

Features

  • Add ability to cancel an in-progress invite (#692)

Bug Fixes

  • Our Personal DMD is now checked vs local database state

    It’s possible with a crash or exit at the right time to have downloaded an update and noted that in the database but not yet succeeded in updating the Personal DMD. We now check at startup for this condition and fix it. (#668)

Misc/Other

Magic_Folder 23.1.1 (2023-01-30)

Features

  • Support for “inviting” another participant to a folder (experimental).

    There is now a specification and implementation for “inviting” another participant who may “join” a given folder. The two computers communicate via the “magic-wormhole” protocol, allowing for secure communication setup with a short, human-pronouncable short password. (#232)

  • Allow for experimental features (#680)

Misc/Other

Magic_Folder 22.10.1 (2022-10-03)

Misc/Other

Magic_Folder 22.10.0 (2022-10-01)

Features

  • pidfile access is locked with “filelock” library (#670)

Magic_Folder 22.9.0 (2022-09-14)

Features

  • Automatically exit when stdin is closed

    This facilitates subprocess management, specifically cleanup. When a parent process is running magic-folder and exits without time to do “proper” cleanup at least the stdin descriptor will be closed. magic-folder notices this and exits. (#665)

Misc/Other

Magic_Folder 22.8.0 (2022-08-04)

No significant changes.

Magic_Folder 22.8.0 (2022-08-04)

Bug Fixes

  • Stashed file-paths are unique even with same capability (#662)

Magic_Folder 22.5.0 (2022-05-13)

Features

  • A pid-file is now written

    If a previous instance is running _and_ appears to be an actual magic-folder process, it is killed. Otherwise, magic-folder will refuse to start. (#644)

Misc/Other

Magic_Folder 22.5.0 (2022-05-13)

Features

  • A pid-file is now written

    If a previous instance is running _and_ appears to be an actual magic-folder process, it is killed. Otherwise, magic-folder will refuse to start. (#644)

Misc/Other

Magic_Folder 22.2.1 (2022-02-23)

Features

  • The status API now shows last-scan and last-poll timestamps (#646)

Misc/Other

Magic_Folder 22.2.0 (2022-02-14)

Features

  • Check “connected enough” constantly, not just at startup.

    Further, refuse to do “mutable” operations if our Tahoe-LAFS client is not connected to a “happy” number of servers. (#543)

Bug Fixes

  • Use Cooperator to copy (potentially large) files (#196)

  • Further avoid overwriting local changes (#454)

  • “magic-folder status” gives better error when service not running (#616)

  • Update several dependencies (#636)

Misc/Other

Magic_Folder 22.1.0 (2022-01-28)

Backwards Incompatible Changes

  • –web-port is now a required option with no default (#81)

Features

  • magic-folder exits with error if it can’t listen (#67)

  • Deleting a file uploads a deletion snapshot (#105)

  • Integration tests are run against multiple Tahoe versions (#120)

  • Automated scanning for local changes (#138)

  • Create LocalSnapshot instances. LocalSnapshots are an intermediate snapshot representation that is used to maintain history even when the user modifies files while offline. (#139)

  • LocalSnapshots are persisted into the disk to preserve history even if the computer is offline. During startup, magic-folder would look for these persisted LocalSnapshots and try to commit them into the grid. (#140)

  • Magic-Folder now exposes a bearer-token-authorized HTTP API hierarchy beneath /v1. (#198)

  • Magic-Folder now exposes an HTTP API endpoint, /v1/magic-folder, which can be used to list the managed Magic Folders. (#205)

  • Magic-Folder now exposes an HTTP API for creating a new local snapshot of a file. (#266)

  • Add a “magic-folder-api add-snapshot” command (#309)

  • The development process is documented. (#322)

  • Add a “magic-folder-api dump-state” command (#325)

  • There is now an HTTP API to add and list new participants, along with corresponding magic-folder-api subcommands (#327)

  • Add real-time WebSocket status update endpoint (#335)

  • Export api_client_endpoint to config dir (#339)

  • Add ‘magic-folder-api monitor’ command (#351)

  • Add a @metadata’ entry to Collective and Personal DMDs (#420)

  • More status information emitted. (#440)

  • Report errors via /status API (#481)

  • Include “last-updated” time in file-status endpoint (#501)

  • If the HTTP API listens on port 0, the actual port is reported (#516)

  • API to return tahoe object-sizes (#524)

  • A spec for conflicts APIs exists (#537)

  • Add an explicit ‘conflicts’ API (#538)

  • Add a magic-folder status command (#557)

  • test against Tahoe 1.16.x (#564)

  • Added a …/poll-remote endpoint (and rename /scan to /scan-local) (#572)

  • Output “cuvner report” after unit-tests (#620)

Bug Fixes

  • The “treq” library is now required (#139)

  • Sub-commands no longer accept the –basedir option; use –node-directory instead (#145)

  • Internal functions sign_snapshot() and write_snapshot_to_tahoe() support upload of LocalSnapshot instances (#191)

  • When told to the daemon will queue and create local snapshots (#192)

  • (#202, #407)

  • Added a client endpoint-string to “magic-folder init” and “migrate” (#251)

  • Internally, all paths are now text (not bytes) (#281)

  • Ensure capabilities cannot leak accidentally in logs (#559)

  • Correctly return tahoe-object sizes for delete items (#606)

Dependency/Installation Changes

  • magic-folder supports CentOS 8 (and no longer supports CentOS 7) (#76)

  • magic-folder is now compatible with python-cryptography 3.0. (#208)

  • magic-folder now has a Python library dependency on Tahoe-LAFS 1.17.0. (#597)

Removed Features

  • The HTTP status API at /api has been removed in anticipation of the introduction of a new, better interface. (#214)

  • Support for directly synchronizing magic folders stored using the old on-grid schema has been removed. (#227)

Other Changes

  • hot-fix from Tahoe-LAFS repo to do Tahoe-LAFS web api testing (#142)

  • Documentation updates. (#155)

  • The project now includes basic developer/contributor documentation. (#164)

  • The Magic-Folder project has adopted a code of conduct. (#171)

  • There is a new database-based configuration design and “magic-folder init” command to use it (#189)

  • Tahoe-LAFS 1.15.1 is now required. (#303)

  • (#305, #311, #314, #315)

  • Switch to using klein for managing the magic-folder api. (#362)

  • Improve handling of serialized eliot messages in tests, and upload eliot logs to circleci. (#366)

  • Document /conflicts API and aspects of /status API (#574)

Misc/Other