.. -- coding: utf-8-with-signature --
- The new "read-only" option for join introduced in 24.1.0 unintentionally became required; fix this behavior, and document the feature. (#748)
- 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)
- 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)
- Python 3.8 is no longer supported (#745)
No significant changes.
- Added a description of the datamodel to the documentation (#702)
- Conflict files now named after the Participant (not Author) (#711)
- "magic-folder status" properly parses scan/poll events (#717)
- Handle updates to conflicted files more robustly (#719)
- Bump dependencies, including security-relevant cryptography library (#716)
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)
- 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)
- Various consistency, formatting and content updates to documentation (#699)
- Add some missing magic-folder-api subcommands: list-conflicts, file-status, (#700)
- 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)
- Add ability to cancel an in-progress invite (#692)
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)
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)
- pidfile access is locked with "filelock" library (#670)
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)
No significant changes.
- Stashed file-paths are unique even with same capability (#662)
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)
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)
- The status API now shows last-scan and last-poll timestamps (#646)
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)
- 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)
- --web-port is now a required option with no default (#81)
- 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)
- 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)
- 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)
- 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)
- 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)
- #1
- #4
- #5
- #6
- #7
- #9
- #11
- #12
- #16
- #20
- #24
- #26
- #28
- #30
- #33
- #34
- #39
- #41
- #43
- #45
- #47
- #51
- #52
- #54
- #56
- #58
- #62
- #66
- #79
- #86
- #88
- #89
- #107
- #114
- #118
- #121
- #136
- #152
- #162
- #165
- #167
- #176
- #177
- #180
- #181
- #182
- #184
- #193
- #197
- #203
- #207
- #210
- #211
- #218
- #222
- #226
- #229
- #235
- #245
- #246
- #253
- #256
- #258
- #260
- #261
- #265
- #267
- #272
- #274
- #285
- #287
- #293
- #295
- #297
- #301
- #318
- #319
- #320
- #333
- #336
- #337
- #338
- #344
- #346
- #348
- #349
- #350
- #351
- #353
- #354
- #359
- #361
- #367
- #369
- #371
- #373
- #376
- #377
- #378
- #381
- #382
- #384
- #390
- #391
- #392
- #399
- #400
- #410
- #411
- #412
- #416
- #429
- #430
- #438
- #449
- #450
- #455
- #457
- #459
- #460
- #461
- #462
- #473
- #476
- #480
- #482
- #486
- #491
- #493
- #496
- #499
- #503
- #508
- #513
- #514
- #515
- #517
- #519
- #523
- #526
- #532
- #535
- #541
- #552
- #555
- #570
- #576
- #578
- #579
- #584
- #587
- #589
- #594
- #599
- #600
- #605
- #608
- #612