GameCult chat web client, a fork of Cinny (AGPL-3.0). Steward: Void. https://chat.gamecult.org
  • TypeScript 94.3%
  • JavaScript 3.4%
  • GLSL 1.9%
  • CSS 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Void a4942eef86
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 3m9s
auth: register failures in plain words; /register goes to the account service when the switch is on
The previous commit carried only the fallback split. This one carries the rest of Libby's two blockers and Heimdall's decision:

- config.json keeps only the registration block over dev's; clientDefaultServer is dev's again (the gamecult.org default is #86).
- registerErrorTrouble maps a register error code to registerTroubleMessage (new troubles: password-weak, password-short, unknown); PasswordRegisterForm shows those, never the server's text.
- RegisterRoute: switch on, /register offers the account service link and redirects there; switch off, the in-client form.
- Tests: registerErrors.test.ts (code to words, no Matrix code leaks), RegisterRoute.test.tsx (on, off, unusable url).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 00:25:46 +00:00
.github CI: cancel superseded runs with workflow concurrency groups 2026-11-09 22:50:10 +00:00
.husky chore: add semantic release (#2759) 2026-03-19 16:26:25 +11:00
.vscode Replace Webpack to Vite (#1023) 2022-12-20 20:47:51 +05:30
contrib brand: Ratatoskr README front door, package name, theme colour, contrib confs 2026-11-06 07:09:25 +00:00
docs desk: read the gamecult.fork.* contract as served (#83) 2026-11-10 21:08:12 +00:00
harness Enforce the one join path in lint; a drive that asserts nothing fails (#64) 2026-11-10 23:16:59 +00:00
preview-demo/poses Merge pull request 'preview-demo: README for the pose thumbnails (provenance)' (#29) from void/poses-readme into dev 2026-11-09 10:59:20 +00:00
public dings: Aqua's v4 set (Void single onset, Nibu proposal 3 everywhere), still behind dings.enabled 2026-11-10 17:59:07 +00:00
scripts preview: drop the Ratatoskr publisher; keep only the build recipe the shared publisher takes (build-dev-preview.sh) 2026-11-10 18:19:04 +00:00
src auth: register failures in plain words; /register goes to the account service when the switch is on 2026-11-11 00:25:46 +00:00
.dockerignore Improve Dockerfile (#256) 2022-01-30 20:58:38 +05:30
.eslintignore Replace Webpack to Vite (#1023) 2022-12-20 20:47:51 +05:30
.eslintrc.cjs Enforce the one join path in lint; a drive that asserts nothing fails (#64) 2026-11-10 23:16:59 +00:00
.gitignore poses: read labels only from the catalogue; add a client-status pose line 2026-11-04 14:06:18 +00:00
.node-version Pin all the action deps to SHA (#2725) 2026-03-04 12:31:36 +11:00
.npmrc Add authenticated media support (#1930) 2024-09-07 19:15:55 +05:30
.prettierignore poses: read labels only from the catalogue; add a client-status pose line 2026-11-04 14:06:18 +00:00
.prettierrc.json Replace Webpack to Vite (#1023) 2022-12-20 20:47:51 +05:30
build.config.ts GameCult theme, steward-grouped project rooms, preview base override 2026-10-31 05:00:32 +01:00
CODE_OF_CONDUCT.md Create Code of Conduct (#1908) 2024-08-21 15:43:40 +05:30
config.json auth: register failures in plain words; /register goes to the account service when the switch is on 2026-11-11 00:25:46 +00:00
CONTRIBUTING.md Merge remote-tracking branch 'origin/dev' into dev 2026-11-07 18:12:03 +00:00
docker-nginx.conf remove libolm related code (#2300) 2025-03-31 19:10:24 +11:00
Dockerfile chore(deps): bump nginx from 1.31.4-alpine to 1.31.5-alpine (#3098) 2026-09-10 15:33:46 +10:00
HACKING.md brand: Ratatoskr README front door, package name, theme colour, contrib confs 2026-11-06 07:09:25 +00:00
index.html preview-demo: drop the submit-event shim; manifest link relative 2026-11-08 02:12:11 +00:00
LICENSE Change license to AGPLv3 (#1115) 2023-02-24 17:28:04 +05:30
netlify.toml remove libolm related code (#2300) 2025-03-31 19:10:24 +11:00
package-lock.json auth: test the emitted footer rule; wrap its comment; correct the terrain luminance figure 2026-11-10 03:48:36 +00:00
package.json auth: test the emitted footer rule; wrap its comment; correct the terrain luminance figure 2026-11-10 03:48:36 +00:00
README.md README: drop the OBS media receiver disambiguation 2026-11-06 12:39:02 +00:00
tsconfig.json Add authenticated media support (#1930) 2024-09-07 19:15:55 +05:30
vite.config.js dings: port the hook from #36 onto dev, wire Aqua's v3 set behind dings.enabled (default off) 2026-11-10 17:03:17 +00:00

Ratatoskr

GameCult's Matrix chat client, a fork of Cinny. It opens on GameCult's estate (spaces, project rooms grouped by steward, Minds, and your own place in it) instead of an invite list. Mobile first.

Live now: the Cinny engine (matrix-js-sdk, Rust crypto, sync) under a Ratatoskr UI: branding, GameCult theme, estate navigation, pose portraits (opt-in setting), a background scene and soundscape (opt-in, off by default). Planned: see docs/gamecult/ratatoskr-target.md for the target and cut sequence. Internal names that are protocol or stored state (cinny_* localStorage keys, the in.cinny.room.power_level_tags event type, CINNY_BASE) are unchanged on purpose.

Entry points: src/app/ (client UI), src/app/features/scene/ (background scene), src/app/features/soundscape/ (audio socket), harness/ (estate drive scripts), scripts/gen-brand.mjs (regenerates the logo and icons).

Upstream

Ratatoskr is based on Cinny by Ajay Bura and contributors, licensed AGPL-3.0. Cinny's own README, desktop app and releases live at https://github.com/cinnyapp/cinny. We do not ship its releases or images.

Developing

See HACKING.md. Contribution notes are in CONTRIBUTING.md.

Self-hosting

Build with npm ci && npm run build and serve dist/ with your webserver.

  • The default homeservers and explore pages are defined in config.json.
  • Serving the assets needs redirects to index.html. Examples: netlify, nginx, caddy. Without them you can enable hash routing (hashRouter); URLs then carry /#/.
  • To deploy on a subdirectory, rebuild with the base path set, either in build.config.ts or through CINNY_BASE (for example CINNY_BASE=/app/ npm run build).

License

Ratatoskr is a fork of the Cinny project
Copyright © 2024–present Ajay Bura
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