## Getting started
@@ -125,4 +118,4 @@ https://cinny.in
Cinny is licensed under the GNU Affero General Public License,
Version 3 of the License (AGPL-3.0-only).
-You may obtain a copy of the License at https://www.gnu.org/licenses/agpl-3.0.html
\ No newline at end of file
+You may obtain a copy of the License at https://www.gnu.org/licenses/agpl-3.0.html
diff --git a/build.config.ts b/build.config.ts
index ac51db97..ec8a41d0 100644
--- a/build.config.ts
+++ b/build.config.ts
@@ -1,3 +1,3 @@
export default {
- base: process.env.CINNY_BASE ?? '/',
+ base: '/',
};
diff --git a/config.json b/config.json
index e945d1c4..a61bb966 100644
--- a/config.json
+++ b/config.json
@@ -5,7 +5,17 @@
"featuredCommunities": {
"openAsDefault": false,
- "spaces": ["#gamecult:gamecult.org"],
+ "spaces": [
+ "#cinny:matrix.org",
+ "#community:matrix.org",
+ "#space:unredacted.org",
+ "#librewolf-community:matrix.org",
+ "#stickers-and-emojis:tastytea.de",
+ "#videogames:waywardinn.com",
+ "#science-space:matrix.org",
+ "#libregaming-games:tchncs.de",
+ "#mathematics-on:matrix.org"
+ ],
"rooms": [
"#tuwunel:grin.hu",
"#freesoftware:matrix.org",
diff --git a/docs/gamecult/ratatoskr-target.md b/docs/gamecult/ratatoskr-target.md
deleted file mode 100644
index 166c5c72..00000000
--- a/docs/gamecult/ratatoskr-target.md
+++ /dev/null
@@ -1,352 +0,0 @@
-# Ratatoskr: target and prose map
-
-Ratatoskr is GameCult's Matrix chat client: this fork of Cinny, forge
-`GameCult/cinny` (to be renamed `GameCult/Ratatoskr`; see the cut sequence).
-Void stewards it. Campaign `ratatoskr` lives in the eureka mind for now, beside
-the rulings it rests on. Under `eureka-body:ruling:ruling-home-steward-mind` it
-is handed to Void's mind once, by procedure, as soon as that hand-off procedure
-exists (`hand_off` is parked); after that every new ruling on it is admitted in
-Void's mind. Nothing here is written into Void's mind before then.
-
-The mind holds the questions, rulings, specs, reports and verdicts. This file
-holds what no document kind carries: the design truths, body facts, the model
-page, rationale, the reconstructed collaboration plan, and the cut sequence.
-All times are UTC.
-
-## Why
-
-GameCult is the only server this client talks to. A general Matrix client
-treats it as one community among thousands, so the operator meets GameCult's
-structure three clicks deep in an invite list of 50+ rooms (operator, `#swarm`
-10-31 05:14: "The biggest pain is navigation. GameCult has a structure."). The
-client should open on GameCult's estate as data: its spaces, its project rooms
-grouped by steward, its Minds, and the person's own place in it. It should
-also be a pleasant place to be in its own right: emotes, sound, and weather in
-the background.
-
-## Design truths (from rulings in force)
-
-- **We own the interface, not the engine.** The fork keeps Cinny's engine
- (matrix-js-sdk, Rust crypto, sync) and replaces the whole UI; every
- user-facing string and its translation is ours, and upstream locale files
- are not the source (`gamecult-chat:ruling:we-own-the-ui-and-translation`).
-- **Mobile first.** On phones, inactive elements hide, vertical space is
- cheaper than horizontal, and text never gets squeezed into narrow columns
- (`eureka-body:ruling:chat-client-base-cinny-mobile-first`).
-- **The first spec** (`eureka-body:ruling:chat-client-first-spec`): an emote
- slot on every bubble (a pose id carried on the event); room and participant
- lists tiered (category, then items) and reached from the header menu, not
- side columns; participants grouped by estate (Minds, Members, Users,
- Patrons); rooms grouped by kind (general, estates, projects, work rooms);
- Minds indexed by stewardship, read from Matrix state projected from the
- stewardship records in the Minds' own minds (the minds stay the truth); one
- room per project, a Space child, with the steward joined.
-- **Rooms are visible without a join dance.** No invite screen in the way; a
- room the server lets you join shows in the same list as joined ones; opening
- one shows its name and a one-tap Join; joining happens on that tap or a first
- post, never silently; no peeking (operator, `#swarm` 10-31 04:08, 04:12
- "Peeking sounds like YAGNI to me", 04:14 "One tap is a reasonable cost").
- Rooms you may not enter are refused by the server, not hidden by the client
- (Heimdall 04:10, accepted by Void 04:11 and 04:15).
-- **Language.** A user's language is the BCP 47 tag in profile field
- `org.gamecult.language`, owned by the user through the client's language
- picker (`gamecult-chat:ruling:user-language-profile-field`). The client ships
- localized; people talk with stewards in their own language; rooms are made
- for a language, with no per-language mirrors
- (`gamecult-chat:ruling:multilingual-client-stewards-language-rooms`). One
- host Mind sits in a language room, Weksa for `#pt-br`
- (`gamecult-chat:ruling:language-room-one-host-weksa`). The first person this
- must work for is a non-English, non-technical patron (placeholder
- `patron-pt1`) whose account we set up and walk through login
- (`gamecult-chat:ruling:patron-in-his-own-language`).
-- **Push.** `gamecult-chat:ruling:chat-push` rules out native mobile push for
- now; Web Push to the installed web app is a different thing and is open
- (question `ratatoskr:question:pwa-web-push`).
-- **Collaboration is recorded, not chatted.** Work spanning Minds belongs in
- Atlas (`eureka-body:ruling:atlas-records-collaborative-work`). Atlas is not
- deployed, so the plan below is its interim home; Atlas imports it later.
-
-## Body facts
-
-Probes run by Imagination on 2026-10-31, session `self-2026-10-29-eureka`.
-
-1. **Branch.** `void/gamecult-theme-and-project-nav` is `b8e696c8` over main
- `1e6412ed` (v4.12.8), 2 commits, 14 files, +1153/-32 (686 of it lockfile):
- a GameCult theme as default, member drawer hidden by default, bubble
- layout, and steward grouping in `src/app/pages/client/space/Space.tsx`
- (`useStewardGroups` at 429-437, group headers at 505-524) over
- `useSpaceJoinedHierarchy` (409). Read by `git diff`.
-2. **Live estate shape** (Synapse on Yggdrasil, read as `admin` over the
- client API, counts only). Root Space `#gamecult:gamecult.org`, room version
- 12, has 9 children: 8 rooms and the `Projects` sub-Space. `Projects` has 52
- children; 50 readable rooms, all room version 12. Server `/hierarchy` from
- the root returns 59 rooms, 2 of them spaces. **Every room's join rule is
- `invite`**; none is world-readable. 50 rooms carry `org.gamecult.steward`
- with content `{mind, repo, source, steward: