jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2021-07-28T16:05:38Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/595Swarm 1:1 detect contact left2021-07-28T16:05:38ZSébastien BlinSwarm 1:1 detect contact left+ Change repo to include /invited
+ "Contact left" should be visible in getConversationMembers()
+ Add test
+ DO client changes+ Change repo to include /invited
+ "Contact left" should be visible in getConversationMembers()
+ Add test
+ DO client changesSwarm-chatSébastien BlinAndreas TraczykSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/596Swarm: removeContact should remove syncing conversations2021-07-28T21:14:57ZSébastien BlinSwarm: removeContact should remove syncing conversations+ Fix bug
+ Add test+ Fix bug
+ Add testSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/592Swarm: move last read per participant daemon' side2021-07-28T17:15:46ZSébastien BlinSwarm: move last read per participant daemon' side+ getMembers() should return last read
+ react to messageDisplayed/setMessageDisplayed
+ Add test
+ Add method to compute how many messages between two interactions
+ Update LRC
+ Update doc+ getMembers() should return last read
+ react to messageDisplayed/setMessageDisplayed
+ Add test
+ Add method to compute how many messages between two interactions
+ Update LRC
+ Update docSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/600TrustRequest: add signal for conversationRequest removed, and ensure it's cor...2021-08-09T14:35:49ZSébastien BlinTrustRequest: add signal for conversationRequest removed, and ensure it's correctly syncedRelated to https://git.jami.net/savoirfairelinux/ring-project/-/issues/1282Related to https://git.jami.net/savoirfairelinux/ring-project/-/issues/1282Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/591Swarm: Add syncing conversations2021-07-28T17:15:46ZSébastien BlinSwarm: Add syncing conversations+ convInfos_ works? => Test case replace convInfos_
+ Add to convInfo when accepting, not when cloned
+ getConversations() must return syncing conversations
+ conversationInfos() must return syncing:true
+ add tests
+ update doc
+ Add p...+ convInfos_ works? => Test case replace convInfos_
+ Add to convInfo when accepting, not when cloned
+ getConversations() must return syncing conversations
+ conversationInfos() must return syncing:true
+ add tests
+ update doc
+ Add patch for LRCSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/61File transfer without TURN server2019-05-02T18:21:58ZSébastien BlinFile transfer without TURN serverFor now, and because ICE doesn't supports TCP in pjsip, the file transfer has to pass through a TURN server. This is not perfect.
A better way to do that after https://git.ring.cx/savoirfairelinux/ring-project/issues/486 is to negotiate...For now, and because ICE doesn't supports TCP in pjsip, the file transfer has to pass through a TURN server. This is not perfect.
A better way to do that after https://git.ring.cx/savoirfairelinux/ring-project/issues/486 is to negotiate a TCP connection directly between the sender and receivers.Swarm-chathttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/351Swarm: cleanup current code2020-12-22T20:02:14ZSébastien BlinSwarm: cleanup current code# Done, to rebase
+ Avoid lock in testBanDevice if CPPUNIT_ASSERT(fileutils::isFile(bannedFile)); fails (just change bannedFile)
+ Add getUri() and getDeviceId() for JamiAccount to avoid multiple lookups + cleanup username_ usage => htt...# Done, to rebase
+ Avoid lock in testBanDevice if CPPUNIT_ASSERT(fileutils::isFile(bannedFile)); fails (just change bannedFile)
+ Add getUri() and getDeviceId() for JamiAccount to avoid multiple lookups + cleanup username_ usage => https://review.jami.net/c/ring-daemon/+/16424
+ Add test to assert that device certificate is there on commit
+ Add check to validate votes + commit messages (verif certificate)
+ invited create a directory instead a file
+ Some message sends to self. Avoid
+ valiadte too much commits
+ Disconnection during fetch => block the fetch, should be stopped
+ Some fetch blocked in
```
#0 0x00007ffff7a1c4e8 in pthread_cond_clockwait () from /lib64/libpthread.so.0
#1 0x0000000000671142 in std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (this=0x7ffe10017ce8, __lock=..., __atime=...) at /usr/include/c++/10/condition_variable:209
#2 0x000000000066d8e7 in std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (this=0x7ffe10017ce8, __lock=..., __atime=...) at /usr/include/c++/10/condition_variable:119
#3 0x000000000065fdb8 in std::condition_variable::wait_until<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> >, jami::MultiplexedSocket::waitForData(const uint16_t&, std::chrono::milliseconds, s
td::error_code&) const::<lambda()> >(std::unique_lock<std::mutex> &, const std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1, 1000000000> > > &, struct {...}) (this=0x7ffe10017ce8, __lock=..
., __atime=..., __p=...) at /usr/include/c++/10/condition_variable:158
--Type <RET> for more, q to quit, c to continue without paging--
#4 0x000000000065fb76 in std::condition_variable::wait_for<long int, std::ratio<1, 1000>, jami::MultiplexedSocket::waitForData(const uint16_t&, std::chrono::milliseconds, std::error_code&) const::<lambda()> >(std::unique_lock<std::mutex
> &, const std::chrono::duration<long, std::ratio<1, 1000> > &, struct {...}) (this=0x7ffe10017ce8, __lock=..., __rtime=..., __p=...) at /usr/include/c++/10/condition_variable:185
#5 0x000000000065e959 in jami::MultiplexedSocket::waitForData (this=0x7ffe10008400, channel=@0x7ffe100092d8: 38876, timeout=..., ec=...) at multiplexed_socket.cpp:481
#6 0x000000000065f517 in jami::ChannelSocket::waitForData (this=0x7ffe10006850, timeout=..., ec=...) at multiplexed_socket.cpp:656
#7 0x000000000073cbb1 in P2PStreamRead (stream=0x7ffe04026910, buffer=0x7ffe0402e060 "0008NAK\n", buflen=65536, read=0x7ffe727f7a08) at gittransport.cpp:104
#8 0x0000000000bc0863 in git_smart.recv_cb ()
#9 0x0000000000bc2418 in recv_pkt ()
#10 0x0000000000bc32f1 in git_smart.download_pack ()
#11 0x0000000000ba8919 in git_remote_download ()
```
+ Add account id on logs (to rebase)
+ Queue for merge (convId, device)
+ test double fetch without common refs => should merge both side ok
(a & b same repo, a add commit, b too, then start daemon)
+ Handle 3 users
+ Add locks on conversations_ & pendingFetch & avoid lock on sendMessageNotification + avoid to lock on big operations
+ Avoid multiple parrallel fetch on different remots with same repository, this cause issues
+ Clean warnings
+ Fix segv for repository_ in conversationrepository_
+ improve getMembers()
+ Doc: verify in the doc that we do not add certificates in invited
+ end blockedSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/391Replay Conversation: fix block when destroying + fetch while join2021-02-26T16:37:52ZSébastien BlinReplay Conversation: fix block when destroying + fetch while joinSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/381Swarm: add getConversationsInfo() with title + avatar + mode2021-04-21T19:13:20ZSébastien BlinSwarm: add getConversationsInfo() with title + avatar + mode# Done
+ Store title/subtitle/avatar into /profile.vcf
+ add commit type application/profile-update
+ Merge conflicts solver. Force merge profile with higher commit
+ add getConversationsInfos/setconversationInfos
+ Add details in conve...# Done
+ Store title/subtitle/avatar into /profile.vcf
+ add commit type application/profile-update
+ Merge conflicts solver. Force merge profile with higher commit
+ add getConversationsInfos/setconversationInfos
+ Add details in conversationsRequests()
+ Commit verification, verify that only profile.vcf is modified
+ Tests: check add profile, merge with conflicts, , check request in addContact & addConversationMember, only admin can update, no bad file, validateAdminUpdates
+ Check that only admin updates
+ Add docs
+ Clean TODOsSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/387Swarm: prune branch after fetch & validation2021-02-26T16:37:27ZSébastien BlinSwarm: prune branch after fetch & validationSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/299Swarm: remove a user from the conversation2021-04-19T13:28:58ZSébastien BlinSwarm: remove a user from the conversation+ Implement https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#remove-a-device-from-a-conversation
+ Add tests+ Implement https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#remove-a-device-from-a-conversation
+ Add testsSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/360Swarm: Add forced 1:1 mode2021-04-19T13:29:46ZSébastien BlinSwarm: Add forced 1:1 mode# Done
+ Modify initial commits and store mode into
+ Modify addContact to send a conversationId into the request, addConversationMember doesn't add any conv request
+ Modify acceptContactRequest
+ Conversation addConversationMember() ...# Done
+ Modify initial commits and store mode into
+ Modify addContact to send a conversationId into the request, addConversationMember doesn't add any conv request
+ Modify acceptContactRequest
+ Conversation addConversationMember() refuse if already 1 member
+ Checks if one to one, only one member can be added
+ removeContact => remove linked conversation
+ Check mode when validating commits
+ Add docs for wanted swarm modes
+ Test 1:1 mode via addContact
+ Test getMode
+ Test addConversationMember doesn't work after first member
+ Test removeContact()
+ test banContact()
+ Test initial commit without mode
+ Test merge refused if more than one member in 1:1
+ merge intial commit and invite (and simplify getMembers for one one & fetch simplify validation)
+ docs conversationRequest (id, from, received)
+ Retry on TrustRequests
+ Add test addOfflineOneOne
+ Docs for one to one, add contact and the tricky scenario (A adds B, removes B, re-add B)Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/345Swarm: Fetch validation2021-04-19T13:29:22ZSébastien BlinSwarm: Fetch validation+ Implement https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#validating-a-commit
+ Add tests
+ Avoid too big fetch
+ Rebase changes in wanted patches+ Implement https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#validating-a-commit
+ Add tests
+ Avoid too big fetch
+ Rebase changes in wanted patchesSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/362Swarm: add signal for member events (add/join/leave)2021-04-19T13:30:25ZSébastien BlinSwarm: add signal for member events (add/join/leave)All is in the titleAll is in the titleSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/367Add call + file transfer messages2021-04-19T13:30:50ZSébastien BlinAdd call + file transfer messages+ Accept commits similar to plain/text but different mimetype
+ Add messages "application/call-history+json" and add the message when stopping the call (duration/to)
+ Support "application/data-transfer+json" and add to the history when ...+ Accept commits similar to plain/text but different mimetype
+ Add messages "application/call-history+json" and add the message when stopping the call (duration/to)
+ Support "application/data-transfer+json" and add to the history when sending a fileSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/480Validate Beta Swarm windows2021-07-16T18:09:48ZSébastien BlinValidate Beta Swarm windowsSwarm-chatGuillaume HellerGuillaume Hellerhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/298Swarm: Remove a device from the conversation2022-07-13T17:35:28ZSébastien BlinSwarm: Remove a device from the conversation+ Implement https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#remove-a-device-from-a-conversation
+ Add tests+ Implement https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#remove-a-device-from-a-conversation
+ Add testsSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/292Swarm: Fix build on jenkins2020-12-23T19:37:25ZSébastien BlinSwarm: Fix build on jenkinsPatches are not building for nowPatches are not building for nowSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/375Swarm: add conversation removed signal2021-04-19T14:20:34ZSébastien BlinSwarm: add conversation removed signalSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/373Swarm: add API to get conversationLastError()2021-04-21T19:13:20ZSébastien BlinSwarm: add API to get conversationLastError()Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/344Swarm: Design change. A member must accepts the invite to be in getMembers()2021-04-19T14:20:47ZSébastien BlinSwarm: Design change. A member must accepts the invite to be in getMembers()We need to avoid to send messages to someone that discard an invite. Also when removing a conversation, we should be sure that someone can sync, so accepted
Problem:
+ What happen when accepting/discarding an invite?
+ To discuss/solve:...We need to avoid to send messages to someone that discard an invite. Also when removing a conversation, we should be sure that someone can sync, so accepted
Problem:
+ What happen when accepting/discarding an invite?
+ To discuss/solve: The invite must go through, else, it will be problematic to detect invitations
+ Change tests for getMembers
+ Change tests for removeConversation
+ Add tests for accepts/discards
+ Test that the invite is received if not present at first
+ Update docSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/314Swarm: Test transmit messages for non connected peers2021-04-19T14:20:57ZSébastien BlinSwarm: Test transmit messages for non connected peers# Done
+ An account can add a member which is offline to a conversation. When the member is online, they should receives the request and be able to clone it.
+ Add test receives conversations request on loading account
+ Lot of unwanted...# Done
+ An account can add a member which is offline to a conversation. When the member is online, they should receives the request and be able to clone it.
+ Add test receives conversations request on loading account
+ Lot of unwanted packet for references discovery
+ An account should ask a request if a conversation is unknown (request missed) & add test
+ Test when loading account, a user should connect to peers and retrieve messages
+ Add test receives messages when already have conversation on loading account
+ Add test ping pong messages
+ Updates doc for application/im-gitmessage-id. Doc that conversation request is now a SIP message (for messageEngine mechanisms)
+ Between 2 computer: Something went wrong when cloning conversation: Couldn't clone repository
+ Try to clone on invalid hash 000000000000000...
+ Test conversation 100%Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/196Create initial commit of the conversation2021-04-19T14:20:53ZSébastien BlinCreate initial commit of the conversationhttps://review.jami.net/c/ring-daemon/+/13304https://review.jami.net/c/ring-daemon/+/13304Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/199Add a new message2021-04-19T14:20:50ZSébastien BlinAdd a new messageSwarm-chathttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/197Add new conversation member and send invite2021-04-19T14:20:51ZSébastien BlinAdd new conversation member and send inviteSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/291Swarm: redo code for gitserver2021-04-19T14:20:32ZSébastien BlinSwarm: redo code for gitserverThis commit is ugly
# TODO
+ [x] Remove ioPool and only use callbacks
+ [x] Support shutdown
+ [ ] Multiple want and improve negotiation
+ [ ] Recheck answerToWantOrder();
+ [ ] Support depth request (https://github.com/git/git/blo...This commit is ugly
# TODO
+ [x] Remove ioPool and only use callbacks
+ [x] Support shutdown
+ [ ] Multiple want and improve negotiation
+ [ ] Recheck answerToWantOrder();
+ [ ] Support depth request (https://github.com/git/git/blob/master/Documentation/technical/pack-protocol.txt#L256)Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/198Clone conversation through socket provided by the ConnectionManager2021-04-19T14:20:49ZSébastien BlinClone conversation through socket provided by the ConnectionManagerhttps://review.jami.net/c/ring-daemon/+/13304https://review.jami.net/c/ring-daemon/+/13304Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/195Add libgit2 as a dependency2021-04-19T14:19:52ZSébastien BlinAdd libgit2 as a dependencyhttps://review.jami.net/c/ring-daemon/+/12746https://review.jami.net/c/ring-daemon/+/12746Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/205[Feature Request] Typing Indicators2020-12-22T20:03:07Ztrymeout[Feature Request] Typing IndicatorsNot an important feature, this exists in WhatsApp and Signal and when someone is typing a message it will send an indicator to the other peer(s) show that they are typing.
If this feature is added it should be optional for each conversa...Not an important feature, this exists in WhatsApp and Signal and when someone is typing a message it will send an indicator to the other peer(s) show that they are typing.
If this feature is added it should be optional for each conversation were it can be turned on/oof since some people will like more privacy and not have the other peer know when they are typing.Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/321Swarm: relink share location2021-01-18T17:17:30ZSébastien BlinSwarm: relink share locationSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/293Swarm: multi-device management2020-09-18T19:50:25ZSébastien BlinSwarm: multi-device managementhttps://git.jami.net/savoirfairelinux/ring-project/wikis/technical/6.2.-Sync-Protocol
Related patch: https://review.jami.net/c/ring-daemon/+/15584https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/6.2.-Sync-Protocol
Related patch: https://review.jami.net/c/ring-daemon/+/15584Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/62Offline messages2020-09-30T21:15:41ZSébastien BlinOffline messagesTODO: investigate.
Some keywords:
+ Maidsafe
+ IPFS
+ SupernodesTODO: investigate.
Some keywords:
+ Maidsafe
+ IPFS
+ SupernodesSwarm-chathttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/63Manage database instead of LRC.2020-09-24T20:21:25ZSébastien BlinManage database instead of LRC.The daemon should manage the Ring database instead the client.
This will allow the daemon to synchronize messages between all devices for example.The daemon should manage the Ring database instead the client.
This will allow the daemon to synchronize messages between all devices for example.Swarm-chathttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/311Messages not syncing across devices2022-09-05T14:19:42ZCalle KaboMessages not syncing across devicesScenario:
I'm logged in to my ring account on android and linux (my laptop).
I send a message to a contact from my android device.
Currently:
My message doesn't show up on my laptop
Expectation:
My message to show up on my laptopScenario:
I'm logged in to my ring account on android and linux (my laptop).
I send a message to a contact from my android device.
Currently:
My message doesn't show up on my laptop
Expectation:
My message to show up on my laptopSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/294Swarm: default branch should not be "master" but "main"2021-02-19T17:12:18ZSébastien BlinSwarm: default branch should not be "master" but "main"Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/296Swarm: see for file transfers (NEEDS DESIGN)2021-06-12T11:37:07ZSébastien BlinSwarm: see for file transfers (NEEDS DESIGN)Swarm-chatSébastien BlinAdrien BéraudSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/162Call-Swarm: link to current rdv2023-11-17T16:32:48ZSébastien BlinCall-Swarm: link to current rdv+ Modify messages to use the "rendezvous" word in non 1:1
+ Add a priority to get the best host (mobile/non mobile/ipv6/resources)
+ Maybe use the DRT to avoid to connect to a non connected mobile.+ Modify messages to use the "rendezvous" word in non 1:1
+ Add a priority to get the best host (mobile/non mobile/ipv6/resources)
+ Maybe use the DRT to avoid to connect to a non connected mobile.Swarm-chat2023-03-31https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/358Swarm: add not contact member to conversation2020-12-22T20:02:05ZKateryna KostiukSwarm: add not contact member to conversationCurrently adding a contact that is not accepted contact request, as a member to conversation will fail with error "Could not add member because no certificate is found"Currently adding a contact that is not accepted contact request, as a member to conversation will fail with error "Could not add member because no certificate is found"Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/318Add "reply" functionality to all Ring clients message systems & UI's2022-09-20T09:09:48ZannaAdd "reply" functionality to all Ring clients message systems & UI'sReplies let you single out the one message to which you’re responding.
Riot.im/Matrix recently added a support for message replies.
https://medium.com/@RiotChat/look-out-its-riot-im-0-16-composer-jitsi-replies-8b29f89271a1
Would love ...Replies let you single out the one message to which you’re responding.
Riot.im/Matrix recently added a support for message replies.
https://medium.com/@RiotChat/look-out-its-riot-im-0-16-composer-jitsi-replies-8b29f89271a1
Would love to see this in Ring clients too (including text message replies, audio message replies and video message replies).
What do you think?Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/297Swarm: implement DRT (after first version)2023-04-28T19:42:53ZSébastien BlinSwarm: implement DRT (after first version)https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#drt-name-will-change
# In progress
+ add tests for mobile DRT
+ Client: remove limit of 8 participants
+ Test in real environment
# TODO:
+ D...https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#drt-name-will-change
# In progress
+ add tests for mobile DRT
+ Client: remove limit of 8 participants
+ Test in real environment
# TODO:
+ Debug last locks
+ Cleanup code
+ Finish last tests
+ Document on docs.jami.netSwarm-chatSébastien BlinFadi ShehadehSébastien Blin2023-02-28https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/374swarm: call messages generated twice2020-12-22T20:01:21ZKateryna Kostiukswarm: call messages generated twiceSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/377Swarm: POC - detected problems2021-01-04T18:39:27ZSébastien BlinSwarm: POC - detected problems+ Fast messaging: multiple channels got the same name. For example:
```
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name git://83b8efe4723f10680305db94bcb541fadebd5240/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1...+ Fast messaging: multiple channels got the same name. For example:
```
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name git://83b8efe4723f10680305db94bcb541fadebd5240/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name git://83b8efe4723f10680305db94bcb541fadebd5240/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name git://83b8efe4723f10680305db94bcb541fadebd5240/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name file://10367978848762943917
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name git://83b8efe4723f10680305db94bcb541fadebd5240/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name git://83b8efe4723f10680305db94bcb541fadebd5240/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name git://83b8efe4723f10680305db94bcb541fadebd5240/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name git://83b8efe4723f10680305db94bcb541fadebd5240/30fc5d556dd299d2cdc16fa7d621925a30ffa809
```
Should be unique, there is no reason to get so much time the same channel
+ Sometimes pull seems blocked, to investigate
+ Fast messaging: some clone failures:
```
[1608828673.275|33053|connectionmanager.cpp:387 ] Peer already connected. Add a new channel
[1608828673.392|41548|jamiaccount.cpp :2466 ] [Account 681cc7e42523b44d] New channel asked from 48c2bec426adc0a604f771df7ba324a7730facf3 with name git://48c2bec426adc0a604f771df7ba324a7730facf3/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828673.392|39557|jamiaccount.cpp :2466 ] [Account 681cc7e42523b44d] New channel asked from 48c2bec426adc0a604f771df7ba324a7730facf3 with name git://48c2bec426adc0a604f771df7ba324a7730facf3/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828673.393|38932|jamiaccount.cpp :2466 ] [Account 681cc7e42523b44d] New channel asked from 48c2bec426adc0a604f771df7ba324a7730facf3 with name git://48c2bec426adc0a604f771df7ba324a7730facf3/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828673.393|37630|jamiaccount.cpp :2466 ] [Account 681cc7e42523b44d] New channel asked from 48c2bec426adc0a604f771df7ba324a7730facf3 with name git://48c2bec426adc0a604f771df7ba324a7730facf3/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828675.393|41548|conversationrepository.cpp:2041 ] Could not fetch remote repository for conversation 30fc5d556dd299d2cdc16fa7d621925a30ffa809: early EOF
[1608828675.393|41548|jamiaccount.cpp :4393 ] [Account 681cc7e42523b44d] Could not fetch new commit from 48c2bec426adc0a604f771df7ba324a7730facf3 for 30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828676.393|38939|conversationrepository.cpp:2041 ] Could not fetch remote repository for conversation 30fc5d556dd299d2cdc16fa7d621925a30ffa809: invalid response
[1608828676.393|38939|jamiaccount.cpp :4393 ] [Account 681cc7e42523b44d] Could not fetch new commit from 48c2bec426adc0a604f771df7ba324a7730facf3 for 30fc5d556dd299d2cdc16fa7d621925a30ffa809
```
This early EOF should not be there. To investigateSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/319swarm: relink read status (for messages)2021-06-12T11:37:10ZSébastien Blinswarm: relink read status (for messages)All is in the titleAll is in the titleSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/448[To test]Swarm: weird clone failure on sync2021-03-02T15:48:36ZSébastien Blin[To test]Swarm: weird clone failure on sync```
gheller@pc-gheller:~/.local/share/jami/457c1d61f7710c64/conversations/7ac13b2d77f9ed337618db340a9d1cb0f9f2a2cd$ git log
commit 401c9afc98aa2d4deebe6b989749169c96c6e0e1 (HEAD -> main, origin/main, origin/HEAD)
Author: 698fe6e10ae1f472...```
gheller@pc-gheller:~/.local/share/jami/457c1d61f7710c64/conversations/7ac13b2d77f9ed337618db340a9d1cb0f9f2a2cd$ git log
commit 401c9afc98aa2d4deebe6b989749169c96c6e0e1 (HEAD -> main, origin/main, origin/HEAD)
Author: 698fe6e10ae1f4722dabe32ad5e885a464085db5 <698fe6e10ae1f4722dabe32ad5e885a464085db5>
Date: Thu Feb 18 21:12:42 2021 +0000
{"body":"\u2728","type":"text/plain"}
commit 92092c07f827171c289e60a44e9bf7e7c93242b9
Author: 7c38177a10d618bc30f93f0284d82d6ef246c459 <7c38177a10d618bc30f93f0284d82d6ef246c459>
Date: Thu Feb 18 21:11:59 2021 +0000
{"displayName":"img_20210218_161153_411016185718028660.jpg","sha3sum":"b7d5c6e752a4b29537dae244f429f38446ab4f2d34b09ed477a9428dcad9e8bf4decc5213d409d0b140d95d5a58517b718f56c6ed0691cdcc4e32b01b18f5d8a","tid":"8783314023060598","totalSize":"5024115","type":"application/data-transfer+json"}
commit 9687b46bee5159e19690ea7b7db07533fc5a9c57
Author: 7c38177a10d618bc30f93f0284d82d6ef246c459 <7c38177a10d618bc30f93f0284d82d6ef246c459>
Date: Thu Feb 18 21:11:42 2021 +0000
{"body":"Non je re\u00e7ois que sur Android","type":"text/plain"}
error: Could not read 095ced7a8debd31058c1dc68099809b64a9fb5bf
fatal: Failed to traverse parents of commit b6f09dc7e13f3c791b7e226890717100af38a282
```Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/437[To test]Swarm: Still some "could not fetch commit..."2021-03-02T15:48:33ZSébastien Blin[To test]Swarm: Still some "could not fetch commit..."Sometimes, when android sends a message, the message is not received by the other peer, with "could not fetch commit..". This needs some investigation. all messages should pass directlySometimes, when android sends a message, the message is not received by the other peer, with "could not fetch commit..". This needs some investigation. all messages should pass directlySwarm-chatSébastien BlinSébastien Blin2021-03-03https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/305Swarm: remove conversation2021-06-12T11:37:12ZSébastien BlinSwarm: remove conversationImplement https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#remove-a-conversationImplement https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#remove-a-conversationSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/320swarm: relink typing indication2021-06-12T11:37:14ZSébastien Blinswarm: relink typing indicationShould not be difficult
The only difficulty is that the conversation is not specified, only the message-id, so that will need some calculation or add a custom indication into:
https://tools.ietf.org/html/rfc5438#section-11
To determin...Should not be difficult
The only difficulty is that the conversation is not specified, only the message-id, so that will need some calculation or add a custom indication into:
https://tools.ietf.org/html/rfc5438#section-11
To determine:
1. where to store the convID related
2. Who store the information for read-by (daemon, or we forward the signal to client?)Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/302Swarm: Get conversations requests & sync2021-06-12T11:37:24ZSébastien BlinSwarm: Get conversations requests & synccf https://review.jami.net/c/ring-daemon/+/15748 and https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/6.2.-Sync-Protocolcf https://review.jami.net/c/ring-daemon/+/15748 and https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/6.2.-Sync-ProtocolSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/452Swarm check cancelFile compat + generator (same id?)2021-06-12T11:39:06ZSébastien BlinSwarm check cancelFile compat + generator (same id?)Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/295Swarm: add a test for sending a message to multiple participants at once2021-06-12T11:37:27ZSébastien BlinSwarm: add a test for sending a message to multiple participants at onceScenario:
Alice creates a conversation with 8 members
Then sends a messages
All devices should receives the whole conversationScenario:
Alice creates a conversation with 8 members
Then sends a messages
All devices should receives the whole conversationSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/136[API ready]Swarm: support request for resending a file transfer2021-06-12T11:37:55ZSébastien Blin[API ready]Swarm: support request for resending a file transfer+ The daemon should store a link or the file in private datas to retrieve it
+ A peer in a conversation is able to re-ask for a file transfer
+ when downloaded sha3sum must be checked.+ The daemon should store a link or the file in private datas to retrieve it
+ A peer in a conversation is able to re-ask for a file transfer
+ when downloaded sha3sum must be checked.Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/524Swarm: redo file transfer logic [Wait for android implem]2022-11-18T20:22:36ZSébastien BlinSwarm: redo file transfer logic [Wait for android implem]+ sendFile() only adds a message to the conversation, but don't send any request
+ other peers download files or not
+ logic is the same as askForTransfer
+ URI should supports parameters like from/to to download a block
+ If a socket ...+ sendFile() only adds a message to the conversation, but don't send any request
+ other peers download files or not
+ logic is the same as askForTransfer
+ URI should supports parameters like from/to to download a block
+ If a socket is cut, it should retry to download
+ Add ratio infos (peers transfer in progress)
# TODO
~~+ rebase unit tests~~
~~+ Download file return TID file~~
~~+ relink cancelTransfer~~
~~+ shutdown channel avoid write both sides.~~
~~+ start offset support~~
~~+ remove istringstream~~
~~+ cache waiting transfers~~
~~+ add re-ask mechanism~~
~~+ Prepare patch to delete all deprecated code~~
~~+ Relink infos()~~
~~+ Check that all test builds~~
~~+ Move transferManager in conversation and logic from jamiaccount~~
~~+ rebase re-ask~~
~~+ sendProfile()~~
~~+ patch to remove all old logic~~
~~+ fileInfo (conv, interactionId, info)~~
~~+ cleanup code~~
~~+ add tests (info out/in ; retry ; info ; bytesProgress)~~
~~+ Update API~~Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/312Swarm: Support calls from swarm with multiple members2022-11-17T18:37:36ZSébastien BlinSwarm: Support calls from swarm with multiple members# Documentation
https://docs.jami.net/technical/swarm.html#call-in-swarm
# Stack
https://review.jami.net/q/topic:call-swarm# Documentation
https://docs.jami.net/technical/swarm.html#call-in-swarm
# Stack
https://review.jami.net/q/topic:call-swarmSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/316Support message edition/deletion2022-10-31T16:10:01ZJami BotSupport message edition/deletionbe able to edit/remove a message from a swarmbe able to edit/remove a message from a swarmSwarm-chatSébastien BlinSébastien Blin