cinny fd93339a / cinny-desktop d819972 (2026-08-28): "feature the Homelab space instead of its individual rooms".
The real problem: production web never got them. chat.lotusguild.org serves config.json from the matrix repo (cinny/config.json), not from cinny. That file has never had the featured communities in its history (checked back to 0e275d7), so the Explore → Featured page on the web is empty.
(The Lotus Guild space id resolves on production: GET /_matrix/client/v1/room_summary/!-1ZBnAH-JiC… returns "Lotus Guild", room version 12.)
Decide
Featured communities. Copy them into matrix/cinny/config.json so web users see the Lotus Guild space (and decide whether Jellyfin, Homelab and matrixrooms.info should stay).
allowCustomHomeservers. The web locks users to the listed servers; the desktop lets them type any homeserver. Which is intended?
Stop the drift. Either have scripts/sync-web-config.mjs copy these keys from the live web config at desktop build time (it already does this for gifApiKey), or add a CI check that compares the two files.
Where the fixes go:matrix/cinny/config.json (web), cinny-desktop/config.json and scripts/sync-web-config.mjs (desktop).
Found in the October 2026 client audit (Playwright against a local Synapse + LiveKit stack, plus code reading). Code refs are at cinny 30e2dbcd, cinny-desktop 8f67ec7, element-call 3b0050e8.
**Correction:** an earlier version of this issue called the desktop's featured communities "upstream samples". They're not. They were added on purpose:
- cinny `b1ecb0c4` (2026-08-28): "feature Lotus Guild Space + favorite rooms, add matrixrooms.info directory".
- cinny-desktop `e132719` (2026-08-28): "add featuredCommunities to desktop config, feature Lotus Guild Space".
- cinny `fd93339a` / cinny-desktop `d819972` (2026-08-28): "feature the Homelab space instead of its individual rooms".
**The real problem: production web never got them.** chat.lotusguild.org serves `config.json` from the **matrix** repo (`cinny/config.json`), not from cinny. That file has never had the featured communities in its history (checked back to 0e275d7), so the Explore → Featured page on the web is empty.
| key | web (matrix repo, live) | cinny repo + desktop bundle |
|---|---|---|
| `featuredCommunities.spaces` | `[]` | `!-1ZBnAH-JiC…` (**Lotus Guild**), `#homelab:codestorm.net` |
| `featuredCommunities.rooms` | `[]` | `#jellyfin:matrix.org` |
| `featuredCommunities.servers` | `[]` | `matrixrooms.info` |
| `allowCustomHomeservers` | `false` | **`true`** |
(The Lotus Guild space id resolves on production: `GET /_matrix/client/v1/room_summary/!-1ZBnAH-JiC…` returns "Lotus Guild", room version 12.)
**Decide**
1. **Featured communities.** Copy them into `matrix/cinny/config.json` so web users see the Lotus Guild space (and decide whether Jellyfin, Homelab and matrixrooms.info should stay).
2. **`allowCustomHomeservers`.** The web locks users to the listed servers; the desktop lets them type any homeserver. Which is intended?
3. **Stop the drift.** Either have `scripts/sync-web-config.mjs` copy these keys from the live web config at desktop build time (it already does this for `gifApiKey`), or add a CI check that compares the two files.
**Where the fixes go:** `matrix/cinny/config.json` (web), `cinny-desktop/config.json` and `scripts/sync-web-config.mjs` (desktop).
---
_Found in the October 2026 client audit (Playwright against a local Synapse + LiveKit stack, plus code reading). Code refs are at cinny `30e2dbcd`, cinny-desktop `8f67ec7`, element-call `3b0050e8`._
jared
changed title from Desktop config.json has drifted from web production: custom homeservers allowed, and upstream's sample featured communities shown to Web and desktop config.json have drifted: the featured Lotus Guild space never reached the web, and custom homeservers are only allowed on desktop2026-10-04 19:47:59 -04:00
Web shows the featured communities. Tracked in matrix#20 (the web config lives in the matrix repo).
Desktop keeps allowing custom homeservers (allowCustomHomeservers: true), so that difference is intended.
What's left here: stop future drift. Either scripts/sync-web-config.mjs copies featuredCommunities from the live web config at build time, or a CI check compares the two files.
**Decisions (Jared, 2026-10-04):**
- **Web shows the featured communities.** Tracked in matrix#20 (the web config lives in the matrix repo).
- **Desktop keeps allowing custom homeservers** (`allowCustomHomeservers: true`), so that difference is intended.
What's left here: stop future drift. Either `scripts/sync-web-config.mjs` copies `featuredCommunities` from the live web config at build time, or a CI check compares the two files.
Featured communities: now on the web too (matrix#32, deployed; the live config.json lists the Lotus Guild space, Homelab, Jellyfin and matrixrooms.info).
allowCustomHomeservers: decided 2026-10-19. The web stays locked to the listed servers (enabling it there would need connect-src https:), and the desktop app keeps allowing them.
🤖 Claude Code
Resolved:
- **Featured communities:** now on the web too (matrix#32, deployed; the live `config.json` lists the Lotus Guild space, Homelab, Jellyfin and matrixrooms.info).
- **`allowCustomHomeservers`:** decided 2026-10-19. The web stays locked to the listed servers (enabling it there would need `connect-src https:`), and the desktop app keeps allowing them.
🤖 Claude Code
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Correction: an earlier version of this issue called the desktop's featured communities "upstream samples". They're not. They were added on purpose:
b1ecb0c4(2026-08-28): "feature Lotus Guild Space + favorite rooms, add matrixrooms.info directory".e132719(2026-08-28): "add featuredCommunities to desktop config, feature Lotus Guild Space".fd93339a/ cinny-desktopd819972(2026-08-28): "feature the Homelab space instead of its individual rooms".The real problem: production web never got them. chat.lotusguild.org serves
config.jsonfrom the matrix repo (cinny/config.json), not from cinny. That file has never had the featured communities in its history (checked back to 0e275d7), so the Explore → Featured page on the web is empty.featuredCommunities.spaces[]!-1ZBnAH-JiC…(Lotus Guild),#homelab:codestorm.netfeaturedCommunities.rooms[]#jellyfin:matrix.orgfeaturedCommunities.servers[]matrixrooms.infoallowCustomHomeserversfalsetrue(The Lotus Guild space id resolves on production:
GET /_matrix/client/v1/room_summary/!-1ZBnAH-JiC…returns "Lotus Guild", room version 12.)Decide
matrix/cinny/config.jsonso web users see the Lotus Guild space (and decide whether Jellyfin, Homelab and matrixrooms.info should stay).allowCustomHomeservers. The web locks users to the listed servers; the desktop lets them type any homeserver. Which is intended?scripts/sync-web-config.mjscopy these keys from the live web config at desktop build time (it already does this forgifApiKey), or add a CI check that compares the two files.Where the fixes go:
matrix/cinny/config.json(web),cinny-desktop/config.jsonandscripts/sync-web-config.mjs(desktop).Found in the October 2026 client audit (Playwright against a local Synapse + LiveKit stack, plus code reading). Code refs are at cinny
30e2dbcd, cinny-desktop8f67ec7, element-call3b0050e8.Desktop config.json has drifted from web production: custom homeservers allowed, and upstream's sample featured communities shownto Web and desktop config.json have drifted: the featured Lotus Guild space never reached the web, and custom homeservers are only allowed on desktopDecisions (Jared, 2026-10-04):
allowCustomHomeservers: true), so that difference is intended.What's left here: stop future drift. Either
scripts/sync-web-config.mjscopiesfeaturedCommunitiesfrom the live web config at build time, or a CI check compares the two files.Resolved:
config.jsonlists the Lotus Guild space, Homelab, Jellyfin and matrixrooms.info).allowCustomHomeservers: decided 2026-10-19. The web stays locked to the listed servers (enabling it there would needconnect-src https:), and the desktop app keeps allowing them.🤖 Claude Code