ContentTraker

ContentTraker

ContentTraker is a Phoenix-built AI knowledge workspace and business-memory platform used to organize documents, prompts, discussions, and controlled AI tool access around application work.

Status Available
Rank 3
Band High
Monthly support $480.00
Viewed 28

Description

ContentTraker Product Specification

AIID tokenized, reconstructed from the local ArticleMngrSLN codebase.

Status: Draft
Date: 2026-06-08
Source basis: Code and checked-in documentation in C:\Users\Richard\source\repos\PhxBiz\ArticleMngrSLN
Purpose: Determine whether the current implementation can be worked backward into a product specification.

1. Summary

ContentTraker is a private AI memory and workspace product. It lets authenticated users organize work into workspaces, projects, conversation threads, turns, prompts, personas, digital assets, and knowledge lanes. The product keeps user-created material and AI conversations in durable storage, makes selected knowledge searchable, and exposes scoped agentic interfaces so external AI tools can ask questions, create assets, and capture work without bypassing application authorization.

The repository name and namespaces still use ArticleMngr, but the visible product identity in the web UI and deployment topology is ContentTraker.

The product is built around three knowledge levels:

Level Product name Used for
KBA Knowledge Base Agent Curated workspace/business knowledge from published digital assets.
KPA Knowledge Pulse Agent Project, thread, turn, and conversation-memory knowledge inside a workspace.
KUA Knowledge User Agent User-authorized synthesis across KBA, KPA, and reference workspaces.

The main application hierarchy is:

User/Membership
  -> Workspace (ContentKeeper)
    -> Project
      -> ConversationThread
        -> ConversationTurn
    -> DigitalAsset
    -> ContentSourceSet
  -> PersonalPrompt
  -> Persona
  -> MCP/API access keys

2. Code Evidence

This specification was reconstructed from these primary sources:

Area Evidence
Product home and visible hierarchy ArticleMngrUserWeb/Components/Pages/Home.razor
Main navigation and product surfaces ArticleMngrUserWeb/Components/Layout/NavMenu.razor
Workspace UI ArticleMngrUserWeb/Components/Pages/ContentKeeperManagement.razor
User realm chat and journal ArticleMngrUserWeb/Components/Pages/MyWorkspacePage.razor
Workspace model ArticleMngrShared/Models/ContentKeeper.cs
Project model ArticleMngrShared/Models/Project.cs
Thread and turn models ArticleMngrShared/Models/ConversationThread.cs, ArticleMngrShared/Models/ConversationTurn.cs
Digital asset model ArticleMngrShared/Models/DigitalAsset.cs
Knowledge lane routing ArticleMngrShared/Engines/AgentRoutingService.cs
Workspace summary and MCP read surface ArticleMngrShared/MCP/Services/WorkspaceReadService.cs
Workspace AI runtime ArticleMngrShared/Engines/ResponsesConversationEngine.cs
KUA runtime ArticleMngrShared/Engines/MyWorkspaceChatEngine.cs
MCP tools ArticleMngrShared/MCP/WorkspaceMcpTools.cs, ArticleMngrShared/MCP/DigitalAssetMcpTools.cs, ArticleMngrShared/MCP/PromptPersonaMcpTools.cs
Dedicated MCP host ArticleMngrMcpServer/Program.cs, ArticleMngrMcpServer/ArticleMngrMcpServerServiceCollectionExtensions.cs
KUA MCP host KnowledgeUserAgent.Mcp/Program.cs
Token broker TokenBrokerApi/Program.cs
Background ingest worker ArticleMngrBackgroundWorkerService/Program.cs, ArticleMngrBackgroundWorkerService/ArticleMngrBackgroundWorkerServiceCollectionExtensions.cs
Commercial entitlement ArticleMngrShared/Models/Commercial/*, ArticleMngrShared/Services/Commercial/*
Activity log and investigations ArticleMngrShared/Models/WorkspaceActivityLogEntity.cs, ArticleMngrShared/Models/WorkspaceInvestigationEntity.cs, ArticleMngrUserWeb/Components/Pages/WorkspaceActivityLogPage.razor
Deployment topology ContentTrakerAppHost/AppHost.cs
User manuals _Documentation/UserManual/*.md

3. AIID Token Convention

Token format:

AIID-CT-{AREA}-{NNN}

Rules used in this document:

  • CT means ContentTraker.
  • Tokens identify product intent, not filenames or method names.
  • Source references point to local code evidence because this pass was requested from the codebase.
  • Token status is Draft because no product owner review has been recorded in this artifact.

4. Product Levels

AIID area Level Used for Primary entities or surfaces
PRODUCT Product boundary Defines ContentTraker as private AI memory for user-created work and workspace-scoped AI recall. Home page, user manuals, AppHost
IDENTITY User and access Authenticates users, maps app users, manages roles and service-admin scope. AppUser, RoleAssignment, claims pages
COMMERCIAL Membership and entitlement Controls paid/trial/commercial access and usage limits for expensive AI operations. Membership, CommercialPlan, WorkspaceAiEntitlementGuard
WORKSPACE Workspace Top-level content and access boundary. In code this is ContentKeeper. ContentKeeper, Workspaces page
PROJECT Project Focuses work inside a workspace and groups threads toward a purpose or asset. Project, project types
THREAD Thread Captures a conversation inside a project. ConversationThread
TURN Turn Stores individual messages with role and inclusion/exclusion state. ConversationTurn
ASSET Digital asset Retains files, prompts, transcripts, source summaries, and final outputs. DigitalAsset
SOURCE Source set Groups imported/crawled external source material and its synthesized understanding. ContentSourceSet, web crawler
KBA Workspace knowledge lane Searches published workspace digital assets. FoundryVectorStoreId, KBA routing
KPA Project memory lane Searches project/thread/turn memory. ProjectFoundryVectorStoreId, KPA routing
KUA User realm lane Synthesizes across authorized KBA/KPA sources and reference workspaces. My Workspace, KUA MCP
PROMPT Personal prompt Stores reusable user instructions and promotes them into workspaces as prompt assets. PersonalPrompt, My Prompts
PERSONA Persona Stores AI communication style and applies it at project level. Persona, My Personas
MCP Agentic interface Lets external AI clients access workspace functions through scoped tokens or API keys. MCP tools, TokenBroker
INGEST Asset ingest Converts, stores, queues, indexes, and audits asset ingestion. AssetIngestWorker, blob/Cosmos/Foundry
OPS Operations and diagnostics Records application activity, investigations, retrieval diagnostics, and security scope. Activity Log, Search Diagnostics
DEPLOY Runtime topology Defines deployed services and shared configuration boundaries. Aspire AppHost

5. AIID Token Registry

AIID Kind Level Intent Acceptance rule Source reference
AIID-CT-PRODUCT-001 product-capability PRODUCT Present ContentTraker as private AI memory for created work, prompts, transcripts, files, and conversations. Home page and authenticated app surfaces communicate workspace-scoped AI memory rather than a generic file manager. ArticleMngrUserWeb/Components/Pages/Home.razor
AIID-CT-IDENTITY-001 business-rule IDENTITY Resolve authenticated principals to app users and role assignments. Protected product areas require authenticated app-user context before workspace or admin actions execute. ArticleMngrShared/Models/AppUser.cs, ArticleMngrShared/Engines/AppUserEngine.cs
AIID-CT-IDENTITY-002 business-rule IDENTITY Allow service-admin features only when the user has the role and activates the admin scope. Admin links such as asset types, activity log, search diagnostics, claims, and security scope only appear in the active service-admin path. ArticleMngrUserWeb/Components/Layout/NavMenu.razor
AIID-CT-COMMERCIAL-001 business-rule COMMERCIAL Gate paid AI-backed operations through membership, plan, commercial status, and usage state. Expensive workspace AI operations can be allowed, warned, or blocked from local commercial state without direct provider calls. ArticleMngrShared/Services/Commercial/WorkspaceAiEntitlementGuard.cs
AIID-CT-WORKSPACE-001 data-state WORKSPACE Use ContentKeeper as the workspace and access boundary. Workspace-scoped content, projects, members, assets, source sets, and vector-store bindings remain attached to the selected ContentKeeper. ArticleMngrShared/Models/ContentKeeper.cs
AIID-CT-WORKSPACE-002 ux-element WORKSPACE Provide Workspace Management as the main authenticated work surface. Selecting a workspace enables Conversation Manager, Knowledge Base, Agentic Interfaces, and MCP Access areas. ArticleMngrUserWeb/Components/Pages/ContentKeeperManagement.razor
AIID-CT-PROJECT-001 data-state PROJECT Use projects to group focused work inside a workspace. A project has status, source, type, members, threads, optional persona, and optional produced digital asset. ArticleMngrShared/Models/Project.cs
AIID-CT-PROJECT-002 business-rule PROJECT Classify project intent with root project types. Project lists can separate question capture, digital asset production, and harness conversation capture. ArticleMngrShared/Models/ProjectType.cs
AIID-CT-THREAD-001 data-state THREAD Store conversation threads inside projects. A thread always references a project and can hold purpose, summary, prompt content, digital-asset usage state, session ID, turns, and token usage. ArticleMngrShared/Models/ConversationThread.cs
AIID-CT-TURN-001 data-state TURN Store each message as an auditable conversation turn. Turns preserve role, content, thread ID, and exclusion state for downstream AI processing. ArticleMngrShared/Models/ConversationTurn.cs
AIID-CT-ASSET-001 data-state ASSET Retain digital assets as workspace knowledge objects. Assets carry title, file metadata, type, status, source provenance, storage URL, tags, knowledge lane, and indexing state. ArticleMngrShared/Models/DigitalAsset.cs
AIID-CT-ASSET-002 validation ASSET Index only published non-prompt assets by default. Assets are indexable when status is Published and the asset is not categorized as a prompt. ArticleMngrShared/Models/DigitalAsset.cs
AIID-CT-SOURCE-001 data-state SOURCE Preserve external imported source sets separately from retained digital assets. Crawled or imported sets store admission reason, intended use, source items, source-understanding reference, and context relationships. ArticleMngrShared/Models/ContentSourceSet.cs
AIID-CT-KBA-001 integration KBA Route workspace knowledge questions to curated workspace assets. KBA is provisioned when the workspace has a workspace vector store binding used by Responses file_search. ArticleMngrShared/Engines/AgentRoutingService.cs
AIID-CT-KPA-001 integration KPA Route project memory questions to project/thread memory. KPA is provisioned when the workspace has a project vector store binding. ArticleMngrShared/Engines/AgentRoutingService.cs
AIID-CT-KUA-001 integration KUA Synthesize across user-authorized KBA/KPA scope. KUA can answer from the ordered user realm and must cite known workspace/lane/source context when useful. ArticleMngrShared/Engines/MyWorkspaceChatEngine.cs
AIID-CT-PROMPT-001 ux-element PROMPT Maintain a personal reusable prompt library. Users can create, edit, activate/deactivate, delete, AI-draft, and promote prompts into a workspace. ArticleMngrUserWeb/Components/Pages/PersonalPromptManagement.razor
AIID-CT-PERSONA-001 ux-element PERSONA Maintain user-level AI speaking styles. Active personas can be selected at project level and injected as AI instructions for project conversations. ArticleMngrUserWeb/Components/Pages/PersonaManagement.razor, ArticleMngrShared/Models/Project.cs
AIID-CT-AI-001 integration KBA/KPA Use Responses API as the active conversation runtime. Conversation processing builds instructions, adds scoped KBA/KPA evidence, calls Responses, and persists assistant/error turns plus token usage. ArticleMngrShared/Engines/ResponsesConversationEngine.cs
AIID-CT-MCP-001 integration MCP Expose workspace tools through a scoped MCP boundary. MCP calls validate session scope before listing workspaces, summarizing workspaces, asking questions, reading assets, or reading threads. ArticleMngrShared/MCP/WorkspaceMcpTools.cs
AIID-CT-MCP-002 command MCP Let external agents create workspace assets and capture conversation work. Scoped MCP tools can create assets, append turns, capture threads, and queue ingestion without direct storage access. ArticleMngrShared/MCP/DigitalAssetMcpTools.cs, ArticleMngrShared/MCP/ConversationBatonMcpTools.cs
AIID-CT-INGEST-001 business-rule INGEST Process asset ingestion outside the web and MCP request path. The worker owns ingest processing, including classification, storage, conversion, vector-store upload, telemetry, and fallback policy. ArticleMngrBackgroundWorkerService/ArticleMngrBackgroundWorkerServiceCollectionExtensions.cs
AIID-CT-OPS-001 data-state OPS Record workspace activity events and investigation records. Important workflows can emit correlated activity rows and service-admin users can investigate and annotate them. _Documentation/Application-Activity-Log-Feature-Guide.md
AIID-CT-OPS-002 ux-element OPS Provide diagnostics for KBA/KPA retrieval readiness and evidence. Search Diagnostics runs selected-workspace KBA and KPA diagnostics and explicitly excludes KUA execution. ArticleMngrUserWeb/Components/Pages/SearchDiagnostics.razor
AIID-CT-DEPLOY-001 integration DEPLOY Deploy ContentTraker as a multi-service Azure/Aspire application. AppHost declares userweb, mcp, kua-mcp, tokenbroker, and worker, using existing Azure platform resources and shared configuration. ContentTrakerAppHost/AppHost.cs

6. Core Product Workflows

AIID-CT-WORKSPACE-010 - Create and Select Workspace

Actor: Authenticated user
Intent: Create a bounded area for related work and AI memory.

Flow:

  1. User opens Workspace Management.
  2. User creates or selects a workspace.
  3. The workspace stores name, description, purpose, type, members, projects, assets, source sets, tag references, and vector-store bindings.
  4. The selected workspace enables Conversation Manager, Knowledge Base, Agentic Interfaces, and MCP Access.

Acceptance rule: A selected workspace becomes the enforced boundary for projects, threads, assets, knowledge setup, tokens, and MCP access.

AIID-CT-KNOWLEDGE-010 - Build Workspace Knowledge

Actor: User, MCP client, background worker
Intent: Convert retained assets into searchable workspace knowledge.

Flow:

  1. User or MCP client creates a digital asset.
  2. Asset metadata and content are stored through app-owned resource access.
  3. Asset is assigned status, type, source/provenance metadata, and knowledge lane.
  4. Ingest work is queued.
  5. The background worker loads content, converts when needed, uploads to the configured vector-store lane, and updates indexing state.

Acceptance rule: Published non-prompt KBA assets are candidates for workspace knowledge retrieval; KPA assets are project-memory candidates.

AIID-CT-CONVERSATION-010 - Ask a Workspace Question

Actor: User or scoped MCP client
Intent: Ask a question inside a workspace and preserve the result as project/thread memory.

Flow:

  1. User or MCP client submits a question.
  2. The app resolves workspace and project scope.
  3. A conversation thread is created or reused.
  4. User turn is appended.
  5. KBA and KPA retrieval run when digital assets are enabled.
  6. Responses API receives conversation context, workspace instructions, persona/thread instructions, and retrieved evidence.
  7. Assistant or error-handling turn is persisted.

Acceptance rule: The answer must be grounded in supplied context where available and must say what is missing when context is insufficient.

AIID-CT-KUA-010 - Ask My Workspace

Actor: Authenticated user
Intent: Ask across the user's authorized ContentTraker realm.

Flow:

  1. User opens My Workspace.
  2. System resolves the user's home workspace.
  3. System loads the ordered realm of accessible workspaces.
  4. KUA searches across authorized KBA/KPA evidence.
  5. The answer is generated into the home workspace chat thread.

Acceptance rule: KUA scope is constrained to workspaces the user is authorized to manage or view.

AIID-CT-MCP-010 - Connect Agentic Interface

Actor: User, external AI client
Intent: Let external AI tooling work with a workspace safely.

Flow:

  1. User selects a workspace and project.
  2. User creates a scoped token or agentic interface key.
  3. External client calls MCP HTTP tools with bearer auth or bootstrap/API-key flow.
  4. Server validates ContentKeeper and Project scope.
  5. Tools operate only inside validated scope and authorized reference workspaces.

Acceptance rule: MCP tools must not silently fall back to another workspace or project when binding is missing or invalid.

AIID-CT-OPS-010 - Investigate What Happened

Actor: ServiceAdmin, AI investigation tool
Intent: Reconstruct operational behavior after a visible user action.

Flow:

  1. Application emits correlated activity events.
  2. ServiceAdmin opens Activity Log.
  3. User filters events or opens an investigation.
  4. Investigation records problem, resolution, notes, narrative, and related activity rows.
  5. ActivityLog MCP can inspect and update investigation records through a controlled tool surface.

Acceptance rule: A user-visible workflow can be reconstructed through correlation IDs and investigation records without direct storage credentials.

7. Product Surface Map

Surface Route or host Primary use AIID anchors
Home / Explain ContentTraker and its hierarchy. AIID-CT-PRODUCT-001
Workspace Management /workspaces Manage workspaces, projects, threads, knowledge, agentic interfaces, and MCP access. AIID-CT-WORKSPACE-002
My Workspace /my-workspace Chat across authorized realm and maintain journal entries. AIID-CT-KUA-001
My Prompts /my-prompts Manage reusable user prompts. AIID-CT-PROMPT-001
My Personas /personas Manage reusable AI communication styles. AIID-CT-PERSONA-001
User Profile /userprofilepage Manage profile, time settings, and default AI settings. AIID-CT-IDENTITY-001
Subscription /commercial/access Show membership and commercial access state. AIID-CT-COMMERCIAL-001
Search Diagnostics /search-diagnostics Diagnose selected-workspace KBA/KPA retrieval. AIID-CT-OPS-002
Activity Log /activity-log Inspect operational events and investigations. AIID-CT-OPS-001
Security Scope Inspector /admin/security-scope Inspect claims, roles, and active security scope. AIID-CT-IDENTITY-002
Asset Type Management /admin/asset-types Govern digital asset taxonomy. AIID-CT-ASSET-001
MCP HTTP host /mcp on ArticleMngrMcpServer External scoped workspace tools. AIID-CT-MCP-001
KUA MCP HTTP host /mcp on KnowledgeUserAgent.Mcp User-realm second-brain tools. AIID-CT-KUA-001
Token Broker API TokenBrokerApi Exchange/issue workspace-scoped access credentials. AIID-CT-MCP-010
Background Worker ArticleMngrBackgroundWorkerService Process asset ingest jobs. AIID-CT-INGEST-001

8. Business Rules

AIID Rule
AIID-CT-WORKSPACE-020 Workspace scope is the product's main security and context boundary.
AIID-CT-PROJECT-020 A project must live inside one workspace and may contain many threads.
AIID-CT-THREAD-020 A thread must live inside one project and preserves all included turns used for AI processing.
AIID-CT-ASSET-020 Digital assets are retained as metadata plus lazy-loaded content; blob content is not assumed to be loaded with metadata.
AIID-CT-ASSET-021 Prompt assets are not indexed as normal KBA assets by default.
AIID-CT-KBA-020 KBA readiness depends on workspace vector-store binding, not legacy Persistent Agent IDs.
AIID-CT-KPA-020 KPA readiness depends on project vector-store binding.
AIID-CT-KUA-020 KUA is a logical user-authorized synthesis lane and can use available KBA/KPA bindings.
AIID-CT-AI-020 Active conversation runtime uses Responses API with scoped retrieval context; legacy Foundry agent IDs are retained as metadata/cleanup state.
AIID-CT-COMMERCIAL-020 Commercial authorization should use local ContentTraker records rather than live payment-provider calls during normal requests.
AIID-CT-MCP-020 External tool access must validate workspace/project scope before execution.
AIID-CT-OPS-020 Operational logs should preserve correlated workflow history and investigations as separate long-lived records.

9. Data Objects

Object Product role AIID anchors
AppUser Authenticated application user with claims, roles, preferences, and defaults. AIID-CT-IDENTITY-001
RoleAssignment Role grant scoped to user and optional entity boundary. AIID-CT-IDENTITY-002
Membership Commercial account that pays for or governs usage. AIID-CT-COMMERCIAL-001
CommercialPlan Product capability and usage policy. AIID-CT-COMMERCIAL-001
MembershipUsageMonth Monthly usage aggregate for entitlement checks. AIID-CT-COMMERCIAL-001
ContentKeeper Workspace boundary. AIID-CT-WORKSPACE-001
Project Focused work area inside a workspace. AIID-CT-PROJECT-001
ProjectType Project intent classifier. AIID-CT-PROJECT-002
ConversationThread Conversation container. AIID-CT-THREAD-001
ConversationTurn Message-level memory. AIID-CT-TURN-001
DigitalAsset Retained knowledge artifact and storage/indexing state. AIID-CT-ASSET-001
ContentSourceSet Imported source-set boundary and source-understanding anchor. AIID-CT-SOURCE-001
PersonalPrompt User-level reusable prompt. AIID-CT-PROMPT-001
Persona User-level AI behavior profile. AIID-CT-PERSONA-001
McpApiAccessKey Agentic interface credential and reference-workspace binding. AIID-CT-MCP-001
WorkspaceActivityLogEntity Operational event row. AIID-CT-OPS-001
WorkspaceInvestigationEntity Human/agent interpretation of operational events. AIID-CT-OPS-001

10. Runtime Architecture

The product runs as a multi-service application:

Service Responsibility
ArticleMngrUserWeb (userweb) Blazor Server UI for workspaces, knowledge, conversations, prompts, personas, settings, subscription, diagnostics, and admin tools.
ArticleMngrMcpServer (mcp) HTTP MCP host for workspace-scoped tools.
KnowledgeUserAgent.Mcp (kua-mcp) HTTP MCP host for user-realm KUA tools.
TokenBrokerApi (tokenbroker) Token/API-key exchange and authorization support for external clients.
ArticleMngrBackgroundWorkerService (worker) Exclusive processor for asset ingest jobs and indexing work.
Existing Azure resources Cosmos DB, Blob Storage, Key Vault, Azure App Configuration, Azure AI Foundry, and related platform services.

Configuration is intended to come from Azure App Configuration and Key Vault references. The Aspire AppHost declares the service topology but does not provision the external platform resources.

11. Accessibility and UX Expectations

These expectations are inferred from the Blazor UX, Bootstrap patterns, and AIID accessibility requirements:

AIID Expectation
AIID-CT-UX-001 Primary navigation links must expose clear labels and active state for authenticated users.
AIID-CT-UX-002 Workspace selection must clearly enable or disable dependent workspace tools.
AIID-CT-UX-003 Provisioning, indexing, diagnostics, and MCP-token actions must expose busy, success, failure, and retry states.
AIID-CT-UX-004 Admin-only areas must not appear as normal user actions.
AIID-CT-UX-005 AI answers must distinguish grounded evidence from missing or insufficient context.

12. Reverse-Engineering Findings

The codebase is spec-reconstructable. The strongest product anchors are the domain models, user manuals, workspace UI, knowledge-lane routing services, MCP tools, and Aspire AppHost.

Findings:

  • The product boundary is clearer than the repository name. ArticleMngr is the implementation namespace; ContentTraker is the product.
  • ContentKeeper is the real workspace boundary and should be named as such in any formal spec.
  • KBA, KPA, and KUA are real product levels in code, not only documentation labels.
  • The active AI runtime is Responses API plus scoped retrieval context. Legacy Persistent Agent IDs remain as metadata and cleanup state.
  • External AI access is a first-class product capability, not a developer-only side channel.
  • Commercial entitlement is emerging as a real business boundary around AI-backed usage.
  • Activity logging and investigations are becoming an operational-memory capability that may later be separated as its own service.

13. Open Questions

AIID Question
AIID-CT-OPEN-001 Should the public product language call the top-level object "Workspace" only, or expose ContentKeeper as an internal/spec term?
AIID-CT-OPEN-002 Should KBA/KPA/KUA be presented to end users as named agents, named knowledge levels, or hidden routing concepts?
AIID-CT-OPEN-003 Is publication lifecycle still a core user-facing product promise, or is it legacy from ArticleMngr-era language?
AIID-CT-OPEN-004 What usage caps, price tiers, and hard enforcement rules should move from commercial planning into approved product behavior?
AIID-CT-OPEN-005 Should Activity Log remain embedded in ContentTraker or become a shared operational service?
AIID-CT-OPEN-006 Which AIID tokens should eventually be embedded in UI via data-aiid-token attributes for traceability overlays?

To turn this reconstructed document into an approved product specification:

  1. Review and approve the product-level names for Workspace, KBA, KPA, KUA, Agentic Interfaces, and My Workspace.
  2. Decide which open questions should be resolved before tokenizing UI elements.
  3. Convert this draft into the AIID document flow:
    • contenttraker.spec.original.v1.0.md
    • contenttraker.spec.aiid-assumptions.v1.0.md
    • contenttraker.spec.aiid-tokenized.v1.0.md
    • contenttraker.spec.aiid-final.v1.0.md
  4. Promote the draft token registry in this document to the authoritative AIID registry only after the approved names and levels are stable.

Public Q&A

No public Q&A history is visible yet.

An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.