briar issueshttps://code.briarproject.org/groups/briar/-/issues2023-07-13T11:37:51Zhttps://code.briarproject.org/briar/briar-desktop/-/issues/537Consistently import Alignment.*2023-07-13T11:37:51ZSebastianConsistently import Alignment.*https://code.briarproject.org/briar/briar-desktop/-/issues/536Allow navigation to individual blogs2023-08-14T14:04:01ZTorsten GroteAllow navigation to individual blogsjust one level from the feed. in the blogs don't allow further navigationjust one level from the feed. in the blogs don't allow further navigationDesktop 0.6.0Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-desktop/-/issues/535Share blogs2023-08-14T14:13:44ZTorsten GroteShare blogsDesktop 0.6.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/534Show RSS avatar when post is from RSS feed2023-08-29T13:27:10ZTorsten GroteShow RSS avatar when post is from RSS feedLike the Android app does it.Like the Android app does it.Desktop 0.6.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/533Blog post unread handling2023-08-02T19:26:53ZTorsten GroteBlog post unread handling* show when blog post is unread
* show unread bubble in sidebar
* show unread FAB to jump up to unread posts (if any)* show when blog post is unread
* show unread bubble in sidebar
* show unread FAB to jump up to unread posts (if any)Desktop 0.6.0Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-desktop/-/issues/532NoSuchGroupException when upgrading to 0.5.0-beta2023-09-05T11:00:37ZNicoNoSuchGroupException when upgrading to 0.5.0-betaI'm on Debian stable, i.e., version 12, titled `bookworm`, and have a Briar database which originated from Android in 2019.
After upgrading to 0.5.0-beta, I can't use Briar Desktop at all anymore, because it fails to "start a required c...I'm on Debian stable, i.e., version 12, titled `bookworm`, and have a Briar database which originated from Android in 2019.
After upgrading to 0.5.0-beta, I can't use Briar Desktop at all anymore, because it fails to "start a required component." I vaguely remember having had the same issue when I upgraded to the Briar Desktop version that introduced forums.
![Screenshot_from_2023-06-28_18-42-21](/uploads/eafbcb563141d68634f2540a35956c22/Screenshot_from_2023-06-28_18-42-21.png)
```
$ briar-desktop
2023-06-28 18:42:34,034 [main] INFO org.briarproject.briar.desktop.Main - This is briar-desktop version 0.5.0-beta
2023-06-28 18:42:34,036 [main] INFO org.briarproject.briar.desktop.Main - Build info:
2023-06-28 18:42:34,036 [main] INFO org.briarproject.briar.desktop.Main - Git hash 50cccb716940208c2a71257e3109d9c1cad5d53e
2023-06-28 18:42:34,036 [main] INFO org.briarproject.briar.desktop.Main - Commit time 2023-06-28 13:08:48
2023-06-28 18:42:34,037 [main] INFO org.briarproject.briar.desktop.Main - Tag 0.5.0-beta
2023-06-28 18:42:35,435 [AWT-EventQueue-0] INFO o.b.b.d.n.l.LibnotifyNotificationProvider - Notification server capabilities: actions, body, body-markup, icon-static, persistence, sound
2023-06-28 18:42:40,015 [pool-1-thread-1] WARN o.b.b.lifecycle.LifecycleManagerImpl - org.briarproject.bramble.api.lifecycle.ServiceException: org.briarproject.bramble.api.db.NoSuchGroupException
org.briarproject.bramble.api.lifecycle.ServiceException: org.briarproject.bramble.api.db.NoSuchGroupException
at org.briarproject.bramble.versioning.ClientVersioningManagerImpl.startService(ClientVersioningManagerImpl.java:149)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.java:145)
at org.briarproject.briar.desktop.login.StartupViewModel.startBriarCore(StartupViewModel.kt:111)
at org.briarproject.briar.desktop.login.LoginSubViewModel$signIn$1.invoke(LoginSubViewModel.kt:100)
at org.briarproject.briar.desktop.login.LoginSubViewModel$signIn$1.invoke(LoginSubViewModel.kt:97)
at org.briarproject.briar.desktop.threading.BriarExecutorsImpl.onIoThread$lambda$5(BriarExecutorsImpl.kt:105)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.briarproject.bramble.api.db.NoSuchGroupException: null
at org.briarproject.bramble.db.DatabaseComponentImpl.getMessageMetadata(DatabaseComponentImpl.java:695)
at org.briarproject.bramble.client.ClientHelperImpl.getMessageMetadataAsDictionary(ClientHelperImpl.java:231)
at org.briarproject.briar.privategroup.invitation.GroupInvitationManagerImpl.getPreferredVisibilities(GroupInvitationManagerImpl.java:706)
at org.briarproject.briar.privategroup.invitation.GroupInvitationManagerImpl.onPrivateGroupClientVisibilityChanging(GroupInvitationManagerImpl.java:688)
at org.briarproject.bramble.versioning.ClientVersioningManagerImpl.callVisibilityHook(ClientVersioningManagerImpl.java:502)
at org.briarproject.bramble.versioning.ClientVersioningManagerImpl.callVisibilityHooks(ClientVersioningManagerImpl.java:494)
at org.briarproject.bramble.versioning.ClientVersioningManagerImpl.clientVersionsUpdated(ClientVersioningManagerImpl.java:345)
at org.briarproject.bramble.versioning.ClientVersioningManagerImpl.lambda$startService$0(ClientVersioningManagerImpl.java:145)
at org.briarproject.bramble.db.DatabaseComponentImpl.transaction(DatabaseComponentImpl.java:200)
at org.briarproject.bramble.versioning.ClientVersioningManagerImpl.startService(ClientVersioningManagerImpl.java:142)
... 8 common frames omitted
2023-06-28 18:42:40,018 [pool-1-thread-1] WARN o.b.b.desktop.login.StartupViewModel - Startup failed: SERVICE_ERROR
```
Besides that: congratulations to the team for releasing this very important features and platforms :tada:Desktop 0.5.0https://code.briarproject.org/briar/briar-desktop/-/issues/530Release 0.5.0-beta2023-09-28T11:05:27ZSebastianRelease 0.5.0-betasee #508 as reference
### Preparation
* [x] String freeze (disable auto-pull) and announcement on Transifex at least a week before the release
* [x] Update translations (!349)
- run `tx pull -a -f`, add new languages to `Unencrypt...see #508 as reference
### Preparation
* [x] String freeze (disable auto-pull) and announcement on Transifex at least a week before the release
* [x] Update translations (!349)
- run `tx pull -a -f`, add new languages to `UnencryptedSettings.kt` (see [java locale list](https://www.oracle.com/java/technologies/javase/jdk17-suported-locales.html)), create commit
- temporarily remove `minimum_perc = 50` from `.tx/config`
- run `tx pull -a -f && git add -u && git clean -f`
- re-add `minimum_perc = 50` to `.tx/config`, append changes to last commit
* [x] Extensive testing
* [x] Update [changelog](https://code.briarproject.org/briar/briar-desktop/-/wikis/Changelog)
### Version bump
* [x] Change version in build config and metainfo.xml (!350)
* [x] Tag in Git (use `git tag -a -s <version-name>-beta -m "Briar Desktop <version-name>-beta"`) (https://code.briarproject.org/briar/briar-desktop/-/tags/0.5.0-beta) then `git push origin <tag_name>`
* [x] GitLab CI builds release files automatically (https://code.briarproject.org/briar/briar-desktop/-/pipelines/15015)
### Deployment
* [x] Copy release files to desktop.briarproject.org (using [`update-binaries.sh`](https://code.briarproject.org/briar/briar-desktop-servers/-/blob/main/root/update-binaries.sh) with updated version code (stable pipelines links were broken at this time, so using pipeline ids for Windows and Linux instead)
* [x] Download macOS zip files from CI pipeline, sign and notarize, copy to server manually
* [x] Rewrite and check that permalink points to correct version (don't forget to test and reload web server)
* [x] Update version and checksums (calculated using [`get_hashsums.sh`](https://code.briarproject.org/briar/briar-desktop-servers/-/blob/main/get_hashsums.sh) and then verified using [`verify_hashsums.sh`](https://code.briarproject.org/briar/briar-desktop-servers/-/blob/main/verify_hashsums.sh)) on website (website!117)
* [x] Publish website
### PR
* [x] Inform 3rd party maintainers about release
* [x] Publish blog post
* [x] Post on social media ([Mastodon](https://fosstodon.org/@briar/110650543490188739), [Twitter](TWITTER)), useful [character counter](https://charactercounter.com/twitter)
* [ ] ~~Update screenshot on website~~
### Backlog
* [x] Update description, milestone and due date of #337
* [x] Re-enable auto-pull on Transifex under Resources > Auto update resources > add [url](https://code.briarproject.org/briar/briar-desktop/-/raw/main/briar-desktop/src/main/resources/strings/BriarDesktop.properties)Desktop 0.5.0SebastianSebastianhttps://code.briarproject.org/briar/briar/-/issues/2434IllegalArgumentException when pairing mailbox2023-05-31T16:58:06ZakwizgranIllegalArgumentException when pairing mailbox* Android version: 11
* Phone model: Xiaomi Redmi Not 6 Pro (lineage_twolip)
* Briar version: 1.5.3 (1f1a97f)
Stacktrace:
```
java.lang.IllegalArgumentException: Invalid URL host: \"[scrubbed].onion\"
at okhttp3.HttpUrl$Builder....* Android version: 11
* Phone model: Xiaomi Redmi Not 6 Pro (lineage_twolip)
* Briar version: 1.5.3 (1f1a97f)
Stacktrace:
```
java.lang.IllegalArgumentException: Invalid URL host: \"[scrubbed].onion\"
at okhttp3.HttpUrl$Builder.parse$okhttp(HttpUrl.kt:1338)
at okhttp3.HttpUrl$Companion.get(HttpUrl.kt:1634)
at okhttp3.Request$Builder.url(Request.kt:184)
at org.briarproject.bramble.mailbox.MailboxApiImpl.setup(MailboxApiImpl.java:85)
at org.briarproject.bramble.mailbox.MailboxPairingTaskImpl.pairMailbox(MailboxPairingTaskImpl.java:140)
at org.briarproject.bramble.mailbox.MailboxPairingTaskImpl.run(MailboxPairingTaskImpl.java:125)
at org.briarproject.bramble.mailbox.MailboxManagerImpl.lambda$startPairingTask$0(MailboxManagerImpl.java:97)
at org.briarproject.bramble.mailbox.MailboxManagerImpl.$r8$lambda$OqqL4NbxBrCG5gMD-GnzDqowbVk(Unknown Source:0)
at org.briarproject.bramble.mailbox.MailboxManagerImpl$$ExternalSyntheticLambda0.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
```
I've scrubbed the hostname for privacy, but it was 56 valid-looking chars.
Last lines of log:
```
05-26 22:34:31.304 I/CameraView: Starting preview
05-26 22:34:33.480 I/MailboxViewModel: Got result from decoder
05-26 22:34:33.482 I/MailboxPairingTaskImpl: QR code is valid
05-26 22:34:33.482 I/MailboxViewModel: New pairing state: QrCodeReceived
05-26 22:34:33.484 I/CameraView: Stopping preview
```Mailbox: Releasehttps://code.briarproject.org/briar/briar-desktop/-/issues/526Messages are not received via Mailbox2023-06-20T09:23:38ZMikolai GütschowMessages are not received via MailboxI've tried the following setup:
- Briar Desktop (current main) with a temporary account
- Briar Mailbox (v1.0.5) on an Android phone
- Briar Android (v1.5.1) on the same Android phone
Steps to reproduce:
1. Connect Briar Desktop with Br...I've tried the following setup:
- Briar Desktop (current main) with a temporary account
- Briar Mailbox (v1.0.5) on an Android phone
- Briar Android (v1.5.1) on the same Android phone
Steps to reproduce:
1. Connect Briar Desktop with Briar Mailbox
2. Add Briar Android as remote contact on Briar Desktop
3. Exchange some private messages
4. Disable Internet for Briar Desktop (in system-wide settings)
5. Send messages from Briar Android to Briar Desktop
6. notice that the messages is marked with the "scheduled" icon
7. Navigate out of the chat and back in
8. notice that the messages are now marked with one "checkmark" icon (I assume this means they have been sent to *somewhere*, probably the Mailbox?)
9. Go offline in Briar Android (disable all connections in app settings)
10. Re-enable internet for Briar Desktop
11. notice that nothing happens (the messages are not received)
12. make sure Mailbox is connected with successful connection check from Briar Desktop
Also, sending messages from Briar Desktop to Briar Android (with no own mailbox connected) doesn't work, the messages stay marked as scheduled. Am I right that it should also work in that direction in theory?Desktop 0.5.0Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-desktop/-/issues/525Dissolved groups look the same in group list2023-05-31T16:05:29ZTorsten GroteDissolved groups look the same in group listOn Android dissolved groups look different in the list:
![Screenshot_20230523-105923](/uploads/516e7d30fa54a270b43070eecd3dbd5f/Screenshot_20230523-105923.png){width=40%}On Android dissolved groups look different in the list:
![Screenshot_20230523-105923](/uploads/516e7d30fa54a270b43070eecd3dbd5f/Screenshot_20230523-105923.png){width=40%}Desktop 0.5.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/524Contact can't be invited: Not supported by this contact2023-08-23T07:56:12ZTorsten GroteContact can't be invited: Not supported by this contactSteps to reproduce:
1) Add a new contact
2) exchange some messages
3) try inviting to a private group: Boom!
Normally, it can take some time for client versioning info to be exchanged which can cause this message early on, but here it ...Steps to reproduce:
1) Add a new contact
2) exchange some messages
3) try inviting to a private group: Boom!
Normally, it can take some time for client versioning info to be exchanged which can cause this message early on, but here it seems we receive the messages, but don't update the contact state:
```
2023-05-23 10:50:49,512 [pool-1-thread-22] INFO o.b.b.s.v.ValidationManagerImpl - Validating message for org.briarproject.bramble.versioning
2023-05-23 10:52:00,827 [pool-1-thread-16] INFO o.b.b.s.v.ValidationManagerImpl - Delivering message for org.briarproject.briar.privategroup
2023-05-23 10:52:00,831 [pool-1-thread-16] INFO o.b.b.s.v.ValidationManagerImpl - Delivering message for org.briarproject.briar.privategroup.invitation
```
This happens even after 10min and after we were already invited to private groups by that contact.Desktop 0.6.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/523Feature request: mark as un/read button2023-06-17T20:28:59ZAminda SuomalainenFeature request: mark as un/read buttonCurrently the only way to mark something as read is to stare for it for a moment and then scroll down and wait a moment again. This takes a long time especially when there are many unreads in a forum and feels annoying when I have alread...Currently the only way to mark something as read is to stare for it for a moment and then scroll down and wait a moment again. This takes a long time especially when there are many unreads in a forum and feels annoying when I have already read the forums on another device. Thus I would like there to be buttons to:
* [ ] mark chat as read
* [ ] mark chat as unread, in case there is something I would like to return to later and have the UI remind me of it with the unread marker.Desktop 0.5.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-mailbox/-/issues/193Handle unchecking all bridges2023-05-17T11:34:12ZTorsten GroteHandle unchecking all bridgeshttps://code.briarproject.org/briar/briar-mailbox/-/merge_requests/169#note_76780https://code.briarproject.org/briar/briar-mailbox/-/merge_requests/169#note_76780Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/onionwrapper/-/issues/10Calling start() moves state to CONNECTING2023-05-16T16:11:21ZTorsten GroteCalling start() moves state to CONNECTINGThe expected behavior is to go from `STARTING_STOPPING` to `DISABLED` it seems, which does seem a bit weird from an external library user perspective to be honest.The expected behavior is to go from `STARTING_STOPPING` to `DISABLED` it seems, which does seem a bit weird from an external library user perspective to be honest.akwizgranakwizgranhttps://code.briarproject.org/briar/onionwrapper/-/issues/9Add method for getting Country name to location utils2023-05-12T14:58:38ZTorsten GroteAdd method for getting Country name to location utils```kotlin
val currentCountry: String
get() = Locale.getAvailableLocales().find { locale ->
locale.country.equals(currentCountry, ignoreCase = true)
}?.displayCountry ?: currentCountry
``````kotlin
val currentCountry: String
get() = Locale.getAvailableLocales().find { locale ->
locale.country.equals(currentCountry, ignoreCase = true)
}?.displayCountry ?: currentCountry
```Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-desktop/-/issues/520Include date in logs instead of just the time of day2023-05-08T14:12:24ZSebastianInclude date in logs instead of just the time of dayA user reported that it's difficult to make sense of logs if the date is missing. I can see the point.A user reported that it's difficult to make sense of logs if the date is missing. I can see the point.SebastianSebastianhttps://code.briarproject.org/briar/briar-desktop/-/issues/518Private groups: Sharing information in header is not updated after group leav...2023-05-11T21:21:59ZMikolai GütschowPrivate groups: Sharing information in header is not updated after group leave/dissolveNot sure if it is supposed to, but after the group is dissolved, it is still shown as "shared with 1". This should be double-checked with Android behavior.
![image](/uploads/a947ece60b3e2184238de9a72e12ed63/image.png)
Similar issue aft...Not sure if it is supposed to, but after the group is dissolved, it is still shown as "shared with 1". This should be double-checked with Android behavior.
![image](/uploads/a947ece60b3e2184238de9a72e12ed63/image.png)
Similar issue after a contact leaves a private group: the owner still sees them as a member and shows the private group as shared with them. Maybe at least this is actually intended behavior though.
Maybe someone can comment on this @sebkur or @grote ?Desktop 0.5.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/onionwrapper/-/issues/8Reset bridges if enabling bridges with empty list2023-05-12T16:52:30ZTorsten GroteReset bridges if enabling bridges with empty list`enableBridges()` to call `resetConf("Bridge")` if bridge list is empty.`enableBridges()` to call `resetConf("Bridge")` if bridge list is empty.Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/onionwrapper/-/issues/6Unintuitive API: TorWrapper#start() doesn't actually start, unless enableNetw...2023-05-10T17:24:32ZTorsten GroteUnintuitive API: TorWrapper#start() doesn't actually start, unless enableNetwork() get calledYou call `TorWrapper#start()` and expect things to work. There's some JavaDoc somewhere that enableNetwork() is needed, but not really easy to find.You call `TorWrapper#start()` and expect things to work. There's some JavaDoc somewhere that enableNetwork() is needed, but not really easy to find.https://code.briarproject.org/briar/onionwrapper/-/issues/2Package private implementation hard to use2023-05-10T17:25:59ZTorsten GrotePackage private implementation hard to use`AndroidWakeLockManagerImpl` and `CircumventionProviderImpl` are both package-private, so they require some hoops to jump through to be used.
we could add a factory method for that, perhaps?
A public factory for `AndroidWakeLockManage...`AndroidWakeLockManagerImpl` and `CircumventionProviderImpl` are both package-private, so they require some hoops to jump through to be used.
we could add a factory method for that, perhaps?
A public factory for `AndroidWakeLockManager`, maybe with two methods, one allows passing in your own `ScheduledExecutorService`, the other provides a default one?Torsten GroteTorsten Grote