<feed xmlns='http://www.w3.org/2005/Atom'>
<title>meshbay.git/packages/meshbay-hub/tests/test_photo_sync_ui.py, branch 0.20</title>
<subtitle>MeshBay — read-only public mirror</subtitle>
<id>https://git.meshbay.org/meshbay.git/atom?h=0.20</id>
<link rel='self' href='https://git.meshbay.org/meshbay.git/atom?h=0.20'/>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/'/>
<updated>2026-10-15T13:09:58Z</updated>
<entry>
<title>feat(android): no text messages backup, and one build again</title>
<updated>2026-10-15T13:09:58Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-15T13:09:58Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=39cac2878de059992cb09a1ccf09b6bcece99fae'/>
<id>urn:sha1:39cac2878de059992cb09a1ccf09b6bcece99fae</id>
<content type='text'>
READ_SMS sits behind restricted settings outside a store and Play
keeps it for the default SMS application: not worth a second build.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(android): back up WhatsApp's own chat backups, and its media if asked</title>
<updated>2026-10-10T14:29:20Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-10T14:29:20Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=7957fa686eb6e8cf57bcb62ff4e6d2785693030b'/>
<id>urn:sha1:7957fa686eb6e8cf57bcb62ff4e6d2785693030b</id>
<content type='text'>
A WhatsApp section takes WhatsApp's folder through the picker, sends its
encrypted Databases and Backups (not the dated copies of earlier weeks) into
&lt;folder&gt;/&lt;account&gt;-whatsapp, and names the restore set in the manifest.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(android): back up the files of folders the person chooses</title>
<updated>2026-10-10T13:50:39Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-10T13:50:39Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=1c97ffb91bb4928022e995709d7e55b19cfd18eb'/>
<id>urn:sha1:1c97ffb91bb4928022e995709d7e55b19cfd18eb</id>
<content type='text'>
A Files section takes folders through the system picker (no storage
permission), refuses DCIM, Pictures and Movies, skips what the photo backup
sends, and runs on the photo backup's own runner into &lt;folder&gt;/&lt;account&gt;-drive.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(android): back the videos of the chosen albums up beside the photos</title>
<updated>2026-10-10T13:11:52Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-10T13:11:52Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=1fd7bbcd038cddf40540bae7083b9adf4c728912'/>
<id>urn:sha1:1fd7bbcd038cddf40540bae7083b9adf4c728912</id>
<content type='text'>
A 'Videos too' option, off by default, sends them into the same YYYY/YYYY-MM
folders. Files are read from the phone a ranged chunk at a time, so a large
video is never whole in the page.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(android): back the calendars up as an iCalendar file</title>
<updated>2026-10-10T12:52:57Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-10T12:52:57Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=3bad2b50187f55463588a2d4e74fa9df4beb35b8'/>
<id>urn:sha1:3bad2b50187f55463588a2d4e74fa9df4beb35b8</id>
<content type='text'>
A Calendar section sends every calendar the person can edit, as a dated .ics,
into &lt;folder&gt;/&lt;account&gt;-calendar once a day when it changed.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(android): back text messages up, in a build Play does not get</title>
<updated>2026-10-10T12:40:05Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-10T12:40:05Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=aed32f20625a6206628b577d743d96552f81e91a'/>
<id>urn:sha1:aed32f20625a6206628b577d743d96552f81e91a</id>
<content type='text'>
A Messages section sends the SMS added since the last copy, as restorable
&lt;smses&gt; XML, into &lt;folder&gt;/&lt;account&gt;-messages/YYYY. A play flavor has neither
READ_SMS nor the code that reads messages; full is the default.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(android): one backup destination, a group the account owns alone</title>
<updated>2026-10-10T12:21:46Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-10T12:21:46Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=2f2a9a6542d2194e50ffba6f382e4fdffd481838'/>
<id>urn:sha1:2f2a9a6542d2194e50ffba6f382e4fdffd481838</id>
<content type='text'>
Chosen once at the top of Android Sync for every kind; photos and contacts
go into &lt;folder&gt;/&lt;account&gt;-photos and -contacts. Owner and sole member are
checked at set-up and before every run.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(hub): photo backup moves to its own Android Sync page</title>
<updated>2026-10-10T10:35:15Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-10T10:35:15Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=044c585f73cfd548e300859e89eaf5dcb40d3d3c'/>
<id>urn:sha1:044c585f73cfd548e300859e89eaf5dcb40d3d3c</id>
<content type='text'>
A Phone section of the side menu leads to it, on the Android application
only; Settings no longer holds it.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat: back up the phone's photos to a group, once a day on Wi-Fi</title>
<updated>2026-10-09T16:23:56Z</updated>
<author>
<name>Christophe Besson</name>
<email>cbesson@gmail.com</email>
</author>
<published>2026-10-09T16:23:52Z</published>
<link rel='alternate' type='text/html' href='https://git.meshbay.org/meshbay.git/commit/?id=25152ddb61a89ea3ea29d3aef5de13343429d32a'/>
<id>urn:sha1:25152ddb61a89ea3ea29d3aef5de13343429d32a</id>
<content type='text'>
The Android application sends the photos taken on the phone to one folder of
one group chosen by the member (docs/MESHBAY_DESIGN.md §9.12). The phone lists
MediaStore, keeps a ledger of what was sent and hands each photo's bytes to the
page by an opaque token on the packaged origin; the page decides when a run is
due and uploads through the existing path, one photo at a time under a slot.

- Once a day from the last finished run, on an unmetered network only;
  "Back up now" asks first on mobile data. Leaving Wi-Fi stops after the file
  in flight.
- Photos already on the phone are sent by default, newest first, under
  &lt;folder&gt;/YYYY/MM; edits are sent beside the original as -edited-&lt;date&gt;.
- Additive by construction: nothing is ever deleted, renamed or replaced on
  the node, and a photo deleted on the node is not sent again.
- A confirmation names the group, owner, members, folder and size when the
  destination or starting point changes; a lasting refusal (disk full, folder
  read-only or gone, no longer a member) is said once and retried a day later.
- No ACCESS_MEDIA_LOCATION, so the platform redacts photo locations.
- A dataSync foreground service keeps a run going with the screen off.

HEIC/HEIF photos are sent but not shown in Photos yet (§15.2).

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
