appsWorkspace onlyv1.8.3

app.communicationos-web

Next.js and PWA shell for the CommunicationOS application kit.

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

Source snapshot bcc79fcc · Declared package version 1.8.3. 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-webapps

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

16 declarations · first 6 shownSELECT TO INSPECT

@lssm-tech/app.communicationos-web

The authenticated /communications/meetings surface is hCircle's calm, connection-first projection of the shared OPA meeting workspace. Preparation is optional and non-blocking; productivity scoring and clinical inference are not available, sensitive inference is ephemeral, and sharing remains consent-led. An opaque meetingRef selected by the route loads live contract-validated OPA state through the current hCircle access grant; route state never grants access.

The Search workspace calls the canonical communication.message.search@2.0.0 projection. Queries stay within the authenticated tenant, workspace, and space; the browser does not search provider APIs or infer authority from route state.

Thin Next.js App Router and installable PWA shell for CommunicationOS. It consumes @lssm-tech/bundle.communication-os, uses managed-cloud or self-hosted connectors, and declares encrypted IndexedDB as its projection store. Credentials never belong in browser storage.

For focused source feedback, run bun run check:edit -- --package @lssm-tech/app.communicationos-web --test packages/apps/communicationos-web/src/app/CommunicationSignIn.test.tsx. The reviewed fixture profile also accepts the inbox and route-copy test files; lint and source typechecking remain required. This is focused feedback, not affected-consumer or release acceptance.

bun run dev:focus -- --package @lssm-tech/app.communicationos-web selects the local signed-out UI fixture on http://127.0.0.1:43120. It mirrors this app into an ignored, disposable directory without dotenv or generated output, links existing workspace dependencies, and runs the existing Next development server. The loopback API fixture on port 43121 returns no authenticated session and denies sign-in and consequential mutations. It never sends invitations or messages. App edits are mirrored using filesystem events with a bounded 500 ms app-only reconciliation fallback; shared workspace source remains directly linked. Stop the command to close its server, fixture and source watcher. Cold-route and Fast Refresh qualification is recorded under docs/refactoring/lssm-ecosystem/evidence/w1-ui-feedback; the presence of this profile alone does not establish that the UI latency budgets have passed.

The qualified browser binding uses the existing CommunicationOS locale, capability and personalization providers and Calm Signal shell through their four module subpaths. The module's package-level browser metadata is a union of supported surfaces; it does not make its root or server exports browser-safe. Failed central sign-in responses are shown through the existing localized alert, and pending/error state is part of the local interaction qualification.

Signed-out users receive an invite-only hCircle entry surface. When NEXT_PUBLIC_HCIRCLE_LSSM_RP_ENABLED=1, it offers only central LSSM OIDC; the local invited-email magic-link control is removed from the rendered tree. The web-owned callback strictly forwards the bounded authorization response to the hCircle API; the browser route never exchanges tokens or accepts an arbitrary destination. Disabling the central RP restores the existing-email magic-link path as an explicit rollback authority, so both authorities are never active in one deployment.

Authenticated users receive an explicit product-local sign-out in the Calm Signal shell. It clears only the current hCircle session projection, active-room selection, and scoped queued-message outbox; the central Passport and other products retain their independent sessions. The protected production replay is opt-in through HCIRCLE_LSSM_PRODUCTION_CANARY_AUTHORIZED=1, exact E2E_PRODUCTION_BASE_URL=https://chat.hcircle.app, and secret-manager-provided canary credentials. bun run test:production-oidc-canary proves central sign-in, optional consent, hCircle session exchange, product sign-out, denied replay, and Passport sign-out with Playwright traces and screenshots disabled.

The public host boundary is explicit: www.hcircle.app serves the Human Topography product site, localized EN/FR/ES feature/persona/solution pages, waitlist and status experiences, and deterministic sitemap/robots/LLMS files; chat.hcircle.app owns the Chat one-pager and authenticated application. The apex redirects to www, private app routes are excluded from discovery, and unknown hosts fail with 421. All acquisition surfaces use the shared design system; the authenticated CommunicationOS route registry remains unchanged.

A hosting-recovery canary may set HCIRCLE_PREVIEW_SURFACE=marketing. Only the exact injected RAILWAY_PUBLIC_DOMAIN then rewrites to the public acquisition surface; a provider suffix or another generated domain is not trusted. The canary does not activate CommunicationOS auth, API, realtime, or waitlist delivery.

The PWA registers a same-origin service worker for the offline shell and hashed static assets only. Navigations fall back to the Calm Signal /offline route; /api/*, /v2/*, messages, credentials, and authenticated responses are never placed in the service-worker cache. Security headers bind browser connections to the configured CommunicationOS API and realtime origins.

The Calm Signal Spaces and Rooms routes consume live typed projections. They show isolation and encryption posture, list canonical rooms, and keep the explicit active-room choice for the current browser session.

The catch-all route validates all 23 canonical CommunicationOS paths through the shared route registry. Room and thread detail URLs retain their opaque target; unknown paths return the Next.js not-found boundary, disabled extensions render an explicit recovery state, and neither case silently opens another room. Traversal-shaped, separator-bearing, malformed, control-character, and oversized opaque targets are rejected by the same shared resolver before the conversation surface receives an identifier.

The production canary proves HTTP resolution for all 23 canonical paths. Its 10-route anonymous public-web cohort additionally exercises 320, 390, 768, 1280, and 1440 CSS pixels in light and dark mode with reduced motion. Every representative route receives route-level Axe scanning in both themes; phone widths reject sub-44px visible controls, and keyboard focus, navigation containment, active-route state when navigation links are present, console errors, and document overflow are checked explicitly. This evidence is scoped to standalone web and does not promote PWA, Expo, or Tauri qualification.

Inbox is a dedicated route-specific overview rather than an alias for the active room. It shows the authorized room count, a compact recent-message ledger for the active room, canonical links to every other authorized room, and an explicit room-setup recovery state when the scope is empty.

The room composer accepts up to five PDF, image, CSV, or text attachments (5 MB each). It verifies and uploads files before sending, preserves opaque attachment IDs during offline message replay, and downloads through the authenticated API; no provider or storage URL enters the browser projection. At phone widths, the message field and explicit Attach/Send actions reflow into full-width rows with 44px-or-larger targets. Accounts without an authorized space receive a recovery-oriented empty state instead of a blank content region.

The governed-work routes are no longer event-only placeholders. Each route can create a persisted work item and presents the allowed approve, reject, or resolve decision. Realtime and periodic refreshes reconcile the journal-backed state, while the API remains the authority for manager-only decisions.

The Connections route presents one-click official OAuth cards for Gmail, Slack, and WhatsApp Business with explicit managed/self-hosted placement. Telegram's opaque vault-reference workflow remains behind an operator-only disclosure; public users are never asked to paste provider tokens or secret references.

Run bun dev, bun test, bun run typecheck, or bun run build from this package.

Better Auth 1.7 callback forwarding

The existing public LSSM callback alias forwards only its bounded authorization response to the fixed API owner's /auth/callback/ endpoint, replacing the removed /auth/oauth2/callback/ path. Existing issuer and parameter checks remain in force. API token exchange, provider registrations, cookies and account-identity migration still require live qualification before cutover.

Build compute policy

Automatic Vercel Git builds are disabled for this app. Build compute is assigned to Railway; this does not change the existing runtime or domain topology. See the operator policy and evidence† for configuration scope and the unqualified Vercel prebuilt delivery gap.

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 16
@fontsource/ibm-plex-mono
5.3.0
@fontsource/ibm-plex-sans
5.3.0
@fontsource/newsreader
5.3.0
next
catalog:
react
catalog:
react-dom
catalog:
Development dependencies 6
@tailwindcss/postcss
4.3.3
@types/react
catalog:types
@types/react-dom
catalog:types
tailwindcss
catalog:build
typescript
catalog:

Package scripts.

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

devnext dev
buildbun --bun next build
startnext start
typechecktsgo --noEmit
testbun test
test:production-canaryplaywright test -c playwright.production-canary.config.ts
test:production-oidc-canaryplaywright test -c playwright.production-canary.config.ts tests-e2e/lssm-oidc-production-canary.e2e.ts
lint:checkgit ls-files -co -z --exclude-standard -- . ':!next-env.d.ts' | xargs -0 node ../../../scripts/biome.cjs check
lint:fixgit ls-files -co -z --exclude-standard -- . ':!next-env.d.ts' | xargs -0 node ../../../scripts/biome.cjs check --write
Your view

Make room for your context.

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

Your context

The different parts of you

Choose a starting point

A useful mix of context, visuals and gentle guidance.

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

Reading comfort

Choose your language

Interface language changes text only. Markets, prices and workflows keep their own settings.

Translation coverage

Original source

Navigation151
Graph616
Categories378
Portfolio833
Examples2,035
Source preview1,542

More translations will be added as content is reviewed.

This preference is saved on this browser.

Search the website

Useful starting points

No results. Try a shorter phrase, an operation name or another search area.

A LITTLE ROOM TO EXPLORE

Find something to explore.

Open a closer look on this page, try a different perspective, or follow the detail into its own page.

How previews and controls work
01

Look before you leave

Hover a link or focus it with Tab to see a preview. Clicking the original link or pressing Enter always opens its destination.

02

Stay with the context

Move into the preview to explore its sections. Use Alt + ↓ from a focused link to enter it with the keyboard. Escape closes it.

03

Open the possibilities

Disclosure rows, perspective choices and highlighted controls reveal more. Your view changes reading comfort and the context you explore.

A separate button for a closer look

Show small preview buttons beside links where there is room. Tap the eye to inspect, or tap the link to go straight there. This choice stays in this tab.

No browsing history is collected. Reduced motion follows your device and Your view.