# Dragons - Archive January 3 2021 - May 18 2021
## May 18th (Wednesday) - Standup
**r4bbit**
- done
- Fixed failing tests for PR that adds support to status-go to configure whether or not all community members are able to pin messages
- https://github.com/status-im/status-go/pull/2668
- Fixed bug that chat details are updated incorrectly after contact requests have been approved
- https://github.com/status-im/status-desktop/pull/5783
- Implemented signal handling for `mailserver.not.working` and render a dialog that allows users to pick/pin a different mailserver
- https://github.com/status-im/status-desktop/pull/5790
- current
- Working on ensuring users are only added as members to communities when they join
- https://github.com/status-im/status-desktop/issues/5115
- next
**Richard**
- done
- status-desktop#5755 fix(communities) validate privkey when importing a community
- status-desktop#5759 fix: duplicated channels when joining a community
- status-go#2678 fix: ping dns4 multiaddresses
- status-desktop#5796 fix: invalid pubkey error
- go-waku#213 rebase (feat: domain name config)
- Dogfooding Desktop
- Research work necessary for status-desktop#5720 List communities
- current
- status-desktop#5720 List communities
- next
- waku-react-native - publish npm package
- fix issue reported in discord#go-waku related to store node functionality not working on swift
**Patryk**
- done
- discussed group chats
- reviewed lot of PRs
- current
- status-desktop#5717 autojoin group when mutual contact
- initial solution working, still need to polish and test different scenarios
- feature-specs#71 groups functionality
- gathered requirements
- next
- status-desktop#5459 search results should display new identicon
- status-desktop#5514 profile image isn't shown in contacts list
- status-desktop#5746 community intro message for new members
## May 16th (Monday) - Iteration
**Richard**
- done
- Rebase old status-go and status-desktop PRs
- Debug status-go issue with communities
- The cause of the issue is that communities are sync'd so sometimes during the test execution, a sync message arrived that caused the number of community chats to be different
- waku-react-native - receive messages on IOS
- current
- status-desktop#5346 Incorrect error is shown if user entered the wrong community private key
- status-desktop#5729 Community channels are rendered twice after joining community
- next
- status-desktop#5720 List communities
- waku-react-native - publish npm package
**Patryk**
- done
- rebase some old PRs
- analyzed status-go code regarding group chats
- read group-chat specs -> https://specs.status.im/draft/7
- current
- status-desktop#5717 autojoin group when mutual contact
- still need to find out the best solution for current implementation, waiting for response from Cammellos to my proposal
- feature-specs#71 groups functionality
- next
- status-desktop#5459 search results should display new identicon
- status-desktop#5514 profile image isn't shown in contacts list
- status-desktop#5746 community intro message for new members
**Pascal**
- done
- Debugged issues with communities as stated by Richards notes, also found a bug that community channels are rendered twice
- https://github.com/status-im/status-desktop/issues/5729
- Updated/rebase status-go PRs for `CommunityAdminSettings` (hand in hand with debugging the issues with tests)
- current
- Reading into Noise protocol
- next
## May 13th (Friday) - Standup
**Richard**
- done
- waku-react-native - node setup, sending messages, receiving messages (only on android)
- current
- rebase old status-go and status-desktop PRs
- debug status-go issue with communities
- waku-react-native - receive messages on IOS
- next
- status-desktop#5720 List communities
## May 11th (Wednesday) - Standup
**Patryk**
- done
- add translations (qsTrs) to StatusQ
- status-desktop#5582: community members list not updating
- status-desktop#3900: wakuext_backupData
- investigated how contacts backup works in status-go
- closed issue as it's not relevant anymore - no UI is needed
- done bunch of code reviews
- current
- learn about new Qt6 cmake commands
- next
- ?
**Pascal**
- done
- Fixed bug that prevents desktop from bootrapping
- https://github.com/status-im/status-desktop/pull/5684
- Implement option in status desktop to allow community admins to enable pin messages for all members
- https://github.com/status-im/status-desktop/pull/5695
- Introduced `CommunityAdminSettings` in status-go to enable the feature above
- https://github.com/status-im/status-go/pull/2668
- current
- Debugging/investigating bug that community settings are overridden wrongly when editing communities
- https://github.com/status-im/status-desktop/pull/5708
- next
- Will pick something from the issue list
**Richard**
- current
- go-waku / js-waku: create react native package
- next
- go-waku: Start looking at implementing RLN in go-waku
## May 9th (Monday) - Iteration
**Richard**
- done
- go-waku#239 swift example app
- go-waku: fix dockerfile and refactor logging (it was causing issues in docker)
- go-waku: feat: add flags for enabling admin and private RPC endpoints
- status-go#2611 rebase stickers PR
- current
- go-waku / js-waku: create react native package
- next
- go-waku: Implement noise protocol / Start looking at implementing RLN in go-waku
**Pascal**
- done
- Got another round of feedback/comments on handling magnet link messages
- Updated the PR accordingly
- hoping to merge today
- Landed pending PR that updates chat action buttons to have tooltips
- current
- Need tasks
- next
**Patryk**
- done
- current
- add translations (qsTrs) to StatusQ
- next
## May 6th (Friday) - Standup
**Pascal**
- done
- Once again, updated the pending PR that handles community magnet links. This should be ready for merge
- https://github.com/status-im/status-go/pull/2585
- Revamped login view in Status Desktop to adhere to latest designs:
- https://github.com/status-im/status-desktop/pull/5658
- current
- Picking issues from issue list that was created during offsite
- next
- ^
**Patryk**
- done
- feature-specs#63 Finalize EmojiHash & rainbow ring feature spec
- finalize EmojiHash & ColorHash general specs
- status-desktop#4759 investigate new translation process
- rebase and update open PRs
- bunch of code reviews
- next
- ?
**Richard**
- done
- go-waku: Improve [documentation](https://github.com/status-im/go-waku/tree/master/docs)
- go-waku#233 fix flag naming consistency
- go-waku: vacuum sqlite DB after deleting records
- go-waku: add commit hash rpc endpoint
- go-waku: discv5 dns bootstrap
- current
- go-waku#239 swift example app
## April 13th (Wednesday) - Standup
**Pascal**
- done
- Fix spacing in emoji hash
- https://github.com/status-im/status-desktop/pull/5511
- Fix spacing in emoji popup
- https://github.com/status-im/status-desktop/pull/5512
- Style fine tuning in contacts page
- https://github.com/status-im/status-desktop/pull/5515
- Fix bug that replying to messages didn't work
- https://github.com/status-im/status-desktop/pull/5517
- Landed torrent config
- https://github.com/status-im/status-desktop/pull/5439
- Landed control to enable/disable archive protocol application-wide
- https://github.com/status-im/status-desktop/pull/5441
- Landed control to enable/disable archive protocol on a per community basis
- https://github.com/status-im/status-desktop/pull/5492
- **Still waiting for another review for:**
- https://github.com/status-im/status-go/pull/2585
- current
- Investigate app crashing when fetching more messages
- https://github.com/status-im/status-desktop/issues/5353
- next
- ^
**Richard**
- done:
- Investigate with @cammellos the marshalling issue that did not allow login with older accounts
- status-go#2642 chore: test that login still works with an account created with 0.97.3
- We should be able to capture this kind of errors as well as possible migrations failures in the future with this test
- status-desktop#5525 fix: don't save the node config twice when switching fleets (WE NEED TO MERGE THIS FOR DOGFOODING)
- Create status-go presentation for dubai
- current:
- Continue working on go-waku Swift example
- Improving go-waku docs
- next:
- Holidays and Dubai
**Patryk**
- done:
- status-desktop#5423 Uncompressed Chat key shows up in the returned search results when using search within any of the chats
- investigated multiaccounts migration issue, provided fix for defer functions
- status-desktop#5463 changing a contact nickname, temporarily reverts back to identicon
- done bunch of code reviews
- current:
- status-desktop#5477 chat send transaction request modals are missing new identicons
- add translations to StatusQ
- next:
- feature-specs#63 Finalize EmojiHash & rainbow ring feature spec
- status-desktop#4759 investigate new translation process
## April 11th (Monday) - Iteration
**Richard**
- done:
- feature-spec#42 - finish display name spec
- fix: multiaccounts migrations
- status-go#2634
- status-desktop#5456
- status-go#2632 fix: do not export all symbols in windows
- Learn more about current state of Contacts functionality in status-go and desktop and brainstorm how to unblock release due to related issues
- current:
- Swift bindings for go-waku
- Improve go-waku docs
- next:
- Open for tasks
- Will probably fix some of the open issues in go-waku
**Pascal**
- done:
- Updated PR that introduces torrent config accordingly Jo's feedback
- Updated PR that introduces adcanved settings for community protocol
- Updated PR that handles magnetlinks according to PR feedback
- current:
- Updating PR that introduces history support controls in the UI for individual communities
- next:
- Addressing feedback for PR that reloads community chat messages
## April 8th (Friday) - Standup
**Pascal**
- done
- Implemented feature to reload chats in communities when history archives have been downloaded
- https://github.com/status-im/status-desktop/pull/5436
- PR that adds `TorrentConfig` to Status Desktop
- https://github.com/status-im/status-desktop/pull/5439
- PR that adds and advanced option to enable/disable community archive protocol in desktop
- https://github.com/status-im/status-desktop/pull/5441
- PR that adds community settings and a UI control to enable/disable archive protocol for an individual community in desktop
- https://github.com/status-im/status-desktop/pull/5442
- PR that enables community archive support for member nodes by default in status-go
- https://github.com/status-im/status-go/pull/2631
- current
- Waiting to get a review on:
- https://github.com/status-im/status-go/pull/2585
- next
- Open for tasks
**Richard**
- done:
- go-waku#226 feat: kotlin android example
- status-desktop#5430 fix: chat key validation
- status-go#2632 fix: do not export all symbols in windows
- current:
- Finish display name spec
- Swift bindings for go-waku
- next:
- Improve go-waku docs
**Patryk**
- done:
- status-desktop#5358 Profile identicons are still being rendered inconsistently
- added 'User customisation' colour pallet to StatusQ
- imporoved StatusIdenticonLetter by auto setting letter color based on background luminance
- added colorID status-go utility
- extended Account with colorID and colorHash so it's possible to display these on login page
- status-desktop#5368 Contact requests have broken profile picture
- current:
- add translations to StatusQ
- status-desktop#5423 Uncompressed Chat key shows up in the returned search results when using search within any of the chats
- next:
- feature-specs#63 Finalize EmojiHash & rainbow ring feature spec
- status-desktop#4759 investigate new translation process
## April 6th (Wednesday) - Iteration
**Patryk**
- done:
- status-desktop#5149 Status navbar profile button should use identicon ring and letter identicon instead of identicon
- status-desktop#5361 Copying chat key from the Profile page
- status-desktop#5358 Profile identicon are still being rendered inconsistently
- investigated status-go data structures
- discussed possible solutions
- implemented colorId in status-go and nim backend
- current:
- status-desktop#5358 Profile identicons are still being rendered inconsistently
- add 'User customisation' colour pallet to StatusQ
- use colorId instead of color for oneToOne chats and profiles
- next:
- status-desktop#5368 Contact requests have broken profile picture
- feature-specs#63 Finalize EmojiHash & rainbow ring feature spec
- status-desktop#4759 investigate new translation process
**Richard**
- done:
- Meeting with Jo to discuss contact verification screens
- status-desktop#5374 Allow the usage of compressed chat keys when sending contact requests
- statusq#622 handle mnemonics with 3 character words
- status-go#2611 feat: add IPFS rate limiter
- Fix issue reported by Andrey on logout from status
- Add application name to cryptocompare requests
- Finished investigating how to call go-waku from kotlin and swift via gomobile. Did a "HelloWorld" app in Android to demonstrate interop between kotlin and go
- current:
- Exposing go-waku functions to gomobile and create a simple example app in kotlin
- Finish display name spec
- next:
- Swift bindings for go-waku
- Improve go-waku docs
**Pascal**
- done
- Finally landed the archive protocol routine PR
- Updated magnetlink message handling PR, waiting for a review
- Added sorting to archive metadata handling so latest archives are always downloaded first
- current
- Working on reloading the chat view when history data has been downloaded
## April 4th (Monday) - Iteration
**Richard**
- done:
- go-watchdog#1 fix: don't include SystemDriven on ios
- Forked this project to not include "github.com/elastic/gosigar" when building for ios
- Eventually when https://github.com/elastic/gosigar/issues/137 is fixed, we can remove this fork
- rendezvous#32 chore: upgrade deps
- go-waku#225 chore: upgrade deps
- status-go#2621 fix: waku2 peer table queries
- status-go#2620 chore: bump go-waku
- These PRs are required to upgrade go-waku + status-go to use latest libp2p, so we don't have to maintain a separate branch for status-go
- #5287 fix: use correct pubkey during account generation
- Invalid pubkey was being shown for imported accounts too. Fixed it
- current:
- Continue contact verification screens
- I implemented the popup dialog where you can send verification requests. I can do a quick demo of the current state of the task if required
- Currently working on popup dialog on receiving end where you can reply back to a contact verification request
- Started researching how to call c-bindings in go-waku from kotlin
- next
- Swift bindings for go-waku
- Improve go-waku docs
**Patryk**
- done:
- status-desktop#4544 Improve translation process (don't use qsTrId)
- introduced script for migration from qsTrId to qsTr
- introduced script for translation
- changed qsTrId to qsTr + manual review of changes
- translated the app
- status-desktop#5149 Status navbar profile button should use identicon ring and letter identicon instead of identicon
- rebased on master but can't test it, master is not functional - probably will need to rebase it later once again
- current:
- finalize current PRs (3 are in review, some waiting for rebase)
- next:
- nvestigate new translation process #4759
**Pascal**
- done
- current
- address PR feedback for archive routine (**it finally got approved**)
- still need to figure out why desktop crashes when loading more messages after history messages were received
- next
- ^
## April 1st (Friday) - Standup
**Richard**
- done:
- status-go#2611 feat: add IPFS rate limiter for downloading stickers and use http server for retrieving stickers
- Added a function that can be used to check if pending sticker transactions were confirmed and mark them as purchased
- status-desktop#5287 fix: use correct pubkey during account generation
- go-waku#224 fix: port on discv5
- Multiple hours debugging session with Daniel to determine if discovery was working between nim-waku and go-waku, using local and remote nodes
- In go-waku we discovered that when using NAT, the ENR record did not contain the correct port (it should have been the external port) (fixed)
- In nim-waku it was discovered that the enr record is missing the IP address when using Nat
- This caused that nodes living on our machine could not discover each other while nodes on Digital Ocean and the fleet could
- status.test node randomly reported the incorrect multiaddress `ip4/0.0.0.0/tcp/30303`. Daniel will look at it
- status-desktop#5119 feat: discV5
- Updated go-waku and tested using ubuntu desktop installed on a digital ocean droplet connected via VNC if discovery was working
- add lightpush to the go-waku c bindings
- current:
- Continue contact verification screens
- It's taking longer than expected because I got sidetracked, but this weekend I'll dedicate it completely to working on it
- next:
- Work on Kotlin bindings for go-waku
- Swift bindings for go-waku
- Improve go-waku docs
**Patryk**
- done:
- status-desktop#5149 Status navbar profile button should use identicon ring and letter identicon instead of identicon
- removed identicon related code (whole nim backend)
- reworked some parts of StatusQ
- current:
- status-desktop#4544 Improve translation process (don't use qsTrId)
- next:
## March 30th (Wednesday) - Standup
**Richard**
- done:
- go-waku#223 fix: discv5 IP advertising (wrong IP being chosen when running under a firewall with upnp disabled)
- status-desktop#5232 fix: loading indicator
- status-desktop: investigate why restoring a seedphrase generated different public keys
- status-go#2611 feat: add IPFS rate limiter for downloading stickers and use http server for retrieving stickers
- Discuss PR with Andrey
- Make changes in some functions signatures for easier consumption from mobile
- Make image download optional and move http server init to happen before messenger service starts
- status-go#2616: fix: adding missing DiscV5 config settings
- Add udp port and autoupdate settings for discv5 so these values could be specified from node config (instead of using defaults)
- Add NAT to libp2p and autostart discv5
- status-desktop#5119 feat: discV5
- Hardcoded bootstrap nodes in PR (Once https://github.com/status-im/infra-nim-waku/issues/42 is implemented, we can remove the hardcoded ENRs)
- status.test nodes are not returning new nodes :( asked Hanno to confirm this and indeed, no nodes are being returned. Daniel will investigate
- current:
- Today I'll continue work in contact verification screens
- Work on Kotlin bindings for go-waku
- next:
- Swift bindings for go-waku
- Improve go-waku docs
**Patryk**
- done:
- status-desktop#5181 Display compressed public key in account creation - in review
- investigated seedphrase issue
- participated in community history testing
- current:
- status-desktop#5149 Status navbar profile button should use identicon ring and letter identicon instead of identicon
- next:
- status-desktop#4544 Improve translation process (don't use qsTrId)
**Pascal**
- done
- Did another test round with a few more people
- Went great, found one bug
- Investigated why PRs were failing on CI
- Brainstormed solutions with Samuel for history archives to have mutating piecelength
- current
- Implementing a workaround for the bug that torrent get stuck when loading
- Testing this possibly with Patryk later today
- next
- Look into desktop app crashing when fetching more messages
## March 28th (Monday) - Iteration
**Patryk**
- done:
- status-desktop#4938 New Communities settings
- created PR for first iteration (Stefan needs it)
- improved Members panel accroding to design
- done bunch of code reviews
- current:
- status-desktop#5181 Display compressed public key in account creation
- should I cover all cases (every possible displayed pubkey) ?
- next:
- status-desktop#5149 Status navbar profile button should use identicon ring and letter identicon instead of identicon
- status-desktop#4544 Improve translation process (don't use qsTrId)
**Pascal**
- done
- Created a few more UI related issues in latest desktop `master`
- current
- Update PRs once again now that linter changes have landed
- next
## March 25th (Friday) - Standup
**Richard**
- done:
- go-waku#222: feat: c-sharp example
- For now it's provided as an example instead of as a library. There are some manual steps in generating the .dll that makes it really hard to create a NuGet package.
- Discussed with @andrey usage of stickerpacks service as well as troubleshooting errors
- Tested nim-waku discV5 PR. Waiting for merge to proceed to update desktop
- current:
- UI for contact verification
- I finished displaying trust status for the user
- I'm currently working on the contact verification dialog
- next:
- status-desktop#5009 Limit Image concurrent requests
- status-desktop#5108 The loader is shown infinitely in the chat
- go-waku: update c-bindings signatures so they match suggestions from RFC
- Improve documentation for go-waku
- fix code review items for status-go#2525 feat: unified chat API pt. 1
**Patryk**
- done:
- status-desktop#4938 New Communities settings
- implemented CommunityView <-> SettingsView switching
- implemented Overview panel
- implemented Edit Community panel with save dirty functionality
- implemented Members panel using current components
- implemented Notifications panel - simple switch
- tested community archives with Pascal - it's cool and it's working fine
- current:
- status-desktop#4938 New Communities settings
- merge current state as first iteration (Stefan needs it)
- improve Members panel accroding to design
- next:
- improve translation process
**Pascal**
- done
- Implemented magnetlink clock handling (needed some fixing)
- Did some testing with Patryk for the community history archive protocol
- Keep udpating PRs from reviews
- Implemented signal handling for community archive history protocol
- current
- About to land PR that adds feature to store waku messages for admin communities
- next
- Get the two outstanding PRs reviewed
- wait for the linter upgrade in status-go
- Do another testing round next week with more people
## March 23rd (Wednesday) - Standup
**Richard**
- done:
- status-desktop#5106 fix: add back missing changes on contacts for display names
- go-waku#215: store timestamp and validity checks
- go-waku#213: domain name configuration
- go-waku: create rfc/documentation for c-bindings
- Working with @fryorckarken on RFC here: https://github.com/vacp2p/rfc/pull/501
- status-desktop#5119 feat: discV5
- Identified an issue in nim-waku: generated ENRs are missing the UDP port
- I tested the discV5 functionality with a local go-waku node. Seems to be okay
- DiscV5 is started on demand by calling wakuext_startDiscV5. Should this happen automatically instead?
- go-waku#220 fix: envelope hash should match messageIdFn hash
- status-go#2603 chore: bump go-waku (includes latest fixes)
- status-desktop#5127 bump status-go to get latest go-waku
- current:
- UI for contact verification
- next:
- Improve documentation for go-waku
- C# example for go-waku c-bindings
- fix code review items for status-go#2525 feat: unified chat API pt. 1
**Pascal**
- done
- Fixed bug in test environment that appdatabase migrations aren't run
- Investigate linter issue on CI
- Update PRs according to feedback
- current
- Wait for linter to be updated by Samuel, then update outstanding PRs again
- Refactor community archive routine to use subscriptions for dispatching messages
- Implement signals on top of subscription model in communities manager
- next
- Prepare test to run through with Patryk
**Patryk**
- done:
- status-desktop#4937 support locking chat input with message containing list of tokens
- done bunch of code reviews and PR discussions
- crypto walkthrough
- current:
- status-desktop#4938 New Communities settings
- overview UI is almost ready
- create members and notifications UI
- fill UI with backend data
- next:
- improve translation process
## March 21st (Monday) - Iteration
**Pascal**
- done:
- finished writing tests for archiev routine
- current:
- Addressing outstanding feedback in pending PRs
- Update pending PRs and aim to land
- next
- Introduce tests for handling magnet links
**Richard**
- done:
- Finished investigating how to fix inertia scroll on Linux.
- This is solved in QT 5.15.8 (will be released in january 2023), or in QT 6.2.0, or using Qt 5.15.x with KDE patches (requires compiling QT)
- Since there's no action item at the time, I suggest to return this task to the icebox
- status-desktop#5106 fix: missing changes on contacts for display name
- go-waku#212 feat: c-bindings for waku relay
- current:
- UI for contact verification
- go-waku#204 Domain name config for go-waku node
- Test DiscV5 on status.test and status.prod
- next:
- Improve documentation for go-waku
- fix code review items for status-go#2525 feat: unified chat API pt. 1
## March 18th (Friday) - Standup
**Richard**
- done:
- status-go#2593 feat: switch fleet
- status-desktop#5081 feat: switch fleet
- status-desktop#5001 refactor: remove history request
- current:
- Fix inertia on scroll on linux
- next:
- UI for contact verification
- Improve documentation for go-waku
- fix code review items for status-go#2525 feat: unified chat API pt. 1
- go-waku#204 Domain name config for go-waku node
**Pascal**
- done:
- Wrote tests for `CreateHistoryArchiveTorrent` API
- Wrote tests for `StartHistoryArchiveTasksInterval`
- Wrote tests for starting/stopping torrent client
- current
- Write more tests for newly introduce APIs in archive routine PR
- next
- ^
- Update pull requests with tests and rebase on top of latest `develop`
**Patryk**
- done:
- completed missing parts for Use Emoji Hash & Identicon Ring aka Iuri findings
- reworked status-go (emoji/color)hash - moved the code from the service into a function, cause it turned out it's needed before client instantiate RPC server
- reworked StatusBaseInput to use Layouts instead of positioners, as it was hard to extend, needed for #4937
- current:
- status-desktop#4937 support locking chat input with message containing list of tokens
- next:
- status-desktop#4938 New Communities settings
## March 16th (Wednesday) - Standup
**Patryk**
- done:
- analyzed and reviewed new cpp structure
- added architecture feedback: https://github.com/status-im/status-desktop/pull/4950#issuecomment-1069020952
- resolved PR discussions for status-desktop#4782 Use Emoji Hash & Identicon Ring in Desktop
- helped Sale investigate CMake issues on Windows related to status-go dll
- current:
- status-desktop#4937 support locking chat input with message containing list of tokens
- next:
- status-desktop#4938 New Communities settings
- complete missing parts for Use Emoji Hash & Identicon Ring aka Iuri findings
**Richard**
- done:
- status-go#2586 Send contact verification request
- Unit tests
- Fix issues found while creating unit tests
- go-waku:#203 Research using webrtc-direct go-libp2p implementation:
- The [repo](https://github.com/libp2p/go-libp2p-webrtc-direct/commits/master) has no important activity since May2021
- It's on Alpha state and probably might have been abandoned
- The [JS repository](https://github.com/libp2p/js-libp2p-webrtc-direct/pulls?q=is%3Apr+is%3Aclosed) also does not have important activity:
- Mentioning this to @fryorkraken. Suggesting to reimplement/get this go-repo up to date (it's not even compatible with latest go-libp2p). He said that the browser ecosystem of LIBP2P is not really developed. He suggest to look at WebTransport
- Test Bridge functionality
- current:
- Fix inertia on scroll on linux
- @iurimatias, should I work on UI for Contact Verification? or on implementing the spec for activity center notifications?
- next:
- fix code review items for status-go#2525 feat: unified chat API pt. 1
- go-waku#204 Domain name config for go-waku node
**Pascal**
- done
- Took a day off yesterday
- current
- Writing tests and integrate code review feedback in pending PRs for community history protocol
- next
- Once tests are written, will add signals
## March 14th (Monday) - Iteration
**Richard**
- done:
- status-go#2586 Send contact verification request
- Send and cancel contact verification request
- Accept and decline requests
- Mark/unmark user as trusted or untrustworthy
- Obtain users and contacts trust status
- current:
- status-go#2586 Send contact verification request
- Create activity center notifications
- Test units
- next:
- fix code review items for status-go#2525 feat: unified chat API pt. 1
- go-waku#204 Domain name config for go-waku node
- go-waku#203 Implement webrtc-direct
**Patryk**
- done:
- status-desktop#4782 Use Emoji Hash & Identicon Ring in Desktop
- current:
- reviewing new cpp-structure
- next:
**Pascal**
- done:
- Put up PR for handling magnetlink messages [#2585](https://github.com/status-im/status-go/pull/2585/files)
- current:
- Go through existing Community History Archive protocols, update according to some feedback and add tests
- next
- Add signals for history archive activities
## March 11th (Friday) - Standup
**Richard**
- done:
- status-go#2583 chore: add status.prod fleet
- status-desktop#5022 chore: add status.prod fleet
- status-go#2579 bump go-waku
- tried to get go-waku with latest libp2p dependencies to work with status-go, but the difference between Go versions (1.16 and 1.17) made this task unsuccesful
- I created issue #2580 to upgrade status-go to 1.17 after the mobile release is done
- status-go#2577 fix: add community status updates channel to list of filters on Init
- fixes message reliability issues on -ping channel
- status-desktop#5019 chore: add qtlottie to aqtinstall parameters (for Windows)
- status-desktop#5011 fix: add qtlottie to linux build
- Worked with @jakubg on adding lottie support to macos CI servers
- status-desktop#5001 refactor: remove history request (STILL ON DRAFT)
- Testing @cammellos PR that improves the initial connetion time for mailservers
- Some new signals were added to his status-go PR which makes me think that we need some changes:
- The connected / disconnected banner should change so it shows when you are connected to at least 1 relay or 1 lightpush peer
- We need some design for indicating the connection status for the mailservers so the user is aware that the history is being retrieved or not <-- @iurimatias
- Discuss @iurimatias proposal for retrieving history from peers
- Rebase status-desktop#4808 (mv stickerpack logic to status-go)
- current:
- status-go#4784 contact verification request
- next:
- fix code review items for status-go#2525 feat: unified chat API pt. 1
- go-waku#204 Domain name config for go-waku node
- go-waku#203 Implement webrtc-direct
**Pascal**
- **done**
- Split up community archive history protocol PRs for easier review
- Had 2 multi hour sessions with Samuel to review code
- Continue implementing handling magnet link
- **current**
- Revise handling magnet link logic as we'll just rely on existing `handleRetreivedMessages` logic
- This means the spec needs to be updated as well
- **next**
- ^
## March 9th (Wednesday) - Standup
**Richard**
- done:
- fix issues reported by @fryorkraken.eth regarding go-waku#201 secure websockets support
- Testing status-go#2512 in desktop
- go-waku#207 chore: nim-waku interop test (fixing an issue with discv5 address advertising)
- Took yesterday's afternoon off
- current:
- status-go#4784 contact verification request
- Investigate mailserver issues
- next:
- fix code review items for status-go#2525 feat: unified chat API pt. 1
- go-waku#204 Domain name config for go-waku node
- go-waku#203 Implement webrtc-direct
**Pascal**
- done
- created updated issues list for community history archive protocol for better tracking
- https://github.com/orgs/status-im/projects/65/views/14?layout=table&filterQuery=assignee%3A%40me+label%3A%22E%3ACommunityHistory%22
- Split up all the work that has been done so far on this into smaller, atomic, PRable commits and sent PRs accordingly
- https://github.com/status-im/status-go/pull/2574
- https://github.com/status-im/status-go/pull/2572
- https://github.com/status-im/status-go/pull/2573
- https://github.com/status-im/status-go/pull/2576
- Handling magnet links still being worked on
- current
- Need to split #2576 into smaller commits/PRs for easier reviewing
- next
- Finish handling magnet link messages
**Patryk**
- done:
- progressed with aligning app to Emoji Hash & Identicon Ring designs
- identicon ring is used in chat content
- identicon ring + emojihash is used in context menus
- current:
- status-desktop#4782 Use Emoji Hash & Identicon Ring in Desktop
- working on qml parts
- next:
## March 7th (Monday) - Iteration
**Richard**
- done:
- go-waku#201 add secure websockets support
- status-go#2560 chore: remove contract function bodies since we only need their signatures
- status-desktop#4969 feat: check for updates (using status-go)
- current:
- status-desktop#4908: fetching messages for the first time takes too long
- I have identified the following scenario:
- Desktop connects to a faulty mailserver
- We send the request to retrieve messages
- The request fails due to a timeout (context deadline exceed). This takes ~45 seconds
- We disconnect from the mailserver, add it to a temporary blacklist, and execute the cycle again. This takes ~10 seconds
- The second mailserver replies correctly
- For desktop, it seems like it took a long time to retrieve the information (50 seconds), but the main problem is that a faulty mailserver is causing the issue. Now the problem is identifying what causes the mailserver to take that long to return messages
- The issue happens also on mobile. @cammellos is working to make the disconnection from the mailserver to not be so eager by having it retry up to 3 times with the same mailserver (which make sense in the context of mobile due to spotty connections), but I fear that this might even increase the time for retrieving messages in desktop in the case of fauly mailservers.
- status-desktop: Using status-go#2512. This probably fixes the issue of not retriving messages when getting back from sleep
- next:
- fix code review items for status-go#2525 feat: unified chat API pt. 1
- fix go-waku DiscV5 enr so it generates the same enr when using the same private key
- go-waku: add direct webrtc support
**Pascal**
- current
- Still investigating torrent download being flaky, recent learnings:
- It actually **is** working, just not reliably. Sometimes, it takes a long time for a torrent client to receive a torrent's metadata
- **Not sure what else to do here anymore, might need some brains from others to chime in**
- Isolating the download routine and make it work with test data until downloading torrent data is reliable.. That way we can at least test and verify functionality of download + database hydration
- Aiming to put out a PR today for review (even though work is not finished)
- next
- ^
**Patryk**
- done:
- status-desktop#4951 Add to API generation of identicon ring
- current:
- status-desktop#4782 Use Emoji Hash & Identicon Ring in Desktop
- implemented nim-side part
- working on qml parts
- next:
## March 4th (Friday) - Standup
**Richard**
- done:
- go-waku: fix: resolve dns4 addresses
- This fix was necessary since now dns addresses are being used in fleets.status.im instead of IPs
- status-go#2557 fix: add missing pubsubtopic to store cursor
- status-go#2553 fix: timestamp conversion from uint64
- Test status.test fleet
- Fixing QA issues for status-desktop#4808 (status-go stickers).
- Determine if the SNT and ENS contracts had errors that could lead to hacks
- current:
- chore: remove smart contract code from status-go
- Test status.test fleet
- The fleet can relay messages, however fetching messages from the storenodes is not working
- status-desktop: fetching messages for the first time takes too long
- status-desktop: use status-go#2552 for checking for new versions
- next:
- fix code review items for status-go#2525 feat: unified chat API pt. 1
- fix go-waku DiscV5 enr so it generates the same enr when using the same private key
- go-waku: add secure websockets support
- go-waku: add direct webrtc support
**Pascal**
- done
- Finished ensuring that archive routines are properly started and stopped for communities when history protocol is enabled/disabled
- Added magnetlink message clock
- Take it into account when receiving magnet link message
- current
- Investigating why downloading the torrent via magnetlink doesn't work anymore
- Something I've experienced today:
- receiving nodes get a magnetlink, add it to their torrent client and wait to receive info from that torrent. This is where we don't get a signal and the routine is stuck
- next
- ^ Figuring that out is crucial
## March 2nd (Wednesday) - Standup
**Richard**
- done:
- status-go#2552 feat: add service for checking if there are new versions available
- Succesful interop tests between nim-waku and go-waku
- Test status.test fleet
- status-desktop#4946 feat: display name (only implemented basic UI changes to show how to set/retrieve/see display names)
- status-go#2541 fix code review items for feat: display name
- status-go#2553 fix: timestamp conversion from uint64
- current:
- go-waku!!!!! adding pubsubTopic to history queries (This change was merged recently and it's required for proper history retrieval)
- Test status.test fleet
- Fixing QA issues for status-desktop#4808 (status-go stickers).
- status-desktop: fetching messages for the first time takes too long
- next:
- status-desktop: use status-go#2552 for checking for new versions
- fix code review items for status-go#2525 feat: unified chat API pt. 1
- fix go-waku DiscV5 enr so it generates the same enr when using the same private key
**Patryk**
- done:
- rebased and merged cpp improvements https://github.com/status-im/status-desktop/pull/4861/
- status-desktop#4736 implement emojihash support on status-go
- finalized emojihash implementation
- current:
- implement colorhash support on status-go
- coming up with the algorithm - saying hello to Combinatorial Algorithms
- next:
- status-desktop#4782 Use Emoji Hash & Identicon Ring in Desktop
**Pascal**
- done:
- Implemented nodeconfig setting to enable/disable community archive protocol
- Implemented community settings for enabling/disabling community archive support for individual communities
- Implemented extension API to enable/disable community history support
- Implemented desktop APIs to enable/disable community archive support
- current:
- Ensure community history tasks are properly started when history supported is enabled globally and for individual communities
- Clean up work
- Still need to hydrate receiver's databases
- next
- Aiming to send a PR by friday
## February 28th (Monday) - Iteration
**Richard**
- done:
- status-desktop#4808: feat: move stickers business logic to status-go
- current:
- status-desktop: Implement UI for display name changes
- status-go: check for updates
- Work with @Ksr from vac team on interop tests fro DiscV5
- next:
- status-desktop: fetching messages for the first time takes too long
**Pascal**
- done:
- Fixed bugs that happened during rebase
- current:
- Introduce desktop and status-go RPC APIs to enable/disable community archive support
- Build UI controls so archives can be created on demand for testing
- next
- Clean up WIP and slice clean commits so a PR can be put up for review
## February 25th (Friday) - Standup
**Richard**
- done:
- status-desktop#4813 Can't close the Experimental modal when buying stickers
- status-go#2545 fix: random mailserver selection when available mailservers is 1
- go-waku#199 fix: extract multiaddress from enode key if available
- Work with @Ksr from vac team on setting up a test fleet for DiscV5
- current:
- status-desktop: Buy stickers using the new stickers API (about to finish this task)
- status-desktop: Implement UI for display name changes
- next:
- status-desktop: move logic for checking for new updates to status-go
**Pascal**
- done
- Implement `NodeConfig` for `TorrentConfig` and build migration script
- Rebase work on top of latest status-go develop
- current
- Investigate bugs I'm experiencing after rebase
- next
- ^
## February 23th (Wednesday) - Standup
**Richard**
- done:
- status-go#2541 feat: display name
- Modifying unencrypted accounts.db so a display name change affects also the login screen name
- As suggested by @cammellos, I changed the PR to use a ChatIdentity to notify display name changes instead of ContactUpdate
- status-go#2545 fix: random mailserver selection when available mailservers is 1
- This should be reviewed/merged soon.
- Fixes a random crash that can happen under certain network conditions
- go-waku#197 fix: race condition in unsubscribe
- current:
- status-desktop#4813 Can't close the Experimental modal when buying stickers
- next:
- status-desktop#??? Implement UI for display name changes?
**Pascal**
- done
- Handle magnet link messages
- Ignore messages not originating from community
- Ignore messages originating from owned communities
- Extract metadata from magnetlink and download new index file
- Calculated data pieces to be downloaded and download them
- Store message archive hashes
- Seed downloaded data pieces
- current
- Implement config options for status-go node so torrent/community archive history support can be enabled/disabled and ports can be configured
- Hydrate data base with messages retrieved from archives
- next
- Check scenarios in which community history need to be started/stopped
- Joiniing communities
- creating communities
- leaving communities
- All of those as owner and members
- Rebase work on top of latest status-go/status-desktop
**Patryk**
- done:
- added bunch of improvements to src-cpp https://github.com/status-im/status-desktop/pull/4861/
- investigated Unicode® Technical Standard #51 to obtain correct emojis set
- investigated Unicode version support for Qt5/6 (Qt6 - unicode v13)
- seems there is a solution to compatibility/font family issues - by using images and emoji.parse() that translates unicode to image
- we should deploy emoji assets to every platform, so that desktop, mobile, web emojihash don't differ
- current:
- status-desktop#4736 implement emojihash support on status-go
- finalizing standalone implementation
- next:
- move emojihash go implementation to status-go
## February 21th (Monday) - Iteration
**Richard**
- done:
- go-waku#188 fix: broadcaster blocked after publishing 1024 messages !!!!!!!!!!!!!!!!
- go-waku#196 feat: use d5waku as ProtocolID for DiscV5
- go-waku#195 fix: remove references to fleets.status.im
- go-waku#194 fix: flag naming inconsistency
- go-waku#193 fix: remove public key
- go-waku#192 chore: upgrade outdated dependencies
- Can't be merged because status-go uses go 1.16, and latest libp2p lib seems to use 1.17
- status-go#2544 feat: adding status.test fleet
- status-go#2543 chore: bump go-waku !!!!!!!!!!!!!!!!
- status-desktop#4849 feat: add status.test fleet
- status-desktop#4848 chore: bump status-go !!!!!!!!!!!!!!!!
- This needs to be merged to master, and used for dogfooding (otherwise desktop/mobile stops receiving messages after it received 1024)
- current:
- status-go#2541 feat: display name
- Modifying unencrypted accounts.db so a display name change affects also the login screen name
- status-go#2452 refactor: remove identicons
- Fix code review issues in status-go#2463 Send a contact advertisement when the profile picture is removed
- next:
- status-desktop#4813 Can't close the Experimental modal when buying stickers
- status-desktop#??? Implement UI for display name changes?
**Pascal**
- done:
- current:
- Working on handling magnet link messages
- Ensure messages are ignored if originated from admin communities or if signature doesn't match a joined community
- Download torrent
- Download archive index, determine data pieces to be downloaded
- Download data pieces, then start seeding
- next
- Hydrate chat messages db with archive messages
- Ensure metadata about already downloaded archives is persisted
**Patryk**
- done:
- learned go-lang basics
- done investigation of src-cpp after https://github.com/status-im/status-desktop/pull/4831
- 2late into the party of review, doing corrections by my own
- current:
- doing bunch of improvements to src-cpp
- status-desktop#4736 implement emojihash support on status-go
- migrating emojihash python version to go
- next:
## February 18th (Friday) - Standup
**Richard**
- done:
- status-go#2541 feat: display name
- status-go#2542 refactor: remove identicons
Should the login screen display the contact name too and hide the identicon? if so, these PRs need to be updated
- current:
- go-waku#???: implement timestamp change from [nim-waku](https://github.com/status-im/nim-waku/pull/842/)
- go-waku#185: broadcaster blocked after publishing 1024 messages
- go-waku#80: inconsistent naming of flags compared to nim-waku
- next:
- Fix code review issues in status-go#2463 Send a contact advertisement when the profile picture is removed
- status-desktop#4813 Can't close the Experimental modal when buying stickers
- status-desktop#??? Implement UI for display name changes?
**Pascal**
- done:
- Finished implementing seeding of generated torrents
- Implement magnetlink message dissemination
- current:
- Handle magnetlink message
- Ignore if it originates from communities that the account owns
- Download archive index and fetch archive data pieces for others
- next:
- ^
**Patryk**
- done:
- finalized Identity Visual Representation specs
- current:
- status-desktop#4736 implement emojihash support on status-go
- learning go
- next:
## February 16th (Wednesday) - Standup
**Pascal**
- done
- Finish up routine that creates torrents from archive data
- current
- Implement torrent seeding for archives
- Needs to work with multiple communities
- next
- Implement magnet link message dissemination
**Richard**
- done:
- Investigate and fix crash that happened when you accepted a community request to join:
- It was a debug log (ironic...)
- status-go#2538 fix: remove notification from debug log
- current:
- status-desktop#4808 feat: move stickers business logic to status-go
- Replaced code to send stickers, add stickers to recent list, display recent stickers and estimate gas of buying a pack
- I paused the development of this task because I need to fix issue #4813 that does not let me continue with the buy process:
- status-go: display names
- Working on allowing the user to set their username
- After discussion on #desktop channel, community rules related to username duplication are de-scoped
- next:
- status-desktop#4813 Can't close the Experimental modal when buying stickers
- Fix code review issues in status-go#2463 Send a contact advertisement when the profile picture is removed
**Patryk**
- done:
- wrote draft Identity Visual Representation specs, with parameter calculations (emoji set length, etc.)
- got back to school, to remind myself combinatorics..
- spent plenty of time participating (and analyzing) in discussions about StatusQ Components and identicon ring theming
- participated in design walkthrough meeting
- current:
- continue on Identity Visual Representation specs
- write specs for process/algorithm of generating emojihash
- next:
- status-desktop#4736 implement emojihash support on status-go
- status-desktop create clone of status-react#10325 Request compressed keys
- followup for status-desktop#4656 replace legacy StatusInputListPopup with new StatusSearchListPopup (it will probably also require fixing bug related to not working emojis suggestions)
- status-go implement emojihash
## February 14th 💕 (Monday) - Iteration
**Richard**
- done:
- Figure out with Anthony how to create macros in nim to simplify calling rpc methods:
- We learned that the following macros are useful:
- `dumpTree:`` to see the AST of the function that we want to build
- `astGenRepr:`` to see the nim proc calls we need to do to create a macro for some function
- Initial work for the macro can be seen here https://gist.github.com/richard-ramos/697f020851cba607b5c40054fd48bfda
- status-go#2535 feat: unified chat API pt. 3
- Created the following RPC methods
- chat_sendSticker
- chat_sendMessage (this function will automatically determine if the content type is Emoji or PlainText)
- chat_sendImages
- chat_sendAudio
- Fix signature of renameChat/addMember/removeMember/kickMember/makeAdmin
- status-go#2518 feat: stickerpacks service
- During integration with status-desktop, I found out that CloudFlare rate limits us when sending a high number of concurrent requests. Added code to limit the max number of concurrent go-routines for fetching sticker information from IPFS, and just in case, I did the same for contract calls
- current:
- status-desktop: replace stickerpack code with calls to status-go
- I already replaced loading stickers from the smart contract, install stickers, and uninstall stickers
- Currently working on sending stickers, adding stickers to recent list
- Next I'll replace code for buying stickers
- next:
- Fix code review issues in status-go#2463 Send a contact advertisement when the profile picture is removed
- Display names
**Patryk**
- done:
- done some code review
- learned about deterministic hierarchical wallets (BIP-39, BIP-32, BIP-44)
- current:
- write specs for process of generating emojihash and identicon from compressed PK
- next:
- status-desktop#4736 implement emojihash support on status-go
- digging deeper, probably first I will need to implement compressed keys (UI) in status-desktop
- status-desktop create clone of status-react#10325 Request compressed keys
- followup for status-desktop#4656 replace legacy StatusInputListPopup with new StatusSearchListPopup (it will probably also require fixing bug related to not working emojis suggestions)
- status-go implement emojihash
- status-go implement identicon ring
**Pascal**
- done
- Reviewed/merged a bunch of StatusQ PRs
- Put out a new StatusQ release
- current
- Picked up from where I stopped last week before getting sick
- Creating protobufs for `WakuMessage`, `WakuMessageArchive`, `WakuMessageArchiveMetadata` and `WakuMessageArchiveIndex`
- Implement padding calculation for archives
- Write archive data to disk so torrents can be created from that
- next
- Generate torrent from generated archive data
- Write routine to seed new torrent and cancel previous ones
## February 11th (Friday) - Standup
**Richard**
- done:
- status-go#2531 feat: unified chat API pt. 2
- chat_getMembers
- chat_startGroupChat
- chat_createOneToOneChat
- chat_createGroupChat
- chat_createGroupChatFromInvitation
- chat_leaveGroupChat
- chat_confirmJoiningGroup
- chat_changeGroupChatName
- chat_sendGroupChatInvitationRequest
- chat_getGroupChatInvitations
- chat_sendGroupChatInvitationRejection
- chat_addMembersToGroupChat
- chat_removeMemberFromGroupChat
- chat_addAdminsToGroupChat
- status-go#2525 feat: unified chat API pt. 1
- chat_getChat
- chat_getChats
- current:
- status-go#0000 feat: unified chat API pt.3
- Implement renameChat/addMember/removeMember/kickMember/makeAdmin
- Document RPC methods
- next:
- Use status-go stickers service in desktop
- Fix code review issues in status-go#2463 Send a contact advertisement when the profile picture is removed
- Display names
**Patryk**
- done:
- learned about ECDSA SECP256k1 and bitcoin address generation
- learned about pk's compression, found/analyzed past discussions -> https://github.com/status-im/status-go/issues/1937 and specs -> https://specs.status.im/spec/2#public-key-compression-rationale
- discussed compressed keys with John
- "Feel free to mentioned that you've discussed with me, and that IMHO we should use the maximally compressed version of the user's chat key everywhere (QR codes, in the UI, in URLs, etc..) but that all chat key inputs must still accept uncompressed keys as well as compressed keys"
- "so needed the compressed key is relevant to the emoji hash and identicon ring generation. All the other stuff is other changes we need to make. Prob best. to open Status Desktop issues for all the other parts of the compressed key change, and then get back to focusing on the emoji hash and identicon ring generation"
- current:
- status-desktop#4736 implement emojihash support on status-go
- digging deeper, probably first I will need to implement compressed keys (UI) in status-desktop
- next:
- status-desktop create clone of status-react#10325 Request compressed keys
- followup for status-desktop#4656 replace legacy StatusInputListPopup with new StatusSearchListPopup (it will probably also require fixing bug related to not working emojis suggestions)
- write specs for ~~public key id compression and~~ process of generating emojihash and identicon ring from it
- ~~status-go implement public key compression~~
- status-go implement emojihash
- status-go implement identicon ring
## February 9th (Wednesday) - Standup
**Richard**
- done:
- status-desktop#4761 feat: use http server for images and identicons
- status-go#2522 feat: wakuext_imageServerUrl
- dotherside#56 feat: dos_add_self_signed_certificate
- status-desktop#4755 fix: continue showing loading indicator when store fetching failed
- current:
- status-desktop#4735 implement new getChats API in status-go
- next:
- Use status-go stickers service in desktop
- Fix code review issues in status-go#2463 Send a contact advertisement when the profile picture is removed
**Pascal**
- done:
- Finished implementing routine and extending APIs to have communities owner nodes request and fetch waku messages that were possibly missed since the last time they were online
- Did some extensive testing that this works reliably and deterministically
- current
- Update calculation for archive creation loop to take latest fetched messages into account
- next:
- Integrate prior torrent creation work into archive creation loop to actually create archive objects and then write torrent files to disc
**Patryk**
- done:
- status-desktop#4656 make ctrl+k display chats from communities [in review]
- introduced new dialog Component based on StatusQ elements (now also sectionName is displayed on the list, to get the context of the Chat)
- removed trailing whitespaces from project sources
- participated in various meetings
- current:
- status-desktop#4736 implement emojihash support on status-go
- analyzing the topic now
- next:
- followup for status-desktop#4656 replace legacy StatusInputListPopup with new StatusSearchListPopup (it will probably also require fixing bug related to not working emojis suggestions)
- write specs for public key id compression and process of generating emojihash and identicon ring from it
- status-go implement public key compression
- status-go implement emojihash
- status-go implement identicon ring
## February 7th (Monday) - Iteration
**Richard**
- done:
- Fixed issues found during QA for status-desktop#4657 refactor(communities): sort categories and chats
- Attempted to fix issue found during QA for status-desktop#4646 (delete categories).
- **I could not reproduce it, so help is appreciated**.
- Here's a video of the problem: https://www.loom.com/share/38e426c214d34e1b86e9aec19e9fb8b4
- status-go#2518 feat: stickerpacks service
- Created the following RPC methods:
- "stickers_recent" - Retrieve the list of recent stickers
- "stickers_addRecent" - Adds a sticker to the recently used list
- "stickers_pending" - Gets the list of stickerpacks pending confirmation
- "stickers_removePending" - Removes a stickerpack from pending list
- Refactor code, and fix code review items
- current:
- status-desktop#4733 Continue showing loading indicator when a store node fetching failed but will be retried again
- next:
- status-desktop#4735 implement new getChats API in status-go
- Use status-go stickers service in desktop (?)
- Fix code review issues in status-go#2463 Send a contact advertisement when the profile picture is removed
**Pascal**
- done:
- Implement API to fetch waku messages from DB by community filters and process them in partitioned batches based on `from`, `to` and `partition` timestamps/durations
- Implemented API channel API to subscribe to mailserver availability events
- current:
- Implementing routine to fetch missed messages while status node was online
- next
- Make missed messages and partition routine work nicely so we can tackle creation of torrents and seeding next
**Patryk**
- done:
- fixed jenkins master branch build issue (fcitx5-qt) - jenkins (linux-01) cached invalid docker image
- current:
- status-desktop#4656 make ctrl+k display chats from communities [in review]
- adding ton of improvements after code review
- next:
- status-desktop#4736 implement emojihash support on status-go
## February 4th (Friday) - Standup
**Richard**
- current:
- status-go#2518 feat: stickerpacks service
- Created the following RPC methods:
- "stickers_getAll" - Retrieves sticker packs from the smart contract and indicates their status (purchased / installed)
- "stickers_installed" - Retrieves installed sticker packs
- "stickers_install" - Installs a sticker pack
- "stickers_uninstall" - Uninstalls a sticker pack
- "stickers_buy" - Sends a transaction to buy a sticker pack
- "stickers_buyEstimate" - Returns the gas required to buy a sticker pack
- I'm currently working on the test unit for the api
- Fixing issues found during testing of
- status-desktop#4646 refactor(communities): delete categories
- status-desktop#4657 refactor(communities): sort categories and chats
**Pascal**
- done
- Store admin community messages as waku messages
- Implement APIs to extract waku messages by topics and time range
- current
- Implement message archive partitioning routine
- next
- Fetch missed messages for admin communities from store nodes and store as waku message
- introduce protocol buffers for waku message history archives
**Patryk**
- done:
- done bunch of code reviews (group chat issues related)
- participated in 2h Desktop design walkthrough
- current:
- status-desktop#4656 make ctrl+k display chats from communities [in review]
- investigate post base_bc->master merge build issue (fcitx5-qt)
- next:
- ??
## February 2nd (Wednesday) - Standup
**Richard**
- done:
- status-desktop#4425 Initial commit for C++ app
- figure out why it wasn't building when using Release instead of debug
- figure out extra steps required for conan (steps added to the README.md)
- status-desktop#4656 refactor(communities): edit categories
- status-desktop#4646 refactor(communities): delete categories
- status-desktop#4643 set correct commits for PR#4622 refactoring/final cleaning
- status-lib#176 refactor(communities): add back reorderCommunityChat function
- status-lib#173 refactor: add categoryId when creating a community channel
- rebase:
- status-desktop#4425 Initial commit for C++ app
- status-desktop#4657 refactor(communities): sort categories and chats
- status-desktop#4630 refactor: removing mailserver controller and model QA
- current:
- status-go: move stickerpack code logic from desktop
**Pascal**
- done
- Implement scheduler routine for periodic community archive creation
- current
- Store admin community messages as waku messages for archive generation ([#2515](https://github.com/status-im/status-go/issues/2515))
- next
- Implement APIs to extract waku messages by community to prepare for archive bundling
**Patryk**
- done:
- gone through https://github.com/status-im/status-desktop/pull/4316
- investigated rcc issue with Conan
- discussed stores/modules/models usage in current QML archtitecture with Alexandra
- current:
- status-desktop#4611&4612 - group admin context menu issues
- next:
- add wiki page about Conan-CMake best practices
## January 31th (Monday) - Iteration
**Patryk**
- done:
- status-desktop#4430 add linter clang-tidy
- added IDE integration description https://hackmd.io/@tvcxYXntQVCosMs79UIszw/rJxhcBHCY
- created new story https://github.com/status-im/status-desktop/issues/4640
- current:
- ??
- next:
- add wiki page about Conan-CMake best practices
**Richard**
- done:
- status-desktop#4630 refactor: removing mailserver controller and model
- status-desktop#4639 refactor(communities): create channel in category
- current:
- status-desktop: edit categories
**Pascal**
- done
- Released StatusQ v0.22.0
- current
- Changing "special" channel mechanism as per Cammellos suggestion
- Introduce new application metadata message type
- Teach status-go to understand new message type
- next
- ^
## January 28th (Friday) - Standup
**Patryk**
- done:
- status-desktop#4429 add Conan package manager
- status-desktop#4428 add dependency injection framework (google fruit)
- status-desktop#4436 chinese input issue
- current:
- OOO sick
- next:
- add wiki page about Conan-CMake best practices
**Richard**
- done
- status-go#2504 fix: file not found error when logging in due to not finding migrations files.
- This was a super urgent fix, because otherwise it would not have been possible to easily create new migrations
- status-desktop#4606 feat(communities): create categories
- current
- status-desktop: edit categories
- next:
- Pinning mailservers on base_bc
**Pascal**
- current
- Implemented a first version of special channel in communities
- Worked on persisting it and building migration script
- Cammellos mentioned that such a migration isn't needed as special channel doesn't need to be persisted in DB
- Reworking magnetlink channel changes to without the need of db persistence
- next
- Ensure status nodes ignore messages from special channels if they aren't sent by community owner
- Still need to update community settings PR according to Richard's comments
## January 26th (Wednesday) - Standup
**Patryk**
- done:
- read Conan docs with focus on consuming packages
- done part of (general and requirements) jfrog academy course about Conan
- learned Conan-CMake integration best practices
- integrated Conan's qt/6.2.2 with origin/cpp
- reported bug: https://github.com/conan-io/conan-center-index/issues/9092
- reported bug: https://github.com/conan-io/conan-center-index/issues/9087
- current:
- finalizing:
- status-desktop#4429 add Conan package manager
- status-desktop#4428 add dependency injection framework (google fruit)
- adapt origin/cpp to Qt6
- waiting for approval:
- status-desktop#4436 chinese input issue [in review]
- next:
- extend README.md CPP app section
- add wiki page about Conan-CMake best practices
- status-desktop#4539 can't edit community channel (base_bc)
**Richard**
- done:
- status-desktop#4570 fix communities channel positions
- rebase and merge open PRs
- current:
- Fixing issue with status-go nodeconfig migration that is making it hard to create new migrations
- next:
- Pinning mailservers on base_bc
**Pascal**
- done
- implemented tests for community settings PR
- Reviewed PRs
- current
- Add support for "special" channel in communities
- next
- Update communinty settings PR as per Richards comments
- Look into why relogin doesn't work
## January 24th (Monday) - Iteration
**Patryk**
- done:
- investigate how translations are done in status-desktop, proposed improvement: https://github.com/status-im/status-desktop/issues/4544
- current:
- status-desktop#4436 chinese input issue [in review]
- status-desktop#4429 add Conan package manager
- next:
- status-desktop#4428 add dependency injection framework (google fruit)
**Pascal**
- done:
- Reviewed PRs
- Released StatusQ [v0.21.0](https://github.com/status-im/StatusQ/releases/tag/v0.21.0)
- Reworked newly introduced communities settings in status-go to be based on separate SQLite table
- Also ensures settings update updated on community join/update/leave
- PR: [#2500](https://github.com/status-im/status-go/pull/2500)
- Addresses: [#2495](https://github.com/status-im/status-go/issues/2495)
- current:
- Write tests for #2500
- Next:
- **Investigate issue why I can't relogin to Status Desktop**
- Pick task from Community History Archive Roadmap
## January 21th (Friday) - Standup
**Richard**
- done:
- status-go#2497 chore: increase mailserver request timeout
- status-go#2496 split mailserver batchs in 24h parts [experiment]
- status-desktop#4502 feat: set default sync period to 30 days for new accounts
- status-desktop#4506 fix: registerEns parameter order
- status-desktop#4498 fix: display loading indicator depending on mailserver request status
- status-desktop#4509 chore: add wakuv2prod fleet config
- current:
- on holiday :)
**Patryk**
- done:
- participated in 'Status product strategy' meeting
- participated in 'Desktop QML architecture' meeting by Alexandra
- conducted C++/Qt interview
- done some code reviews
- current:
- status-desktop#4429 add Conan package manager
- status-desktop#4436 chinese input issue
- couldn't reproduce on Ubuntu with standard input method
- setting up linux VM with i3-wm and google pinyin fcitx to reproduce exact env
- providing fix
- updating docker environment..
- next:
- status-desktop#4428 add dependency injection framework (google fruit)
**Pascal**
- done
- Reviewed a bunch of pull requests
- Landed a few new components in StatusQ
- Updated community history archive MVP spec draft PR
- Managed to make [#2495](https://github.com/status-im/status-go/issues/2495) work, but need to rework it
- Buddy call with Marco (status-react team)
- current
- Reworking [#2495](https://github.com/status-im/status-go/issues/2495) to use a separate sqlite table for `communities_settings` instead of storing the settings as a blob in `settings`
- Ran into a few issues creating that table and worked on making sqlcipher + debugging work
- next
- Once [#2495](https://github.com/status-im/status-go/issues/2495) works for a separate table, need to ensure that it's updated when users are invited/joined/kicked from communities
## January 19th (Wednesday) - Standup
**Patryk**
- done:
- status-desktop#4404 sending images not working (base_bc)
- current:
- status-desktop#4429 add Conan package manager
- status-desktop#4436 chinese input issue
- couldn't reproduce on Ubuntu with standard input method
- setting up linux VM with i3-wm and google pinyin fcitx to reproduce exact env
- next:
- status-desktop#4428 add dependency injection framework (google fruit)
**Pascal**
- done:
- Put out an initialy roadmap/tasks to build the Community History Archive support step by step
- Updated the draft spec as per review comments
- Reviewed some Pull requests
- Setup Status Desktop on my linux machine
- current:
- Started implementing community settings in status-go ([#2495](https://github.com/status-im/status-go/issues/2495))
- next
- Create special magnet link channel in new and existing communities
**Richard**
- done:
- go-waku#184 feat: add WithLogger option to wakunode
- go-waku#183 feat: result aggregation in resume and enforce max page size in history requests
- status-go#2494 chore: bump go-waku
- current:
- Retrieve 30d of mailserver history
## January 17th (Monday) - Iteration
**Pascal**
- done:
- Finished second iteration of spec draft for Community History problem MVP (https://github.com/status-im/specs/pull/164)
- current
- hungry
- next:
- Probably come up with rough roadmap to implement MVP?
**Patryk**
- done:
- status-desktop#4400 ensure new password is confirmed
- status-desktop#4414 transfer community private key field is empty (base_bc)
- getting familiar with backend (Nim) architecture (explained by Sale)
- current:
- status-desktop#4404 sending images not working (base_bc) [in review]
- next:
**Richard**
- done
- On sick leave on friday
- current:
- go-waku: receive logger from status-go
- status-desktop: Fix group chats in base_bc (?)
## January 14th (Friday) - Standup
**Patryk**
- done:
- getting familiar with 'QML Core UI' architecture
- extend 'QML UI' notes with information about `property var globalUtilsInst: globalUtils` convention
- current:
- status-desktop#4400 ensure new password is confirmed [in review]
- status-desktop#4414 transfer community private key field is empty (base_bc) [in review]
- getting familiar with codebase and Nim
- next:
- status-desktop#4404 sending images not working (base_bc)
**Richard**
- done:
- status-go#2489 feat: verify if mailserver is pinned in cycle (only for master, base_bc is missing)
- status-go#2488 fix: nodeconfig unmarshaling (emergency fix because status-react didn't work)
- status-go#2486 fix: mailserver response time (issue was causing desktop to crash on windows)
- status-desktop#4459 fix: pinned mailservers (master)
- current:
- status-desktop: Fix group chats in base_bc
- next:
- go-waku: receive logger from status-go (since currently it only prints it to the terminal instead of adding the logs to the logfile)
**Pascal**
- done
- Reviewed a bunch of PRs
- Reviewed new StatusQ issues for new components and added more context/info
- current
- Still writing/updating the Community History Problem MVP spec
- next
- ^
## January 12th (Wednesday) - Standup
**Patryk**
- done:
- current:
- status-desktop#4400 ensure new password is confirmed (in review)
- getting familiar with codebase and Nim
- next:
- status-desktop#4404 sending images not working (base_bc)
- status-desktop#4414 transfer community private key field is empty (base_bc)
**Richard**
- done:
- Login and Onboarding (not including importing an account with a mnemonic) in Status C++ App: https://github.com/status-im/status-desktop/compare/refactoring/base_bc...cpp?expand=1
1. We need to determine the settings for the autoformatter (there is a .clang-format file there, but dunno if we'll be okay with the defaults i used)
2. Are we going use a dependency manager like Conan?
3. Are we going to use Ninja? Meson? or just plain old cmake (current branch uses cmake)
4. I tried to use std::shared_ptr instead of raw pointers, but some functions pass this and when you have multiple inheritance, it becomes a pain using shared_ptr without templates, and it could probably make the code harder to understand
5. Headers: Some people prefer to put them right besides the source, and others in a include folder. I have a not so healthy mix of both options. We should discuss what we are going to use
6. Should we use a dependency injection framework like google fruit? or is it an overkill?
7. With this branch, we are able to generate new accounts, and login, with login in this case meaning that the following will be printed in the console: `TODO: init services and load main module`. This is because I did not implement a mainModule. I think it should take at least 1hr to implement it, so the login looks like it worked by switching to the main section of the app.
8. We should discuss what learnings we obtained from the new nim architecture. This is a good moment to simplify / improve the architecture, as well as decide on proper error handling. (Dunno if C++ has Option / Result like Rust. It would be cool if we could use that)
9. No idea if this works on mac without changes. I'll try to figure it out.
- current:
- status-desktop issues assigned to me
- status-go: add pinned mailservers logic to mailserver_cycle
- next:
- status-cpp-app: create empty mainModule
- go-waku: receive logger from status-go (since currently it only prints it to the terminal instead of adding the logs to the logfile)
**Pascal**
- done
- Community History MVP
- Figured out how to publish updated archive torrents and have receiving torrents download only the missing pieces, then parse data back into protobuf
- Conclusion:
- The idea of publishing a single torrent per archive update, which includes the entire history, works
- It also includes an `index` to have clients figure out what missing pieces need to be loaded
- current
- Update the draft specification to account for this new idea/solution and then get another round of reviews
- next
- Create rough roadmap for feature to be implemented in status-go
## January 10 (Monday) - Iteration Meeting
**Richard**
- done:
- status-go#2481 feat: desktop mailserver cycle
- It was identified that the mailserver cycle stopped running when a machine was suspended
(i.e. closing a laptop and opening it again), and for some reason it did not run again.
Using status-go instead of nim for the mailserver cycle fixes it.
- A connection change now triggers the mailserver cycle when going from offline to online
- status-lib#157 refactor: mailserver_cycle (base_bc)
- status-desktop#4387 refactor: mailserver_cycle (base_bc)
- status c++ - creating simple app with account generation and login
- Handle .qrc file generation as part of the make process
- Link against status-go/keycard/qrcodegenerator app
- Formatted logging
- Signal manager code
- current:
- off today due to holiday!
- status c++ - creating simple app with account generation and login
- onboarding
- next:
- go-waku: receive logger object
- status-go: handle pinned mailservers as part of mailserver-cycle
**Pascal**
- done
- Continued with proof of concept for Community history archives
- built scripts to
- create dummy archives
- create torrents from those archives
- seed torrents
- current
- build script to download (pieces) of given torrent to proof our idea works
- next
- Finish up proof of concept
- Revisit spec draft and update (address feedback comments)
### January 7 (Friday) - Iteration Meeting
**Richard**
- done:
- status-go#2481 feat: desktop mailserver cycle
- status-lib#156 refactor: mailserver cycle
- status-desktop#4380 refactor: mailserver cycle
- current:
- status c++ - creating simple app with account generation and login
- I can currently build an executable that uses status-go and uses the same resources as the nim app
- I'm working on the signal handler code and generating the .qrc file as part of cmake. (Currently i have to execute `make resources.rcc` first instead of having that being part of cmake). Once I get that done, I'll continue with the account generation
- next:
- go-waku: receive logger object
- status-go: handle pinned mailservers as part of mailserver-cycle
**Pascal**
- current:
- Building a proof of concept program for the community history problem
- This entails a few things
- Create dummy archives (**done**)
- Create torrents from dummy archives (**done**)
- ensure archives create reproducible "padded" pieces
- Create script to seed torrents via bittorrent (**WIP**)
- Investigate torrent piece completion storage handling
- Download dummy archives via seeded torrents in separate process (**NEXT**)
- Investigate file piece handling and try to make downloader smart enough to reuse pieces across torrents
### January 5 (Wednesday) - Iteration Meeting
**Richard**
- done:
- Review tasks required for Waku2 production readiness
- current:
- Moving mailserver cycle from nim to status-go
- Most of the migration is complete (with Waku1), I'm currently adding the code for setting a mailserver into a temporary blacklist if there are problems communicating with it, as well as adding the Waku2 specific functions.
- next:
- C++ app
### January 3 (Monday) - Iteration Meeting
**Richard**
- Back from holidays
**Pascal**
- done:
- current: