Remove the leftover MAX_AUTO_SAVE_SIZE_BYTES guard from handleFileChunk's in-memory path. The request gate (canReceiveAttachment) already admits 10-50 MB generic files for in-memory receive on stores without disk streaming (browser), but the chunk handler silently dropped every chunk of such files: no ack was sent, the sender's waitForAck timed out, and the receiver's GUI never changed. Receive admission is now decided once, at request time. Adds a two-browser regression e2e that sends an 11 MB generic file and asserts Request -> progress -> Download. Co-authored-by: Cursor <cursoragent@cursor.com>
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 startstarts the Angular dev server.npm run buildbuilds the client todist/client.npm run watchruns the Angular build in watch mode.npm run testruns the product-client Vitest suite.npm run lintruns ESLint across the repo.npm run formatformats Angular HTML templates.npm run sort:propssorts Angular template properties.npm run electron:devornpm run devruns 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
- src/app/domains/README.md
- src/app/shared-kernel/README.md
- src/app/infrastructure/persistence/README.md
- src/app/infrastructure/realtime/README.md
- ../docs/architecture.md
- AGENTS.md
Notes
angular.jsondefines build, serve, and lint targets for the product client.- Product-client tests currently run through the root Vitest setup instead of an Angular
testarchitect target. - If the renderer-to-desktop contract changes, update the Angular bridge, Electron preload API, and IPC handlers together.