briar issueshttps://code.briarproject.org/groups/briar/-/issues2022-08-17T10:10:55Zhttps://code.briarproject.org/briar/briar/-/issues/1808Download data from mailbox2022-08-17T10:10:55ZakwizgranDownload data from mailboxWrite backend code to download a file from the user's own mailbox or a contact's mailbox into a temporary directory, try to read a simplex stream from the local file, and delete the file from the mailbox and the temporary directory.
Dep...Write backend code to download a file from the user's own mailbox or a contact's mailbox into a temporary directory, try to read a simplex stream from the local file, and delete the file from the mailbox and the temporary directory.
Depends on #1804.Mailbox2022-10-31https://code.briarproject.org/briar/briar/-/issues/1807Upload data to mailbox2022-08-17T10:10:33ZakwizgranUpload data to mailboxWrite backend code to create a temporary file, write a simplex stream to the file, and upload the file to the user's own mailbox or a contact's mailbox.
Depends on #1804.Write backend code to create a temporary file, write a simplex stream to the file, and upload the file to the user's own mailbox or a contact's mailbox.
Depends on #1804.Mailbox2022-10-31https://code.briarproject.org/briar/briar/-/issues/1806Manage mailbox connections2021-11-25T13:06:21ZakwizgranManage mailbox connectionsWrite backend code to manage connections to the user's own mailbox and contacts' mailboxes. These connections are at a different layer from those managed by the existing ConnectionManager so they probably need their own manager.Write backend code to manage connections to the user's own mailbox and contacts' mailboxes. These connections are at a different layer from those managed by the existing ConnectionManager so they probably need their own manager.Mailbox: Manage mailbox connections2022-10-31https://code.briarproject.org/briar/briar/-/issues/1805Briar pairing with mailbox2021-11-25T13:27:06ZakwizgranBriar pairing with mailboxDesign and implement UI and backend for pairing with a mailbox.
Depends on #1804.Design and implement UI and backend for pairing with a mailbox.
Depends on #1804.Mailbox: Pairing2022-10-31https://code.briarproject.org/briar/briar/-/issues/1319Add backpressure to simplex outgoing sync sessions2022-05-26T12:52:47ZakwizgranAdd backpressure to simplex outgoing sync sessionsSimplexOutgoingSession reads acks and messages from the database as quickly as possible and queues them for transmission. If the DB is faster than the transport, this will result in all sendable acks and messages being queued. This uses ...SimplexOutgoingSession reads acks and messages from the database as quickly as possible and queues them for transmission. If the DB is faster than the transport, this will result in all sendable acks and messages being queued. This uses an unbounded amount of memory and increases the risk of acks or messages being lost before they're transmitted, leading to unnecessary retransmissions.
Add a backpressure mechanism that limits the amount of queued data and delays DB reads when the queue is full.Mailbox: Manage mailbox connectionsakwizgranakwizgran2022-10-31https://code.briarproject.org/briar/briar/-/issues/1011Offline message delivery (mailbox)2023-06-19T14:01:29ZakwizgranOffline message delivery (mailbox)Two testers asked for the ability for messages to be delivered while the recipient is offline. "Some of my global contacts are rarely online with me."Two testers asked for the ability for messages to be delivered while the recipient is offline. "Some of my global contacts are rarely online with me."Mailbox2022-10-31https://code.briarproject.org/briar/briar-desktop/-/issues/281Plan 0.1.1 release with Localization Lab2022-02-04T14:58:26ZNicoPlan 0.1.1 release with Localization LabIf we do [0.1.1](https://code.briarproject.org/groups/briar/-/milestones/28) on Feb 22th, we may not push any new strings after Feb 15th. Earlier than this is even better. One approach is to already include texts in `main` while the feat...If we do [0.1.1](https://code.briarproject.org/groups/briar/-/milestones/28) on Feb 22th, we may not push any new strings after Feb 15th. Earlier than this is even better. One approach is to already include texts in `main` while the feature is still pending as a MR.
Also write Localization Lab with information about this release.Desktop 0.2.0NicoNico2022-02-07https://code.briarproject.org/briar/briar/-/issues/2251Show a warning on Android 4 that Briar will expire2022-01-18T15:03:58ZakwizgranShow a warning on Android 4 that Briar will expireShow a snackbar on Android 4, similar to the existing expiry snackbar for debug builds, warning the user that the app will expire on a certain date and they will need to upgrade to a newer device and create a new account.
If the explana...Show a snackbar on Android 4, similar to the existing expiry snackbar for debug builds, warning the user that the app will expire on a certain date and they will need to upgrade to a newer device and create a new account.
If the explanation is too long for a snackbar we may need to break it out into a separate onboarding dialog that's opened by tapping the snackbar.
The snackbar should be shown starting from a hardcoded activation date ~ 6 months after this ticket's released. The expiry date should be ~ 12 months after this ticket's released.
Subtask of #2221.MailboxDaniel LublinDaniel Lublin2022-01-17https://code.briarproject.org/briar/briar/-/issues/2250Refuse to start app on Android 4 beyond expiry date2022-01-18T15:03:45ZakwizgranRefuse to start app on Android 4 beyond expiry dateWhen the expiry date for Android 4 has been reached the app should refuse to start. This can use a similar mechanism to the existing ExpiredActivity for debug builds.
We might want to provide a button that deletes the user's account, if...When the expiry date for Android 4 has been reached the app should refuse to start. This can use a similar mechanism to the existing ExpiredActivity for debug builds.
We might want to provide a button that deletes the user's account, if that's easy to achieve, or just let the user know that their account will be deleted when they uninstall the app.
Subtask of #2221.MailboxDaniel LublinDaniel Lublin2022-01-17https://code.briarproject.org/briar/briar/-/issues/2243Tests for OkHttp client calls2022-02-25T14:58:20ZakwizgranTests for OkHttp client callsCreate a basic unit or integration test for testing an OkHttp client call against a fake API endpoint provided by the test.
This will be the basis for testing methods that wrap OkHttp calls (eg #2183).Create a basic unit or integration test for testing an OkHttp client call against a fake API endpoint provided by the test.
This will be the basis for testing methods that wrap OkHttp calls (eg #2183).MailboxTorsten GroteTorsten Grote2022-01-17https://code.briarproject.org/briar/briar/-/issues/2187Method for deleting a contact from own mailbox2022-05-16T14:52:40ZakwizgranMethod for deleting a contact from own mailboxDepends on briar-mailbox#3, briar-mailbox#58.Depends on briar-mailbox#3, briar-mailbox#58.Mailbox: Contact management APITorsten GroteTorsten Grote2022-01-17https://code.briarproject.org/briar/briar/-/issues/2183Method for adding a contact to own mailbox2022-05-16T14:52:40ZakwizgranMethod for adding a contact to own mailboxDepends on briar-mailbox#3, briar-mailbox#57.Depends on briar-mailbox#3, briar-mailbox#57.Mailbox: Contact management APITorsten GroteTorsten Grote2022-01-17https://code.briarproject.org/briar/briar/-/issues/2182Method for retrieving contact list from own mailbox2022-05-16T14:52:40ZakwizgranMethod for retrieving contact list from own mailboxDepends on briar-mailbox#3, briar-mailbox#56.Depends on briar-mailbox#3, briar-mailbox#56.Mailbox: Contact management APITorsten GroteTorsten Grote2022-01-17https://code.briarproject.org/briar/briar-desktop/-/issues/201Write another short Transifex announcement2022-01-17T22:05:42ZNicoWrite another short Transifex announcement* beta release on January 21st with almost full private chat experience
* people can test translations with nightly builds (https://code.briarproject.org/briar/briar-desktop/-/merge_requests/96)
* we'll make sure to update translations o...* beta release on January 21st with almost full private chat experience
* people can test translations with nightly builds (https://code.briarproject.org/briar/briar-desktop/-/merge_requests/96)
* we'll make sure to update translations on a (daily?) basis till that date
Depending on whether @sebkur and @ialokim want to have a chat with Muna vom LocLab this week, we should wait for this or publish it without having talked to her before.Desktop 0.1.0NicoNico2022-01-15https://code.briarproject.org/briar/briar/-/issues/2242Migrate OkHttp to bramble-core2022-02-25T14:59:07ZakwizgranMigrate OkHttp to bramble-coreMailboxTorsten GroteTorsten Grote2022-01-03https://code.briarproject.org/briar/briar-mailbox/-/issues/77Lifecycle cleanup2022-02-25T14:55:01ZSebastianLifecycle cleanupalso address wakelock handlingalso address wakelock handlingSebastianSebastian2022-01-03https://code.briarproject.org/briar/briar-mailbox/-/issues/76Wiping the mailbox can cause deadlock2022-03-30T12:50:04ZTorsten GroteWiping the mailbox can cause deadlockIt seems that there is the possibility for a deadlock when a database write is performed while the mailbox starts wiping.
Example:
```kotlin
class DeadlockTest : IntegrationTest() {
@Test
fun test() {
Thread {
...It seems that there is the possibility for a deadlock when a database write is performed while the mailbox starts wiping.
Example:
```kotlin
class DeadlockTest : IntegrationTest() {
@Test
fun test() {
Thread {
db.dropAllTablesAndClose()
}.start()
Thread {
addOwnerToken()
}.start()
}
}
```Mailbox: Manage app lifecycleSebastianSebastian2022-01-03https://code.briarproject.org/briar/briar/-/issues/2226Error handling for mailbox uploads2022-04-19T16:11:45ZakwizgranError handling for mailbox uploadsWhen communicating via mailboxes, the max latency and thus the retransmission interval are long, so we need to be careful about any circumstances that could cause messages to be lost.
On the sender side, if an error (such as an IO error...When communicating via mailboxes, the max latency and thus the retransmission interval are long, so we need to be careful about any circumstances that could cause messages to be lost.
On the sender side, if an error (such as an IO error, app shutdown, app crash or device crash) occurs while we're writing messages and acks to a file, we need to ensure that those messages and acks can be sent again after recovering from the error.
We can do this by generating a unique ID for the sync session and recording the IDs of any messages sent or acked in that session. This state can be deleted when the session completes successfully. At the next startup, if we find this session state in the DB we know that the session didn't complete successfully, so we mark the messages and acks as unsent.
We also need to handle errors that occur after the file has been created but before it's been uploaded. We can do this by storing the contact ID and filename in the DB before starting the session and removing them when the upload completes successfully (#2230). Next time we come online, if we find any upload state in the DB we know that the corresponding uploads didn't complete successfully, so we queue the files for upload. We should use the DB for this, rather storing the files in a separate upload directory per contact, to avoid leaking metadata to the filesystem about which uploads are destined for which contacts.
We should store the contact ID and filename before starting the sync session, so that there's no gap where the DB doesn't contain a record of the incomplete session/upload. If a crash happens during the session we may end up marking the messages and acks in the session as unsent as well as queueing the (possibly incomplete) file for upload. This is acceptable - the receiver should be able to handle the (possibly incomplete) file and another file containing the same messages and acks. Similarly, if the upload completes successfully but a crash happens before we remove the contact ID and filename from the DB, it's acceptable to upload the file again at the next startup, as the receiver should be able to handle the duplicate file.
It's still possible for the file to be lost after a successful upload, but losses beyond that point are handled by different mechanisms (#2191, #2192, #2225).
Depends on #2230.Mailbox: Manage mailbox connectionsakwizgranakwizgran2022-01-03https://code.briarproject.org/briar/briar-desktop/-/issues/139Write Transifex announcement about Briar Desktop2021-12-22T15:56:16ZNicoWrite Transifex announcement about Briar DesktopDesktop 0.1.0NicoNico2021-12-22https://code.briarproject.org/briar/briar-mailbox/-/issues/73Make sure to run `wipeMailbox()` wakefully during `onWipeRequest()`2022-02-25T14:52:00ZSebastianMake sure to run `wipeMailbox()` wakefully during `onWipeRequest()`SebastianSebastian2021-12-13