fix: client perms, @everyone/@channel, docs, unit tests
- usePermissions ORs current user roles + @everyone only (not all server roles) - cache myRolesByServer; load on active server; refresh after self role edit - gate/notify @everyone and @channel; plain @username push; special mention UI - refresh FEATURE_PARITY (DMs exist; drop stale critical gaps) - README production deploy notes dumpster.service - unit tests for permission bits and broadcast mention tokens
This commit is contained in:
+52
-79
@@ -2,7 +2,7 @@
|
||||
|
||||
## vs Discord, Guilded (historical), TeamSpeak 6, Fluxer
|
||||
|
||||
Compiled 2026-06-30. Updated through Phase 7 completion.
|
||||
Compiled 2026-06-30. **Status refreshed 2026-07-15** (not a full re-audit of every row).
|
||||
|
||||
---
|
||||
|
||||
@@ -21,22 +21,23 @@ Compiled 2026-06-30. Updated through Phase 7 completion.
|
||||
|
||||
| Feature | dumpsterChat | Discord | Guilded | TeamSpeak 6 | Fluxer |
|
||||
|---------|:------------:|:-------:|:-------:|:-----------:|:------:|
|
||||
|| Text channels | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
|| Direct messages | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
|| Markdown support | ✅ | ✅ full | ✅ full | ❌ basic | ✅ full |
|
||||
|| Reactions | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
|| Replies | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
|| Threads | ✅ | ✅ | ✅ | ❌ | 🔄 |
|
||||
|| Forum channels | ✅ | ✅ | ✅ | ❌ | 🔄 |
|
||||
|| Pinned messages | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
|| Message search | ✅ | ✅ full | ✅ | ❌ | ✅ Meilisearch |
|
||||
|| Edit / delete messages | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
|| Rich embeds / link unfurling | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
|| File uploads | ⚠️ MinIO | ✅ | ✅ | ✅ | ✅ S3-backed |
|
||||
|| GIF picker (Giphy) | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
|| Typing indicators | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
|| Message history (pagination) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
|| Read receipts | ✅ | ✅ | ✅ | ❌ | 🔄 |
|
||||
| Text channels | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| Direct messages | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
| Markdown support | ✅ | ✅ full | ✅ full | ❌ basic | ✅ full |
|
||||
| Reactions | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
| Replies | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
| Threads | ✅ | ✅ | ✅ | ❌ | 🔄 |
|
||||
| Forum channels | ✅ | ✅ | ✅ | ❌ | 🔄 |
|
||||
| Pinned messages | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| Message search | ✅ | ✅ full | ✅ | ❌ | ✅ Meilisearch |
|
||||
| Edit / delete messages | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
| Rich embeds / link unfurling | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
| File uploads | ⚠️ MinIO | ✅ | ✅ | ✅ | ✅ S3-backed |
|
||||
| GIF picker (Giphy) | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
| Typing indicators | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
| Message history (pagination) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| Read receipts | ✅ | ✅ | ✅ | ❌ | 🔄 |
|
||||
| @everyone / @channel | ✅ (perm gated) | ✅ | ✅ | ❌ | ✅ |
|
||||
|
||||
---
|
||||
|
||||
@@ -68,7 +69,7 @@ Compiled 2026-06-30. Updated through Phase 7 completion.
|
||||
| Badges | ❌ | ✅ | ✅ | ✅ | ✅ |
|
||||
| Usernames + discriminators | ✅ | ⚠️ handles | ❌ | ✅ UID | ✅ #0000 |
|
||||
| Friend requests | ❌ | ✅ | ✅ | ❌ | ✅ |
|
||||
|| Block list | ✅ | ✅ | ✅ | ❌ | ❌ |
|
||||
| Block list | ✅ | ✅ | ✅ | ❌ | ❌ |
|
||||
| Activity / game status | ❌ | ✅ | ✅ | ❌ | ❌ |
|
||||
|
||||
---
|
||||
@@ -80,11 +81,12 @@ Compiled 2026-06-30. Updated through Phase 7 completion.
|
||||
| Roles | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| Hierarchical roles | ⚠️ basic | ✅ | ✅ | ✅ | ✅ |
|
||||
| Permission bitflags | ✅ | ✅ | ✅ | ✅ granular | ✅ |
|
||||
|| Per-channel permission overrides | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| Per-channel permission overrides | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| @everyone default role | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| Role colors | ⚠️ DB ready | ✅ | ✅ | ❌ | ✅ |
|
||||
| Role icons | ❌ | ✅ Nitro | ❌ | ❌ | ❌ |
|
||||
| Administrator bypass | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| Client-side permission gates | ✅ (user roles + @everyone) | ✅ | ✅ | ✅ | ✅ |
|
||||
|
||||
### dumpsterChat Permissions (current)
|
||||
|
||||
@@ -123,7 +125,7 @@ Compiled 2026-06-30. Updated through Phase 7 completion.
|
||||
| Server invites | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| Vanity URLs | ❌ | ✅ Nitro | ❌ | ❌ | ❌ |
|
||||
| Webhooks | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
| Bots / API | ⚠️ slash cmds | ✅ huge | ✅ Flow Bots | ❌ plugins | 🔄 |
|
||||
| Bots / API | ⚠️ store + runner | ✅ huge | ✅ Flow Bots | ❌ plugins | 🔄 |
|
||||
| Server templates | ❌ | ✅ | ❌ | ❌ | ❌ |
|
||||
| Server discovery | ❌ | ✅ | ✅ | ✅ | 🔄 |
|
||||
| Server analytics | ❌ | ✅ | ✅ | ❌ | ❌ |
|
||||
@@ -139,10 +141,10 @@ Compiled 2026-06-30. Updated through Phase 7 completion.
|
||||
| Desktop notifications | ⚠️ possible via SW | ✅ | ✅ | ✅ | ✅ |
|
||||
| Web push notifications | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| @mention push | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
| Channel-wide push | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
| Channel-wide push (@everyone/@channel) | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
| Email notifications | ❌ | ✅ | ✅ | ❌ | 🔄 |
|
||||
| Mobile apps | ❌ | ✅ iOS/Android | ✅ | ✅ | 🔄 Flutter alpha |
|
||||
| Per-channel notification settings | ❌ | ✅ | ✅ | ✅ | ✅ |
|
||||
| Mobile apps | ❌ (PWA is target) | ✅ iOS/Android | ✅ | ✅ | 🔄 Flutter alpha |
|
||||
| Per-channel notification settings | ⚠️ partial | ✅ | ✅ | ✅ | ✅ |
|
||||
| Do Not Disturb schedule | ❌ | ✅ | ❌ | ❌ | ❌ |
|
||||
|
||||
---
|
||||
@@ -156,6 +158,7 @@ Compiled 2026-06-30. Updated through Phase 7 completion.
|
||||
| Slash commands | ✅ | ✅ | ✅ | ❌ | 🔄 |
|
||||
| Command options / JSON schema | ✅ | ✅ | ✅ | ❌ | 🔄 |
|
||||
| Bot mentions | ✅ | ✅ | ❌ | ❌ | 🔄 |
|
||||
| Built-in bot runner (anonConfess, leaderboard, steamfree) | ✅ | ❌ | ⚠️ | ❌ | ❌ |
|
||||
| Third-party integrations (Twitch, YouTube, GitHub) | ❌ | ✅ | ✅ | ❌ | 🔄 |
|
||||
| Webhook-driven bots | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
|
||||
@@ -168,40 +171,11 @@ Compiled 2026-06-30. Updated through Phase 7 completion.
|
||||
- Terminal/Gruvbox aesthetic
|
||||
- WebAuthn / passkey auth
|
||||
- LiveKit voice integration
|
||||
- Built-in webhook execution for simple integrations
|
||||
- Built-in bot store + managed runner
|
||||
- PWA-first mobile (no native app planned)
|
||||
|
||||
### Discord
|
||||
- Massive network effect (200M+ MAU)
|
||||
- Nitro subscription perks (animated avatars, HD streaming, larger uploads)
|
||||
- Activities / embedded apps in voice channels
|
||||
- Server boosting tiers
|
||||
- Stage channels
|
||||
- Activities marketplace
|
||||
|
||||
### Guilded (historical)
|
||||
- Built-in calendar with RSVP
|
||||
- Scheduling + availability system
|
||||
- Docs / forms
|
||||
- Lists (task management)
|
||||
- Tournaments
|
||||
- Server Subs monetization
|
||||
- Server Groups (sub-servers)
|
||||
|
||||
### TeamSpeak 6
|
||||
- Self-hosted by design, free up to 32 slots
|
||||
- Granular Power/Needed Power permission system
|
||||
- Low resource client
|
||||
- Plugin ecosystem
|
||||
- Virtual servers
|
||||
- Whisper / poke / channel commander
|
||||
|
||||
### Fluxer
|
||||
- Fully open-source AGPL-3, Docker Compose deploy
|
||||
- No paywalls / license keys
|
||||
- Planned federation
|
||||
- Multi-backend switching
|
||||
- Erlang/OTP gateway for scale
|
||||
- 34 locales
|
||||
### Discord / Guilded / TeamSpeak / Fluxer
|
||||
See historical notes in git history if needed. Not the product roadmap.
|
||||
|
||||
---
|
||||
|
||||
@@ -210,38 +184,37 @@ Compiled 2026-06-30. Updated through Phase 7 completion.
|
||||
| Feature | dumpsterChat | Discord | Guilded | TeamSpeak 6 | Fluxer |
|
||||
|---------|:------------:|:-------:|:-------:|:-----------:|:------:|
|
||||
| Self-hostable | ✅ | ❌ | ❌ | ✅ | ✅ |
|
||||
| Open source | ❌ | ❌ | ❌ | ❌ | ✅ AGPL-3 |
|
||||
| Open source | ⚠️ private self-host | ❌ | ❌ | ❌ | ✅ AGPL-3 |
|
||||
| PWA support | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| REST API | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
| WebSocket gateway | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| Swagger docs | ✅ localhost | ✅ | ✅ | ❌ | ✅ |
|
||||
| Swagger docs | ✅ /docs | ✅ | ✅ | ❌ | ✅ |
|
||||
| Docker Compose | ✅ | ❌ | ❌ | ❌ | ✅ |
|
||||
|
||||
---
|
||||
|
||||
## Priority Recommendations
|
||||
## Priority Recommendations (updated)
|
||||
|
||||
### Critical gaps (would block most Discord/Guilded users)
|
||||
**Do not treat this table as a todo list.** For a ~12 person friend server, parity rows are optional.
|
||||
|
||||
1. **Direct Messages** — no way to message users outside servers
|
||||
2. **Mobile app** — major adoption blocker
|
||||
3. **Voice push-to-talk** — important for voice-heavy communities
|
||||
4. **Email notifications** — needed for async engagement
|
||||
5. **Read receipts / unread state** — channel-level read tracking
|
||||
### Actual next polish (product)
|
||||
1. Mobile PWA pain (input, notifs, safe areas)
|
||||
2. Role color UI / hierarchy polish
|
||||
3. Voice PTT / screen share only if voice is used
|
||||
4. Small slash toys (`/roll`, `/choose`) if wanted
|
||||
|
||||
### High-value next features
|
||||
### Real tech debt
|
||||
1. More tests on hot paths (permissions DB checker, bot auth)
|
||||
2. Keep client permission cache in sync after role edits (partially done)
|
||||
3. Deploy docs must name the real unit: `dumpster.service`
|
||||
|
||||
1. **Screen share** — LiveKit supports it; mostly frontend work
|
||||
2. **Custom emoji / reactions beyond unicode** — core Discord behavior
|
||||
3. **Server groups (sub-servers)** — channel organization
|
||||
4. **Do Not Disturb schedule** — notification control
|
||||
5. **Third-party integrations** — Twitch, YouTube, GitHub
|
||||
6. **Stage channels** — presentation-style voice
|
||||
### Explicitly not critical
|
||||
- Friend requests (DMs already exist among members)
|
||||
- Native mobile apps
|
||||
- Discord bot ecosystem compatibility
|
||||
- Server discovery / monetization / federation
|
||||
- AutoMod / Flow Bots
|
||||
|
||||
### Nice-to-have differentiators
|
||||
|
||||
1. **No-code Flow Bots** (Guilded-style automations)
|
||||
2. **Server discovery / directory**
|
||||
3. **Activities / embedded games**
|
||||
4. **Federation** (Fluxer-style)
|
||||
5. **Server analytics**
|
||||
### Stale claims removed
|
||||
- ~~"Direct Messages missing"~~ — DMs exist
|
||||
- ~~"Mobile app is the only path"~~ — PWA is the target client
|
||||
|
||||
Reference in New Issue
Block a user