Myx 182828bb1e fix: Bug - Two devices sharing same user says "Shared from your device"
Gate the "Shared from your device" label and the hidden download
affordance on whether this device actually holds the file bytes, not on
whether the current user uploaded it. uploaderPeerId is the user id, so
the old check claimed ownership on every device of the uploader,
blocking view/download on second devices that only synced metadata.

Also include attachment metadata in the account_sync chat-sync-batch so
sibling devices learn about synced attachments at all.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 03:29:47 +02:00
2026-06-09 22:00:06 +02:00
2026-06-05 18:37:17 +02:00
2026-06-09 22:00:06 +02:00
2026-06-09 17:59:54 +02:00
2026-06-11 03:03:10 +02:00
2026-05-25 16:51:44 +02:00
2025-12-28 08:23:30 +01:00
2026-06-05 18:37:17 +02:00
2026-03-29 23:55:24 +02:00
2026-06-05 17:12:26 +02:00
2026-06-11 03:03:10 +02:00
2026-04-29 17:15:01 +02:00
2026-05-23 15:28:40 +02:00

MetoYou / Toju

MetoYou is a desktop-first chat stack managed as an npm monorepo. The repository contains the Angular 21 product client, the Electron desktop shell, the Node/TypeScript signaling server, the Playwright E2E suite, and the Angular 19 marketing website.

Packages

Path Purpose Docs
toju-app/ Angular 21 product client toju-app/README.md
electron/ Electron main process, preload bridge, IPC, and desktop integrations electron/README.md
server/ Signaling server, server-directory API, and websocket runtime server/README.md
e2e/ Playwright end-to-end coverage for the product client e2e/README.md
website/ Angular 19 marketing site served separately from the product client website/README.md
docs-site/ Docusaurus app and plugin documentation served by the Electron Local API docs-site/docs/intro.md

Install

  1. Run npm install from the repository root.
  2. Run cd server && npm install for the server package.
  3. If you need to work on the marketing site, run cd website && npm install.
  4. If you need to work on the Docusaurus docs, run cd docs-site && npm install.
  5. Copy .env.example to .env.

Configuration

  • Root .env controls local SSL with SSL=true|false.
  • The server also honors an optional PORT environment override at runtime.
  • When SSL=true, run ./generate-cert.sh once or let ./dev.sh generate local certificates on first launch.
  • server/data/variables.json stores klipyApiKey, releaseManifestUrl, serverPort, serverProtocol, serverHost, and linkPreview. The server normalizes this file on startup.
  • When serverProtocol is https, the certificates in .certs/ must exist and match the configured host or IP.

Main Commands

  • npm run dev starts the full desktop stack: server, product client, and Electron.
  • npm run start starts only the Angular product client in toju-app/.
  • npm run electron:dev starts the Angular product client and Electron together.
  • npm run server:dev starts only the server with reload.
  • npm run build builds the Angular product client to dist/client.
  • npm run build:docs builds the Docusaurus documentation site to docs-site/build.
  • npm run build:electron builds the Electron code to dist/electron.
  • npm run build:all builds the product client, Docusaurus docs, Electron, and server.
  • npm run test runs the product-client Vitest suite.
  • npm run lint runs ESLint across the repo.
  • npm run lint:fix formats Angular templates, sorts template properties, and applies ESLint fixes.
  • npm run test:e2e, npm run test:e2e:ui, npm run test:e2e:debug, and npm run test:e2e:report run the Playwright suite and report tooling.

Repository Map

Path Description
toju-app/src/app/domains/ Product-client bounded contexts and domain facades
toju-app/src/app/infrastructure/ Shared client-side technical runtime such as persistence and realtime
toju-app/src/app/shared-kernel/ Cross-domain contracts shared inside the product client
electron/ Electron bootstrap, preload surface, IPC handlers, CQRS, and desktop adapters
server/src/ Express app, websocket runtime, config, CQRS, and persistence layers
e2e/ Playwright tests, helpers, fixtures, and page objects
website/src/ Marketing-site pages, assets, and SSR entry points
docs-site/ Docusaurus source for Electron-hosted application and plugin documentation
tools/ Build, release, formatting, and packaging scripts

Product Client Docs

Area Docs
Domains index toju-app/src/app/domains/README.md
Access Control toju-app/src/app/domains/access-control/README.md
Attachment toju-app/src/app/domains/attachment/README.md
Authentication toju-app/src/app/domains/authentication/README.md
Chat toju-app/src/app/domains/chat/README.md
Notifications toju-app/src/app/domains/notifications/README.md
Profile Avatar toju-app/src/app/domains/profile-avatar/README.md
Screen Share toju-app/src/app/domains/screen-share/README.md
Server Directory toju-app/src/app/domains/server-directory/README.md
Theme toju-app/src/app/domains/theme/README.md
Voice Connection toju-app/src/app/domains/voice-connection/README.md
Voice Session toju-app/src/app/domains/voice-session/README.md
Persistence toju-app/src/app/infrastructure/persistence/README.md
Realtime toju-app/src/app/infrastructure/realtime/README.md
Shared Kernel toju-app/src/app/shared-kernel/README.md

Supporting Docs

Screenshots

Description
No description provided
Readme 41 MiB
Toju 1.0.192 Latest
2026-06-12 19:02:58 +00:00
Languages
TypeScript 61.3%
JavaScript 27.7%
HTML 10%
SCSS 0.7%
Java 0.1%
Other 0.1%