appsWorkspace onlyv1.5.2

app.communicationos-mobile

Expo Router iOS and Android shell for CommunicationOS.

@lssm-tech/app.communicationos-mobile
Source, release and verification context

Source snapshot bcc79fcc · Declared package version 1.5.2. This page combines the checked-in package guide and manifest; commands and runtime behavior were not executed in this review.

Package source ↗ Manifest ↗
EXPLORE THE PACKAGE

See where this package fits.

Follow a declared connection, inspect an import, then open the source guide when you need the detail.

THIS PACKAGEapp.communicationos-mobileapps

Arrows point from a package to its direct dependency. Each count is derived from the captured manifests.

22 déclarations · les 6 premières affichéesSELECT TO INSPECT

@lssm-tech/app.communicationos-mobile

Message search uses the authenticated canonical space projection and shares the same typed API boundary as web and desktop. It is not limited to the active room.

Thin Expo Router shell for CommunicationOS on iOS and Android. It consumes the shared application kit, declares SecureStore for credentials and SQLite for offline projections, and permits device, managed-cloud, or self-hosted connector placement.

Auth sessions and provider credentials are stored through a scoped, device-only SecureStore vault. Calm Signal renders only spaces supplied by the authenticated session; signed-out and no-access states never invent personal or company spaces. Native AuthOS bearer sessions are exchanged for short-lived, scope-derived CommunicationOS grants before live spaces, rooms, or messages are loaded. Signed-out users receive a native email/password and TOTP surface in English, French, or Spanish. The bearer and MFA authority remain in device-only SecureStore, and CompanyOS performs the server-secret hCircle host exchange so no tenant, workspace, or space is accepted from the device. The additive useMobileCommunicationWorkspace hook exposes reload, authorized room selection, idempotent send, pending state, and recoverable action feedback; the state-only useMobileCommunicationSession hook remains compatible. Transient send failures are persisted in the encrypted, workspace-scoped SQLite outbox. The active session retries them every five seconds with their original idempotency keys and exposes an accessible queued-message status until confirmed. Each queued payload is additionally sealed with expo-crypto AES-256-GCM in the shared v2 outbox envelope, under a per-database key held only in device-only SecureStore (separate from the SQLCipher key), with tenant, workspace, space, principal, room and idempotency key as additional data. Tampered, re-scoped or still-plaintext rows are quarantined on replay and never sent; a key that cannot load fails replay closed and leaves rows pending. When the database opens, pending sealed rows whose key was lost are quarantined as seal_key_lost before a new key is created, and plaintext v2 rows written by an earlier build are sealed in one transaction because they already carry the full owner scope; nothing is dropped. The native composer uses the platform document picker for up to five supported files, hashes and uploads them inside the active scope, replays only opaque IDs, and opens authenticated downloads through the system share sheet.

Canonical room and thread URLs render a dedicated conversation detail instead of falling back to the generic Inbox. The screen names the requested opaque room or thread, resolves thread bindings only from the authenticated workspace, and mounts messages and the composer only after the resolved room is authorized. Late route responses are fenced, 401 detail loads clear the device credential, and sends retain the active room, attachment IDs, outbox, and idempotency rules. One shared workspace generation fences selection, send, recovery, and replay. Selection merges only its conversation slice into the latest workspace, while a per-session single-flight queue serializes send and replay outbox mutations. Failed upload, authentication, and network attempts keep the native draft and selected files until a send is confirmed or durably queued.

Forms management is available at /communications/forms using the current short-lived grant. Native public forms use /f/{opaqueToken} and the shared localized renderer; answers and bearer tokens are never placed in URLs.

Support case snooze and archive controls are available only when both support.authority and support.case-lifecycle are present in the explicit EXPO_PUBLIC_SUPPORT_OS_FLAGS list. The SupportOS API independently enforces the tenant/workspace rollout gate. Native retries preserve the operation key and the original snooze deadline; archive confirmation does not claim erasure.

Support case keyword search and saved-view apply, save, and archive are available only when support.authority and support.search-views are both present in that same explicit list. Results stay on the redacted SupportOS projection, saved-view mutations retain their retry identity, and late initial-list responses cannot replace a newer search result. Saved filters not editable on mobile remain apply/archive-only instead of being silently rewritten.

Ordinary case claim and self-release are available with support.authority; the native surface never exposes administrator assignment or governed steal. Live count-only collision labels and heartbeats additionally require support.case-presence, so presence remains disabled unless both that flag and authority are enabled. Outcome-ambiguous assignment retries preserve their key, and a completion for a previously selected case cannot rewrite the current case detail revision.

Merge, split, and link review is also authority-gated. Mobile refreshes and fences both case revisions through the shared relation orchestrator, presents a separate inline confirmation, retains retry identities after ambiguous outcomes, and reconciles only redacted case projections. Relation/evidence authority and CommunicationOS content references are never rendered.

Private-note composition requires the full authority, internal-note, composer, and reconciliation flag conjunction. The body is sent only through the governed compose operation to CommunicationOS-owned encrypted storage; the SupportOS mobile list renders body-free evidence. An ambiguous retry freezes the original body, case revision, and operation key together until completion or an explicit edit.

The Expo bundle imports only the Calm Signal font weights rendered by the shell: IBM Plex Sans 400/500/600, IBM Plex Mono 500, and Newsreader 600.

Run bun dev, bun android, bun ios, bun test, or bun run typecheck here.

Declared capabilities.

This manifest does not declare a capability catalogue. Use the guide, import map and source to assess the package.

Imports and export paths.

0 entries

These are package-manifest entry points. Named symbols listed above come from the capability catalogue; this is not an exhaustive TypeScript symbol reference.

This workspace does not declare package export paths.

Dependencies and related packages.

Runtime dependencies 22
@expo-google-fonts/ibm-plex-mono
0.4.1
@expo-google-fonts/ibm-plex-sans
0.4.1
@expo-google-fonts/newsreader
0.4.1
expo
~57.0.21
expo-crypto
~57.0.2
expo-document-picker
~57.0.1
expo-file-system
~57.0.5
expo-font
~57.0.3
expo-linking
~57.0.9
expo-router
~57.0.20
expo-secure-store
~57.0.3
expo-sharing
~57.0.18
expo-sqlite
~57.0.2
react
catalog:
react-native
catalog:native
react-native-css
catalog:native
react-native-safe-area-context
catalog:native
Development dependencies 4
@types/react
catalog:native
happy-dom
catalog:testing
typescript
catalog:native

Package scripts.

Commands declared by this package. Review its setup requirements before running them; no command here was executed by this review.

devexpo start
androidexpo run:android
iosexpo run:ios
typechecktsgo --noEmit
testbun test
lint:checknode ../../../scripts/biome.cjs check .
lint:fixnode ../../../scripts/biome.cjs check --write .
Votre vue

Make room for your context.

Shape the presentation around this moment. You can change it whenever you need.

Votre contexte

The different parts of you

Choose a starting point

Un mélange utile de contexte, de visuels et de guidage discret.

Tune each dimension
Each dimension can change independently. Product permissions and available actions stay unchanged.

Support the way you begin and return

Tune your support

Confort de lecture

Choisir votre langue

La langue de l’interface change uniquement le texte. Les marchés, les prix et les parcours conservent leurs propres paramètres.

Couverture des traductions

Une partie du contenu est affichée en anglais.

Navigation151
Graphe616
Catégories378
Portfolio833
Exemples2 035
Aperçu de la source1 542

D’autres traductions seront ajoutées à mesure que le contenu sera relu.

Cette préférence est enregistrée dans ce navigateur.

Rechercher sur le site

Des points de départ utiles

Aucun résultat. Essayez une expression plus courte, un nom d’opération ou un autre périmètre de recherche.

UN PEU DE PLACE POUR EXPLORER

Trouvez quelque chose à explorer.

Ouvrez un aperçu détaillé sur cette page, essayez une autre perspective ou suivez le détail vers sa propre page.

Fonctionnement des aperçus et des commandes
01

Regarder avant de partir

Survolez un lien ou sélectionnez-le avec Tab pour voir un aperçu. Cliquer sur le lien d’origine ou appuyer sur Entrée ouvre toujours sa destination.

02

Rester dans le contexte

Entrez dans l’aperçu pour explorer ses sections. Depuis un lien sélectionné, utilisez Alt + ↓ pour y entrer au clavier. Échap le ferme.

03

Ouvrir les possibilités

Les lignes dépliables, les choix de perspective et les commandes mises en évidence révèlent davantage. Votre vue adapte le confort de lecture et le contexte exploré.

Un bouton séparé pour voir de plus près

Affichez de petits boutons d’aperçu à côté des liens quand l’espace le permet. Touchez l’œil pour examiner ou le lien pour y aller directement. Ce choix reste dans cet onglet.

Aucun historique de navigation n’est collecté. La réduction des animations suit votre appareil et Votre vue.