Mobile: forum channels never appear in the Home channel list (no Forums section)
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 85/100
Research direction
Start with mobile/lib/features/channels/channels_page/body.dart and mobile/test/features/channels/channels_page_test.dart, then inspect channel.dart:77 and the desktop Forums section for context. Confirm the existing forum fixture and assertions, and consider the work complete when forum channels appear in a dedicated Home section and the channel page tests pass with updated expectations.
Written by the indexing model from the issue text.
Description
Summary
Mobile renders forums fully, but forum channels are never listed on the Home channel list, so there is no way to discover or reach a forum from the main screen. Desktop has a dedicated "Forums" section; mobile has none.
Where it comes from
mobile/lib/features/channels/channels_page/body.dart builds exactly two lists and drops everything else:
final visibleChannels = channels
.where((channel) => channel.isMember && !channel.isArchived)
.toList();
final streamChannels = visibleChannels
.where((channel) => channel.isStream) // → "Channels"
.toList();
final dmChannels = sortDmChannelsByDisplayLabel(
visibleChannels.where((channel) => channel.isDm), // → "DMs"
currentPubkey: currentPubkey,
);
There is no branch for channel.isForum (channel.dart:77). The current behaviour is locked in by mobile/test/features/channels/channels_page_test.dart:
expect(find.text('design-forum'), findsNothing); // a channelType: 'forum' channel
expect(find.text('FORUMS'), findsNothing);
Desktop, by contrast, renders a Forums group in desktop/src/features/sidebar/ui/AppSidebar.tsx (inside <FeatureGate feature="forum">).
Why this looks unintentional rather than by design
#356 (feat(mobile): implement forum posts and threads) replaced the "Forum threads are not on mobile yet" placeholder with the full forum experience — ForumPostsView, ForumThreadPage, create post (kind:45001), reply (kind:45003), delete. channel_detail_page.dart:92,293 mounts that view for channel.isForum. channels_provider.dart:20 even ranks forums in _channelTypeOrder = {'stream': 0, 'forum': 1, 'dm': 2}.
So the whole feature is present and reachable — everything except the entry point from the channel list. The behaviour is identical on v0.4.26 and v0.5.2.
Impact
For communities that use forums as a primary surface (structured/card-shaped content rather than chat), the mobile app effectively hides that half of the workspace. Users see their stream channels and DMs and reasonably conclude the forums did not sync.
Current workaround
Search does surface them — search_provider.dart:194 filters out only DMs — so typing the forum name in Search and tapping the result opens ChannelDetailPage → ForumPostsView. The Activity feed ("Forum post" / "Forum reply" items) and in-message channel links also work. None of these are discoverable as a browsing path.
Suggested fix
Mirror the streams section: derive forumChannels from visibleChannels.where((c) => c.isForum) and render a "Forums" section between Channels and DMs, and update the two assertions in channels_page_test.dart.
Happy to send a PR if this is wanted — just wanted to confirm first whether the omission is deliberate (e.g. mobile scope decision) before touching a test that currently asserts the opposite.
- Dominant language
- Rust
- Stars
- 33.7k
- Forks
- 4.4k
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 239
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from block/buzz
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
workflow_sink's mention parser never masks code regions — @name inside a code span wakes the agent Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 Half a day Newbie friendliness 88/100
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
gitbutlerapp/gitbutler#15998 · 1 comment ·
-
bug triage:deciding
Difficulty 1/5 Under an hour Newbie friendliness 88/100
open-telemetry/otel-arrow#4132 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
bitcoindevkit/bdk-ffi#1125 ·