docs: v0.8.5 Phase 39 remote announcement hub
- PLATFORM_ROADMAP Phase 39 complete; changelog entry - PEARCORD_PARITY P39-1; next tranches updated - ANNOUNCEMENT_HUB.md feature guide; ANNOUNCEMENT_FOLLOW cross-link - GITEA_DEVELOPER + MODULES registry for pearcord-announcement-hub Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -48,7 +48,10 @@ npm run test:announcement
|
||||
npm run test:boot
|
||||
```
|
||||
|
||||
## Remote hub
|
||||
|
||||
See [ANNOUNCEMENT_HUB.md](./ANNOUNCEMENT_HUB.md) (v0.8.5+) for cross-guild syndication on the discovery mesh.
|
||||
|
||||
## Future
|
||||
|
||||
- Cross-post to followed remote guilds via discovery topic
|
||||
- Rich embed cards on mirror messages
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
# Remote announcement hub (v0.8.5+)
|
||||
|
||||
Syndicate **announcement channel** posts to other Pearcord guilds over the **discovery P2P mesh** (`pearcord:discovery:v1`) — no central feed API.
|
||||
|
||||
## Module
|
||||
|
||||
`pearcord-announcement-hub` — hub publishers + cross-guild subscriptions (local JsonStore).
|
||||
|
||||
## Discovery gossip
|
||||
|
||||
| RPC | ID | Payload |
|
||||
|-----|-----|---------|
|
||||
| `ANNOUNCEMENT_HUB_POST` | 50 | `{ sourceGuildId, sourceChannelId, sourceGuildName, sourceChannelName, messageId, content, authorName, postedAt }` |
|
||||
|
||||
## Publish
|
||||
|
||||
Mods enable **Broadcast to P2P hub** per announcement channel (server settings). When a mod posts, Pearcord gossips `ANNOUNCEMENT_HUB_POST` on the discovery topic (if discovery mesh is joined).
|
||||
|
||||
## Subscribe
|
||||
|
||||
Another guild (Manage Channels) adds a **remote hub subscription**:
|
||||
|
||||
- Source guild id + announcement channel id (from Explore Public listing)
|
||||
- Local text channel to receive mirrors
|
||||
|
||||
Mirrors use the format:
|
||||
|
||||
```text
|
||||
📡 **Publisher Guild** · #broadcast
|
||||
Remote hub headline
|
||||
```
|
||||
|
||||
## Platform API
|
||||
|
||||
| Method | Description |
|
||||
|--------|-------------|
|
||||
| `setAnnouncementHubPublisher(channelId, enabled)` | Mod only |
|
||||
| `subscribeRemoteAnnouncementHub({ sourceGuildId, sourceChannelId, targetChannelId })` | Mod only |
|
||||
| `listRemoteAnnouncementHubSubs()` | Active subs for current guild |
|
||||
|
||||
View: `announcementHubPublishers`, `remoteAnnouncementHubSubs`.
|
||||
|
||||
## Tests
|
||||
|
||||
```bash
|
||||
cd apps/pearcord
|
||||
npm run test:announcement-hub # ANNOUNCEMENT_HUB_SMOKE_OK
|
||||
npm run test:announcement-follow
|
||||
npm run test:boot
|
||||
```
|
||||
|
||||
## Future
|
||||
|
||||
- Hub post deduplication by `messageId`
|
||||
- Rich embed cards on remote mirrors
|
||||
- Encrypted hub posts for private guild pairs
|
||||
@@ -123,6 +123,7 @@ git remote -v
|
||||
| `pearcord-voice-capture` | Mic PCM feed from UI into voice media |
|
||||
| `pearcord-display-capture` | Display JPEG feed from UI into screen share |
|
||||
| `pearcord-stickers` | Guild animated stickers + `STICKER_UPSERT` gossip |
|
||||
| `pearcord-announcement-hub` | Remote announcement syndication on discovery mesh |
|
||||
| `pearcord-device-sync` | `pcdv_` multi-device pairing |
|
||||
| `pearcord-emoji` | Guild emoji registry + `EMOJI_UPSERT` gossip |
|
||||
| `pearcord-sync` | Planned Autobase bridge |
|
||||
|
||||
@@ -14,6 +14,11 @@
|
||||
| `pearcord-voice-codec` | `modules/pearcord-voice-codec` | Opus/pcm voice frame codec |
|
||||
| `pearcord-screen-share` | `modules/pearcord-screen-share` | Screen share gossip + protomux frames |
|
||||
| `pearcord-announcements` | `modules/pearcord-announcements` | Announcement follow + cross-post |
|
||||
| `pearcord-announcement-hub` | `modules/pearcord-announcement-hub` | Remote announcement syndication on discovery mesh |
|
||||
| `pearcord-boosts` | `modules/pearcord-boosts` | Guild cosmetic boosts + gossip |
|
||||
| `pearcord-stickers` | `modules/pearcord-stickers` | Guild animated stickers + gossip |
|
||||
| `pearcord-voice-capture` | `modules/pearcord-voice-capture` | Mic PCM feed from UI into voice media |
|
||||
| `pearcord-display-capture` | `modules/pearcord-display-capture` | Display JPEG feed for screen share |
|
||||
| `pearcord-discovery` | `modules/pearcord-discovery` | Local directory + P2P public listings mesh |
|
||||
| `pearcord-embed` | `modules/pearcord-embed` | OpenGraph fetch + cache |
|
||||
| `pearcord-crypto` | `modules/pearcord-crypto` | DM payload sealing |
|
||||
|
||||
+3
-2
@@ -4,7 +4,7 @@ Gap analysis between **Pearcord** (P2P Pear app) and a typical **centralized cha
|
||||
|
||||
> This is the only doc that compares against an external reference product. All other docs use Pearcord naming only.
|
||||
|
||||
## Summary (v0.8.4)
|
||||
## Summary (v0.8.5)
|
||||
|
||||
| Area | Reference product | Pearcord | Gap |
|
||||
|------|-------------------|----------|-----|
|
||||
@@ -111,8 +111,9 @@ Phases **0–2** and **4** are largely complete; **3** (live audio) and **5** (n
|
||||
| P36-1 | Microphone capture bridge (Web Audio → P2P voice) | [x] v0.8.2 |
|
||||
| P37-1 | Display capture for screen share (getDisplayMedia → P2P frames) | [x] v0.8.3 |
|
||||
| P38-1 | Animated guild stickers (GIF/WebP, STICKER_UPSERT) | [x] v0.8.4 |
|
||||
| P39-1 | Remote announcement hub (discovery mesh syndication) | [x] v0.8.5 |
|
||||
|
||||
**Next tranches:** Remote announcement hub · per-user boost ledger · sticker packs · UI flow smoke.
|
||||
**Next tranches:** Per-user boost ledger · sticker packs · UI flow smoke · hub deduplication.
|
||||
|
||||
When Phase 5 checklist is `[x]`, copy open items here into tracked rows in `PLATFORM_ROADMAP.md`.
|
||||
|
||||
|
||||
@@ -150,6 +150,7 @@ See [PEARCORD_PARITY.md](./PEARCORD_PARITY.md) for full gap analysis and Phases
|
||||
| `pearcord-voice-capture` | Mic PCM bridge from UI into voice media |
|
||||
| `pearcord-display-capture` | Display JPEG feed from UI into screen share |
|
||||
| `pearcord-stickers` | Guild animated stickers + `STICKER_UPSERT` gossip |
|
||||
| `pearcord-announcement-hub` | Remote announcement syndication on discovery mesh |
|
||||
|
||||
---
|
||||
|
||||
@@ -242,6 +243,16 @@ When completing work, change `[ ]` → `[x]` and add a one-line note under **Cha
|
||||
|
||||
---
|
||||
|
||||
### Phase 39 — Remote announcement hub (v0.8.5)
|
||||
|
||||
| ID | Item | Status |
|
||||
|----|------|--------|
|
||||
| P39-1 | `pearcord-announcement-hub` + `ANNOUNCEMENT_HUB_POST` RPC 50 | [x] |
|
||||
| P39-2 | Discovery gossip + cross-guild mirror ingest | [x] |
|
||||
| P39-3 | Server settings UI + smoke-announcement-hub + ANNOUNCEMENT_HUB.md | [x] |
|
||||
|
||||
---
|
||||
|
||||
### Phase 38 — Animated stickers (v0.8.4)
|
||||
|
||||
| ID | Item | Status |
|
||||
@@ -475,6 +486,7 @@ When completing work, change `[ ]` → `[x]` and add a one-line note under **Cha
|
||||
|
||||
### Changelog
|
||||
|
||||
- **2026-05-21** — v0.8.5: remote announcement hub (`pearcord-announcement-hub`, ANNOUNCEMENT_HUB_POST RPC 50, cross-guild mirrors via discovery, smoke-announcement-hub).
|
||||
- **2026-05-21** — v0.8.4: animated guild stickers (`pearcord-stickers`, STICKER_UPSERT RPC 49, picker tabs, smoke-stickers, STICKERS.md).
|
||||
- **2026-05-21** — v0.8.3: display capture for screen share (`pearcord-display-capture`, getDisplayMedia JPEG @ 2 fps, smoke-display-capture, DISPLAY_CAPTURE.md).
|
||||
- **2026-05-21** — v0.8.2: microphone capture (`pearcord-voice-capture`, UI Web Audio → IPC, mic/synthetic indicator, smoke-voice-capture, VOICE_CAPTURE.md).
|
||||
|
||||
Reference in New Issue
Block a user