{"id":"@lssm-tech/app.communicationos-desktop","slug":"app.communicationos-desktop","name":"@lssm-tech/app.communicationos-desktop","version":"2.0.2","path":"packages/apps/communicationos-desktop","manifestPath":"packages/apps/communicationos-desktop/package.json","manifestBlobSha":"3aebfbf174180f1acfe4e768341f9bde6ae1a200","layer":"apps","physicalArea":null,"primaryArea":"communication-and-notifications","classification":{"privateDeclared":true,"catalogFamily":null,"catalogKind":null,"catalogStatus":null,"adoptionMode":null,"stability":null},"description":"Tauri 2 desktop shell for CommunicationOS.","descriptionOrigin":"package.json","catalog":{"visualTesting":{"status":"platform-qualified","platform":"desktop","owner":"@contractspec-core","qualificationCommands":["bun run typecheck","bun run test"],"evidenceManifest":"./storybook-platform-qualification.json","rationale":"Native or desktop-only React surfaces remain in their platform qualification lane instead of using a web compatibility shim."}},"canonicalImports":[],"scripts":{"dev":"vite","build":"tsgo --noEmit && bun --bun x vite build","tauri":"tauri","typecheck":"tsgo --noEmit","test":"bun test","lint:check":"node ../../../scripts/biome.cjs check .","lint:fix":"node ../../../scripts/biome.cjs check --write ."},"scriptStatus":"complete pinned manifest","dependencies":{"@fontsource/ibm-plex-mono":"5.3.0","@fontsource/ibm-plex-sans":"5.3.0","@fontsource/newsreader":"5.3.0","@lssm-tech/bundle.communication-os":"workspace:*","@lssm-tech/integration.communication-os-client":"workspace:*","@lssm-tech/integration.authos-better-auth":"workspace:*","@lssm-tech/lib.design-system":"workspace:*","@lssm-tech/module.communication-os":"workspace:*","@lssm-tech/module.customer-support":"workspace:*","@tauri-apps/api":"^2.11.1","@tauri-apps/plugin-deep-link":"2.4.10","@tauri-apps/plugin-sql":"2.4.1","@tauri-apps/plugin-stronghold":"2.3.2","react":"catalog:","react-dom":"catalog:"},"devDependencies":{"@tailwindcss/postcss":"4.3.3","@lssm-tech/tool.typescript":"workspace:*","@tauri-apps/cli":"^2.11.4","@types/react":"catalog:types","@types/react-dom":"catalog:types","happy-dom":"catalog:testing","@vitejs/plugin-react":"^6.1.1","typescript":"catalog:","tailwindcss":"catalog:build","vite":"^8.2.2"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":null,"publishExports":null,"types":null,"files":null,"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[],"entryCount":0,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/communicationos-desktop","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/communicationos-desktop/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/communicationos-desktop/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/app.communicationos-desktop.txt"},"readme":{"status":"available","body":"# `@lssm-tech/app.communicationos-desktop`\n\nMessage search uses the authenticated canonical space projection and shares the\nsame typed API boundary as web and mobile. It is not limited to the active room.\n\nThin Tauri 2 and React/Vite shell for CommunicationOS. It consumes the shared\napplication kit, declares Stronghold/OS keychain credentials and Tauri SQLite\nprojections, and supports device, managed-cloud, or self-hosted connectors.\n\nStronghold stores both the native AuthOS session and provider credentials. The\nshell exchanges that session for a short-lived CommunicationOS grant and renders\nonly live spaces and room counts returned for the server-derived scope.\nThe signed-out and expired-session surfaces include direct email/password and\nTOTP recovery. CompanyOS validates the Stronghold bearer and performs the\nserver-only hCircle host assertion; the webview never receives the shared\nsecret or proposes tenant/workspace/space authority.\nTransient send failures enter the Tauri SQLite outbox, retain their original\nidempotency keys, and replay on reconnect or a five-second recovery interval.\nThe shell keeps the queued count visible until the server confirms delivery.\nQueued payloads use the v2 AES-256-GCM envelope with a random key held only in\nStronghold and AAD bound to tenant, workspace, space, principal, room, and\nidempotency key. Every list, count, delivery, retry, quarantine, and discard\nstatement repeats that full owner scope. SQLite secure-delete is enabled and v1\nor legacy plaintext rows are purged instead of replayed. Corrupt v2 ciphertext\nis retained as payload-opaque quarantine evidence until the user discards and\nrecomposes it.\nThe active authorized room is refreshed from realtime invalidations, online\nrecovery, and a 15-second safety poll through one per-session queue. Outbox\nreplay completes before the next timeline read, so confirmed messages do not\ndisappear between recovery frames and overlapping triggers cannot race.\nDurable monotonic sequence numbers preserve enqueue order even when multiple\nmessages share the same timestamp.\nReplay treats an API `401` as terminal session expiry: it never increments the\nretry schedule, propagates to the session boundary, removes credentials, and\ncloses live work before the signed-out recovery surface commits.\nEvery conversation refresh and send-result commit is fenced to the current\nnative session, route, and room; a late response from a previous deep link\ncannot replace the active conversation. A send-side `401` invalidates live work\nbefore Stronghold session removal completes and renders explicit sign-in\nrecovery instead of an attachment error.\nThe composer validates and hashes up to five supported files locally, uploads\nthem through the scoped API, replays opaque attachment IDs after transient send\nfailures, and downloads without exposing storage locations.\n\nRoom and thread details retain separate canonical hashes. Thread routes resolve\nto a room only through server-returned channel bindings and keep an explicit\nthread-context marker above the shared attachment-aware composer. The client\nnever accepts a tenant, workspace, space, or room membership as authority.\n\nThe desktop navigation mounts shared Forms management at\n`/communications/forms` and resolves every API call from the in-memory scoped\ngrant rather than persisting access tokens in the webview.\n\nRun `bun dev`, `bun test`, `bun run build`, or `bun tauri dev` from this package.\nThe Vite 8 production profile keeps the default 500 kB warning budget and\nisolates React into a stable vendor chunk instead of hiding oversized bundles.\n`bun --bun run tauri build --debug --no-bundle` is the bounded native-window\ncompilation gate when the host has the Rust/Tauri toolchain. Forcing Bun keeps\nthe Tauri CLI on the host's native architecture; signed distributable acceptance\nremains platform- and certificate-specific.\n","sourcePath":"packages/apps/communicationos-desktop/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/communicationos-desktop/README.md","blobSha":"3d9e8afb1cf5fd22bba8c04428dafa4d5ab23f6e","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":"README recovered byte-for-byte from pinned aggregate guide","integrity":"exact Git blob match","executionStatus":"not executed"},"provenance":{"repository":"lssm-tech/contractspec","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","manifestOrigin":"pinned GitHub manifest fetch","manifestComplete":true,"publicationPolicyApplied":false},"areaSlug":"communication-and-notifications","areaTitle":"Communication and notifications","displayName":"app.communicationos-desktop","runtimes":[],"platforms":[],"kind":"apps","scope":"Workspace only","canonicalRoute":"/docs/packages/app.communicationos-desktop/","contextUrl":"/docs/packages/app.communicationos-desktop.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}