block / block/buzz

Mobile: forum channels are not rendered, community name is not editable, no feature-flag screen, avatars read-only

Open
#6,766 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
32.7k
Forks
4.3k
Avg merge
1d 13h
Merged PRs (30d)
253

Description

I set up a self-hosted relay and use Buzz across desktop and iOS. Several things are reachable only from the desktop app, and the gaps compound: some of them cannot be worked around from the phone at all, and one of them is not fixable from anywhere.

**Forum channels do not appear in the mobile channel list.**

`mobile/lib/features/channels/channels_page/body.dart` builds the list from two filters:

```dart
final streamChannels = visibleChannels.where((channel) => channel.isStream).toList();
final dmChannels = sortDmChannelsByDisplayLabel(
visibleChannels.where((channel) => channel.isDm), currentPubkey: currentPubkey);
```

There is no forum branch. `Channel.isForum` exists in `channel.dart` and `_channelTypeOrder` in `channels_provider.dart` already ranks `forum` between `stream` and `dm`, so the model layer is ready and only the UI is missing. I confirmed my account is a member of the forum channels and they render fine on desktop.

I had organised my main working channels as forums specifically for the threaded structure, and discovered they were invisible on the device I use most. I converted them to streams, which loses thread-first behaviour.

**Community name cannot be changed on mobile, and is derived from the hostname.**

`Community.nameFromUrl` in `mobile/lib/shared/community/community.dart` takes the first label of the host:

```dart
final parts = host.split('.');
if (parts.length > 2) return parts.first;
```

Desktop has `CommunityEditForm` and stores a local label; mobile has no equivalent UI, so the two clients show different names for the same community and the mobile one cannot be corrected. Re-pairing does not carry the desktop label across. The only lever is renaming the host, which rebinds the community and means recreating channels and membership.

**Feature flags are desktop-only.** `preview-features.json` gates `forum`, `projects`, `pulse`, `workflows` and `agentManagedProfiles`, all defaulting to off, and the Experiments screen exists only on desktop. Enabling something on desktop has no effect on the phone, and there is no way to discover this from the phone.

**Profile avatars are read-only on mobile.** `mobile/lib/features/profile/` renders avatars but has no picker or upload path, so a user with only a phone cannot set their own picture.

Taken together, a phone-only user cannot set their display picture, correct their community name, enable preview features, or see forum channels. I understand mobile is behind desktop by design, but the hostname-derived community name in particular has no workaround at any layer, so I wanted to flag it separately from the general parity gap.

Happy to split any of these into their own issues if that is easier to track.

**Environment**: iOS app from the App Store, desktop 0.5.18, self-hosted relay `ghcr.io/block/buzz:main`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.