Files
Toju/toju-app
myxelium 3266581d3c feat(presence): live stream badges, honest ring delivery, cross-signal DMs
- Camera and screen-share badges are decided by `shouldShowStreamIndicator`,
  so a live stream is visible from outside the voice channel and clicking the
  badge joins the streamer's channel before focusing the stream.
- `ringParticipants` reports whether a `direct-call` ring reached anyone; a
  call that reached nobody shows `call.errors.ringUndelivered` instead of
  sitting in "calling" as if it were live.
- Direct messages resolve every local identity alias, so a conversation
  opened from a foreign roster entry lands in the same thread.
2026-08-14 03:19:29 +02:00
..
2026-07-14 00:41:05 +02:00
2026-04-29 01:14:30 +02:00
2026-07-14 00:41:05 +02:00
2026-06-05 17:12:26 +02:00
2026-04-18 21:27:04 +02:00
2026-06-05 18:34:01 +02:00

Product Client

Angular 21 renderer for MetoYou / Toju. This package is managed from the repository root, so the main build, test, lint, and Electron integration commands are run there rather than from a local package.json.

Commands

  • npm run start starts the Angular dev server.
  • npm run build builds the client to dist/client.
  • npm run watch runs the Angular build in watch mode.
  • npm run test runs the product-client Vitest suite.
  • npm run lint runs ESLint across the repo.
  • npm run format formats Angular HTML templates.
  • npm run sort:props sorts Angular template properties.
  • npm run electron:dev or npm run dev runs the client with Electron.

Structure

Path Description
src/app/domains/ Bounded contexts and public domain entry points
src/app/infrastructure/ Shared technical runtime such as persistence and realtime
src/app/shared-kernel/ Cross-domain contracts and shared models
src/app/features/ App-level composition and transitional feature shells
src/app/core/ Platform adapters, compatibility entry points, and cross-domain technical helpers
src/app/shared/ Shared UI primitives and utilities
src/app/store/ NgRx reducers, effects, selectors, and actions
public/ Static assets copied into the Angular build

Key Docs

Notes

  • angular.json defines build, serve, and lint targets for the product client.
  • Product-client tests currently run through the root Vitest setup instead of an Angular test architect target.
  • If the renderer-to-desktop contract changes, update the Angular bridge, Electron preload API, and IPC handlers together.