Skip to content

feat(3155): Add private channels with modifiable membership (no removals) to desktop#3177

Open
islathehut wants to merge 70 commits intodevelopfrom
feat/3155-private-channels
Open

feat(3155): Add private channels with modifiable membership (no removals) to desktop#3177
islathehut wants to merge 70 commits intodevelopfrom
feat/3155-private-channels

Conversation

@islathehut
Copy link
Copy Markdown
Collaborator

@islathehut islathehut commented Apr 3, 2026

Pull Request Checklist

  • I have linked this PR to a related GitHub issue.
  • I have added a description of the change (and Github issue number, if any) to the root CHANGELOG.md.

(Optional) Mobile checklist

Please ensure you completed the following checks if you did any changes to the mobile package:

  • I have run e2e tests for mobile
  • I have updated base screenshots for visual regression tests

islathehut and others added 30 commits January 12, 2026 09:32
…nit since we can start initialization via qss or libp2p events
this.socketService.emit(SocketEvents.USERS_UPDATED, { users })
this.emit('updated')
private handleChainUpdate = async () => {
this.emit(SigchainEvents.UPDATED)
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to move the USERS_UPDATED logic out of the sigchain service and into the connection manager because I had to pull channel data to map role names to channel ids/names. To obfuscate membership and hide private channel names from non-members (and QSS) the role names are deterministically generated from channel IDs but aren't decodable without already knowing the channel ID itself. To determine channel membership we have to pull the private channels from the channel metadata DB and match the two. Since storage has the sigchain as a dependency I couldn't just pull it in as a dependency here so the logic had to be moved.

@islathehut islathehut marked this pull request as ready for review April 14, 2026 18:18
@holmesworcester
Copy link
Copy Markdown
Collaborator

@islathehut I found a few superficial design issues on desktop and I think fixed them in this branch (off of your PR branch): https://github.com/TryQuiet/quiet/tree/fix/private-channel-icons

There might be similar issues on mobile. Can you address them on mobile while you're finishing that?

@islathehut islathehut requested review from adrastaea and mcginty April 15, 2026 15:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Users should be able to create a private channel

2 participants