From 709c0678ecd8686d92978971f9e173aecd16c143 Mon Sep 17 00:00:00 2001 From: Jino Jose Date: Tue, 1 Sep 2026 10:50:06 +0530 Subject: [PATCH] docs: document live Nexus 155 features and architecture --- docs/CURRENT_CAPABILITIES.md | 197 +++++++------ ...XUS_ONE_AI_LIVE_TECHNICAL_REFERENCE_155.md | 278 ++++++++++++++++++ ..._AI_Live_Features_and_Architecture_155.pdf | Bin 0 -> 104864 bytes docs/README.md | 3 + 4 files changed, 386 insertions(+), 92 deletions(-) create mode 100644 docs/NEXUS_ONE_AI_LIVE_TECHNICAL_REFERENCE_155.md create mode 100644 docs/Nexus_One_AI_Live_Features_and_Architecture_155.pdf diff --git a/docs/CURRENT_CAPABILITIES.md b/docs/CURRENT_CAPABILITIES.md index 27bea6d..ed60924 100644 --- a/docs/CURRENT_CAPABILITIES.md +++ b/docs/CURRENT_CAPABILITIES.md @@ -1,109 +1,122 @@ -# Nexus One AI — Current Capability Catalog +# Nexus One AI - Current Capability Catalog -Last verified: 21 July 2026 -Reference environment: `172.16.10.144` -Portal: `https://172.16.10.144:9445` -Open WebUI: `https://172.16.10.144:9446` +Last verified: 1 September 2026
+Reference environment: `172.16.10.155` (`srv1`, K3s node `nexus-agent`)
+Canonical portal origin: `https://nexus-dev.cezen.lan`
+Detailed architecture: [NEXUS_ONE_AI_LIVE_TECHNICAL_REFERENCE_155.md](NEXUS_ONE_AI_LIVE_TECHNICAL_REFERENCE_155.md)
+Shareable PDF: [Nexus_One_AI_Live_Features_and_Architecture_155.pdf](Nexus_One_AI_Live_Features_and_Architecture_155.pdf) -This document is the presentation and product-description source of truth for -what each visible Nexus One AI tool does. “Certified” means its core action was -completed against the deployed backend with a real persisted result. It does -not mean every scale, hardware, security, or production-hardening scenario has -been certified. +This catalog records what is visible in, or evidenced by, the current `.155` +Enterprise Pilot environment. A visible screen is not automatically a certified +end-to-end capability. Status is therefore expressed as **Live**, **Gated**, +**Provision-only**, or **Known issue**. ## Product in one sentence Nexus One AI is a customer-controlled enterprise AI platform that combines -local model inference, governed knowledge and automation workflows, evaluation, -application development, Kubernetes operations, monitoring, and recovery behind -one identity and portal. +local/OpenAI-compatible inference, governed knowledge and documents, reusable +prompts, evaluation, automation, application creation, role-based governance, +Kubernetes operations, observability, backup and offline release controls behind +one identity plane and portal. -## User-facing AI tools +## Build and runtime baseline -| Tool | What it does | Current verified result | +| Item | Verified state on 1 September 2026 | +|---|---| +| Appliance | Ubuntu 22.04.5 LTS, single-node K3s `v1.36.2+k3s1` | +| Node | 8 vCPU, 15 GiB RAM, 392 GiB root volume, 71% used | +| Latest signed release artifact present | `nexus-one-ai-1.0.0-rc1.15-a7bd086...tar.zst` | +| Release model | Enterprise Pilot, Gate 10 provisional; not production-promotable | +| Live updates | Kubernetes ConfigMap and deployment overlays continue beyond the signed RC artifact | +| Portal / Core API / Open WebUI probes | HTTP 200 from the canonical ingress | +| Core API / Portal / App Gateway | Two ready replicas each | +| Daily readiness evidence | Pass, generated 31 August 2026 06:06 UTC | +| Security evidence | Pass, generated 1 September 2026 00:00 UTC | +| Backup evidence | Pass, generated 1 September 2026 04:55 UTC; 32 retained backups; latest 2.52 hours old | +| Known live issue | One newer document-scanner pod is in `CrashLoopBackOff`; an older scanner replica remains ready | + +The server does not expose one immutable identifier that includes every +post-release overlay. For traceability, quote both the RC artifact and this +verification date rather than describing `.155` as a single clean release. + +## User workspaces + +| Group | Capability | Current scope and status | |---|---|---| -| AI Workspace | Provides persistent multi-conversation chat with installed local models, system prompts, temperature controls, and image input where supported. | Certified with real local inference; failed model calls are shown as failures and do not fall back to simulated answers. | -| Nexus Notebook / Knowledge Base | Uploads and indexes documents, searches ChromaDB, and answers questions using retrieved source passages. | Certified with document ingestion, vector retrieval, grounded answers, and citations. | -| Meeting Assistant | Converts a transcript into a summary, topics, decisions, sentiment, action items, and formatted minutes. | Transcript-to-minutes flow certified with real model output. Audio transcription remains dependent on supported audio and speech-model availability. | -| Prompt Library | Stores reusable prompts by business category, tags, and document requirements. | Certified for authenticated listing and administrative create, update, and delete operations. | -| Prompt Studio | Builds prompts with personas, system instructions, parameters, optional document context, history, and hand-off to comparison or evaluation. | Certified with a seeded executive demo prompt and real model execution. | -| Response Comparison | Sends the same system and user prompt to two to four installed models and displays response, latency, and token usage side by side. | Certified with genuine `phi3:mini` and `llama3.1:8b` responses. Browser history is presentation convenience, not a server-side evaluation record. | -| Agent Studio | Defines governed multi-step agents that call models and platform tools. | Certified with a completed real agent pipeline and persisted execution result. | -| Workflow Designer | Executes ordered AI, retrieval, transformation, and integration steps. | Certified with a real backend AI step; backend failure is surfaced and never replaced by simulated completion. | -| Scheduled Jobs | Runs approved agent or workflow actions on a schedule or through a manual “Run now” action and stores the result. | Certified with a real manually triggered scheduled job. | -| AI Evaluation Suite | Runs repeatable test cases through selected models and records model and judge scores for quality, relevance, and safety. | Certified with actual generation and persisted evaluation scores. | -| RAG Quality | Measures retrieval relevance and grounded-answer quality against a selected knowledge collection. | Core page and collection integration are available; quality depends on the indexed source material and evaluation set. | -| Feedback Review | Captures user ratings and comments, supports administrative review, and promotes useful examples into evaluation workflows. | Certified through feedback review and evaluation integration. | -| Chat Rooms | Provides shared rooms for human discussion with `@AI` participation using local models. | Certified with authenticated room messaging and a real `@AI` response. | -| Dataset Creation | Converts PDF, DOCX, TXT, Markdown, or CSV sources into grounded supervised examples, supports review, and publishes approved rows as JSONL. | Certified end to end: five grounded examples generated with `llama3.1:8b`, reviewed, approved, and published. Jobs now fail honestly if the requested valid sample count is not reached. | -| Model Training | Fine-tunes a supported Hugging Face causal language model with a validated dataset and saves a PEFT LoRA adapter, tokenizer, configuration, logs, loss, and output path. | Certified on CUDA with `HuggingFaceTB/SmolLM2-135M-Instruct`, five examples, one epoch, persisted loss `4.3178`, saved adapter, reload, and GPU inference. This proves the pipeline, not production model quality. | -| App Studio | Provides governed application projects, persistent workspaces, proposals, sessions, Git history, and isolated execution sandboxes. | Certified on Kubernetes for project access plus sandbox start, command execution, stop, persistence, and zero residual pods. | +| AI Workspace | AI Workspace | **Live.** Open WebUI is protected by Nexus/Keycloak SSO and provides governed conversational access to approved models. General chat is not source evidence. | +| AI Workspace | Prompt Studio | **Live.** Compose and execute prompts with expert roles, variables, local inference and durable governed prompt assets. | +| AI Workspace | Prompt Library | **Live.** Shared and private versioned prompt assets with categories and controlled create/update actions. | +| AI Workspace | Evaluations | **Live.** Evaluation suites, model comparison, RAG quality and feedback evidence are grouped under a governed quality workspace. | +| Notebook | Nexus Notebook | **Live.** Private-by-default collections, source ingestion, evidence-grounded questions, citations, conversation history, source panels, outputs and exports. | +| Notebook | Document Compare | **Live.** Durable multi-format comparison with persisted result, export and grounded AI brief. Supported pipeline evidence includes TXT, Markdown, CSV, JSON, PDF, DOCX, XLSX and PPTX. | +| Notebook | Document Digitization | **Degraded.** Local OCR, review and Notebook publication are implemented; one current scanner replica is unhealthy while a previous replica remains ready. | +| Notebook | Datasets | **Live with execution gates.** Creates grounded examples from PDF, DOCX, TXT, Markdown and CSV; supports review and immutable publication. Training execution depends on a signed compatible runtime. | +| Automate | Agents | **Live.** Governed multistep agents use approved tools, durable execution records and human-control boundaries. | +| Automate | Workflows | **Live.** Ordered AI, retrieval, transformation and integration steps execute through the durable jobs plane. | +| Automate | Schedules & Runs | **Live.** Manual and scheduled runs with job history, status and retry/error evidence. | +| Automate | Meeting Assistant | **Live for local/reference flows.** Provider-neutral meeting evidence pipeline and approval boundary exist. Cloud providers require customer provisioning and consent. | +| Automate | Chat Rooms | **Live.** Membership-controlled rooms support human collaboration and optional local AI/Notebook grounding. | +| Build | App Studio | **Live Enterprise Pilot.** Projects, persistent workspaces, proposals, isolated Kubernetes previews, review, promotion, rollback and cleanup are implemented. | +| Build | Applications | **Live.** Independently approved applications are published through the application gateway with version and lifecycle controls. | +| Build | Template Marketplace | **Live.** Governed starter assets and extension templates support reusable application and automation building blocks. | +| Build | Model Training | **Gated.** LoRA/training request and lifecycle surfaces exist; execution is permitted only when the signed training runtime and compatible hardware are available. | +| Build | Developer / Jupyter / API | **Live.** JupyterHub, Python and TypeScript SDK clients, API credentials, extension templates and offline conformance assets are present. | -## Integrated developer and data tools +## Administration, governance and operations -| Tool | What it does | Current verified result | -|---|---|---| -| Open WebUI | Full-featured local chat interface for installed Ollama models, files, conversations, and knowledge features. | Kubernetes-hosted, Nexus/Keycloak SSO enforced, legacy login disabled, data migrated, and real inference certified. | -| JupyterLab | Interactive Python notebooks for analysis, prototyping, data preparation, and AI experimentation. | Kubernetes-hosted; notebook creation, execution, saving, persistent notebooks, and portal rendering certified. | -| ChromaDB | Stores document embeddings and supports semantic retrieval for RAG workflows. | Kubernetes-hosted with persistent data; collection ingestion and retrieval certified. | -| Ollama | Runs local language, vision, and embedding models on the GPU host and exposes inference APIs to Nexus services. | Five installed models visible; local generation, chat, embedding-dependent workflows, and Open WebUI integration certified. | -| MLflow | Tracks experiments, parameters, metrics, and artifacts for model-development work. | Reachable through Nexus authentication; broader lifecycle migration and curated demo experiments remain a next phase. | -| LangChain | Developer framework for composing retrieval, model, tool, and application workflows from Python. | Available through the notebook/developer environment; it is a library rather than a separate end-user service. | -| FastAPI | Python API framework used by Nexus backend and custom application services. | Platform backend is deployed and serving authenticated APIs; the tool page is developer guidance. | -| NVIDIA DCGM / nvtop | Exposes GPU health, temperature, memory, utilization, and process information for operators. | GPU, driver, CUDA, and host metrics are visible through the host operations bridge and monitoring stack. | +| Capability | Current scope and status | +|---|---| +| Identity and roles | Keycloak OIDC, one canonical TLS origin, role-aware navigation and authorization for application users, developers, reviewers, auditors, operators, pack managers and administrators. | +| Users and teams | Administrative user/team management and access boundaries. Customer LDAP/AD federation remains site-specific. | +| Assigned Reviews | Reviewer/auditor queues support independent approval decisions for governed assets and applications. | +| Model Catalog | Installed/approved model inventory and logical `nexus-default` routing. Inference is replaceable and may be external to the control-plane node. | +| API Credentials | Managed programmatic credentials with role and audit controls. | +| Connectors & MCP | Governed manifest registry, bounded capabilities, server-side secrets and authenticated MCP JSON-RPC projection. Local reference adapters are available; customer systems require provisioning and contract tests. | +| Meeting Providers | **Provision-only** for Microsoft Teams, Zoom and Zoho Meeting until customer tenant, permissions, consent, retention and data-boundary requirements are approved. | +| Pack Manager | Signed offline pack import, validation, acceptance, enable/disable, upgrade, rollback, removal and quarantine controls. | +| Usage & Quotas | Department usage accounting, shared quotas and conservative accounting where providers omit usage metadata. | +| Governance & Audit | Append-only audit ownership, activity review and support evidence. Current security evidence confirms the audit owner and encrypted K3s secrets. | +| Guardrails & Security | Inference guardrails, secret protection, digest-pinned running core images, privilege checks, certificate monitoring and compliance scans. | +| Platform Health | Host, Kubernetes, service, storage, backup, inference and dependency health with truthful degraded states. | +| GPU Monitoring | Prometheus/Grafana/DCGM operational view. The `.155` control-plane node has no local GPU; telemetry can represent the associated accelerator provider. | +| System Console | Controlled administrative infrastructure access. | -## Platform, governance, and operations +## Live architecture inventory -| Capability | What it does | Current verified result | -|---|---|---| -| Nexus identity and access | Central authentication, roles, sessions, and SSO for Nexus and integrated applications. | Nexus login, role enforcement, Keycloak SSO, Open WebUI SSO, Grafana SSO, and unified session use certified. | -| User and team management | Manages users, roles, teams, provisioning status, and access boundaries. | Administrative APIs and visible role enforcement are working; enterprise LDAP/AD federation is prepared but customer-specific. | -| Model catalog and router | Lists installed models and selects a model according to task policy and configured defaults. | Installed-model discovery and multiple real inference paths certified; routing policies require workload-specific tuning. | -| Guardrails, API keys, and audit | Controls programmatic access, records administrative and AI activity, and provides governance review surfaces. | Authentication, API key, audit, and role controls are integrated; formal security certification is a later phase. | -| Platform health | Reports physical host, GPU, storage, model runtime, portal, Kubernetes, Harbor, and integrated-service reachability. | Host-aware health is certified; displayed services use their actual secured or Kubernetes paths. | -| Kubernetes / K3s | Runs the portable Nexus application stack and isolated App Studio sandboxes. | Single-node K3s is healthy; scheduling, DNS, networking, storage, NVIDIA runtime, and sandbox lifecycle certified. | -| Harbor | Stores private application images and Helm charts with TLS and Nexus OIDC. | Image push/pull/delete and private OCI chart workflows certified. | -| Flux and Helm | Reconcile versioned Nexus releases from Harbor into Kubernetes. | Multiple immutable backend and portal upgrades reconciled successfully. | -| Velero and MinIO | Back up Kubernetes objects and persistent data and support recovery. | Namespace restore drill certified; final filesystem-aware backup `nexus-demo-training-certified-20260721` completed 336/336 objects. | -| Prometheus and Grafana | Collect and visualize platform, host, service, and GPU metrics. | Reachable through Nexus authentication with live targets; polished product dashboards and alerts remain a next phase. | +| Layer | Current components | +|---|---| +| Edge | Traefik ingress, canonical TLS host, role-aware Nexus portal | +| Identity | Keycloak OIDC and Nexus role enforcement | +| Application services | Portal, Core API, Admin Extension, App Gateway, Job Scheduler, Job Worker, Open WebUI, document scanner and renderer | +| Workspaces | JupyterHub, App Studio preview namespaces and application gateway | +| Durable data | PostgreSQL with pgvector, RabbitMQ and MinIO | +| Observability | Prometheus, Alertmanager, Grafana, Loki, Alloy, kube-state metrics, node/PostgreSQL/DCGM exporters | +| Orchestration | Single-node K3s with isolated namespaces, Services, ConfigMaps, Secrets, Jobs, Deployments and StatefulSets | +| Release and recovery | Signed offline bundles/packs, evidence timers, platform backups, restore verification and support bundles | -## Demonstration boundaries +## Demonstration and claim boundaries -- The certified LoRA job is a pipeline proof using five examples and one epoch. - It is not evidence of production model quality. -- Larger 7B/8B QLoRA jobs are constrained by the reference RTX 3050’s 8 GB VRAM, - particularly while Ollama is serving models. -- Audio transcription, large-model training, production alerting, enterprise - directory federation, trusted customer certificates, and formal security or - performance certification need environment-specific validation. -- The portal may display staging warnings for licensing, certificate, or its - legacy in-application backup indicator even when Kubernetes/Velero backups - exist. Presentation claims must use the verified evidence above. +- `.155` is a development/Enterprise Pilot evidence environment, not a named + production release or customer sizing benchmark. +- The latest signed RC artifact and the live Kubernetes overlays are not a + single immutable build. A clean source freeze and rebuilt signed media remain + release work. +- Current evidence does not prove independent off-host disaster recovery, + prior-release upgrade/rollback, customer PKI/AD integration, formal + performance certification, or clean-machine Gate 11 installation. +- Provider connectors and external meeting services are provision-only until + customer credentials, consent, retention and data-boundary decisions exist. +- Model quality, throughput and concurrency depend on the selected inference + provider, model, quantization, context length and accelerator hardware. +- The document-scanner rollout requires reconciliation before claiming a fully + healthy digitization service. -## Recommended next phases - -1. **Presentation and sales-demo hardening** — curated demo data, dashboards, - a scripted presenter journey, screenshots, reset scripts, and a clean demo tenant. -2. **Model lifecycle and quality** — dataset versioning, train/validation splits, - quality gates, adapter publishing/merging, model registry integration, and - repeatable benchmark suites. -3. **Observability and operations** — production Grafana dashboards, alerts, - centralized logs, capacity policies, and backup/restore runbooks. -4. **Security and enterprise identity** — trusted TLS, secret rotation, LDAP/AD, - MFA, vulnerability scans, rate limits, and formal role/access testing. -5. **Packaging and delivery** — converge the Kubernetes application package and - Ubuntu/K3s appliance installer, then validate online and offline upgrade, - rollback, restore, and air-gapped installation paths. -6. **Scale and acceptance testing** — concurrent users, large document sets, - longer agents/workflows, representative models, hardware profiles, and - customer UAT with explicit acceptance criteria. - -## Current deployed evidence - -- Backend: `1.0.7` -- Portal: `1.0.9` -- Stable core checkpoint: `nexus-demo-certification-core-20260721` -- Final object checkpoint: `nexus-demo-certification-final-20260721` -- Dataset/training filesystem checkpoint: - `nexus-demo-training-certified-20260721` +## Recommended next actions +1. Reconcile the document-scanner ReplicaSet and preserve a post-fix readiness record. +2. Freeze live overlays into a reviewed source revision and rebuild signed release media. +3. Complete Gate 10 acceptance and Gate 11 clean-machine/offline installation. +4. Prove off-host backup and replacement-host restoration. +5. Run prior-supported-release upgrade, migration and rollback qualification. +6. Record model-specific performance and capacity baselines on each supported hardware tier. +7. Complete customer PKI, directory federation and connector provisioning playbooks. diff --git a/docs/NEXUS_ONE_AI_LIVE_TECHNICAL_REFERENCE_155.md b/docs/NEXUS_ONE_AI_LIVE_TECHNICAL_REFERENCE_155.md new file mode 100644 index 0000000..5daced3 --- /dev/null +++ b/docs/NEXUS_ONE_AI_LIVE_TECHNICAL_REFERENCE_155.md @@ -0,0 +1,278 @@ +# Nexus One AI - Live Features and Architecture Reference + +**Environment:** `172.16.10.155` +**Evidence date:** 1 September 2026 +**Audience:** technical buyers, solution architects, implementation teams and operators +**Lifecycle:** Enterprise Pilot / provisional Gate 10 + +## 1. Purpose and evidence standard + +This document describes the Nexus One AI platform observed on `.155`. It is +based on live Kubernetes inventory, the deployed portal and runtime source, +release artifacts, health probes, and current readiness, security and backup +evidence. It distinguishes implemented capabilities from gated, provision-only +or unhealthy paths. + +The environment is not represented by one immutable version. The latest signed +release artifact present is `1.0.0-rc1.15` at commit `a7bd086...`, while the live +cluster contains later code/configuration overlays. Treat the verification date +and the release artifact together as the baseline. + +## 2. System context + +Nexus One AI is an on-premises control and application plane for governed AI. +Users enter through one TLS origin, authenticate through Keycloak, and receive +role-filtered access to AI workspaces, enterprise knowledge, documents, +automation, App Studio and administration. Durable state is held in PostgreSQL, +large artifacts in MinIO, and background jobs are transported through RabbitMQ. +AI execution is accessed through a replaceable OpenAI-compatible inference +provider and is not required for basic control-plane availability. + +```text +Users and administrators + | + v +Traefik TLS ingress - nexus-dev.cezen.lan + | + +--> Keycloak OIDC / role authorization + | + +--> Nexus Portal + | +--> AI Workspace / Open WebUI + | +--> Notebook / documents / datasets / evaluations + | +--> agents / workflows / schedules / meetings + | +--> App Studio / applications / templates + | +--> administration / audit / health / packs + | + +--> Core API <--> PostgreSQL + pgvector + | | + | +--> RabbitMQ --> Scheduler / Worker + | +--> MinIO governed artifacts + | +--> model gateway --> replaceable inference provider + | + +--> App Gateway --> isolated application previews/releases + +--> JupyterHub --> persistent developer workspaces + +Platform telemetry --> Prometheus / Alertmanager / Grafana +Platform logs --> Alloy / Loki / Grafana +Recovery --> scheduled backup evidence and restore verification +``` + +## 3. Live deployment topology + +The reference appliance is a single K3s control-plane node running Ubuntu +22.04.5. K3s provides DNS, local-path storage, metrics and Traefik. Product +workloads are separated into platform, data, observability, workspace and +application-preview namespaces. + +### Platform namespace + +- Two Core API replicas provide the protected product API. +- Two portal replicas serve the dependency-light web interface. +- Two App Gateway replicas route approved applications and previews. +- Keycloak provides OIDC identity and role claims. +- Job Scheduler and Job Worker execute durable background work. +- Open WebUI provides the approved conversational workspace behind SSO. +- Admin Extension provides controlled administrative capabilities. +- Document Renderer and Document Scanner isolate document processing. + +### Data namespace + +- PostgreSQL 17 with pgvector is authoritative for product, job, workflow, + application and audit state, and supports vector retrieval. +- RabbitMQ transports durable work references; it is not authoritative state. +- MinIO stores large governed objects, outputs and artifacts. + +### Workspace and preview namespaces + +- JupyterHub provides authenticated, persistent developer workspaces. +- App Studio creates isolated preview Deployments, Services and ConfigMaps. +- Approved applications are exposed through the App Gateway; preview resources + can be stopped and removed without changing the authoritative project history. + +### Observability namespace + +- Prometheus collects Kubernetes, service, host, PostgreSQL and GPU metrics. +- Alertmanager applies warning/critical response policy. +- Grafana provides platform, capacity, inference, GPU and database dashboards. +- Alloy and Loki collect and retain logs. + +## 4. Identity, roles and access boundaries + +Keycloak is the central identity provider. Portal navigation and APIs apply +roles for application users, developers, reviewers, auditors, operators, pack +managers and platform administrators. Reviewer and read-only roles are treated +restrictively unless an explicit operational or administrative role is also +present. + +The browser never receives connector secrets. Connector and meeting-provider +records carry server-side secret references, allowlisted hosts, bounded scopes, +retention terms and activation state. Generated applications and packs are +isolated and require explicit acceptance before broader availability. + +## 5. AI Workspace and prompt management + +### AI Workspace + +Open WebUI is integrated behind Nexus SSO for persistent conversations, local +or approved models and file-assisted chat. The logical `nexus-default` model +decouples applications from a specific provider. General chat output is not +treated as governed source evidence; cited work belongs in Nexus Notebook. + +### Prompt Studio and Library + +The prompt platform stores private/shared, versioned prompt assets. Prompt +Studio supports variables, expert personas, structured instructions, local +inference runs and hand-off into evaluation. The live interface includes +business, data, legal, security, content and product-management expert modes. + +### Evaluation and feedback + +Evaluation suites run repeatable cases against selected models and persist +quality/safety evidence. The quality area also groups model comparison, RAG +quality and reviewed user feedback. Results are evidence for model/prompt +selection, not a universal certification of a model. + +## 6. Nexus Notebook and document intelligence + +### Knowledge workflow + +Collections are private by default and may be shared through controlled access. +Sources are uploaded, extracted and indexed. Questions retrieve approved source +segments, generate an answer and preserve citations. Conversations, source +panels, generated outputs, exports, access management and audit links form one +governed workspace. + +### Document processing flow + +```text +Upload -> malware/type/size policy -> isolated extraction/OCR -> review + -> metadata and chunks -> PostgreSQL/pgvector + object storage + -> retrieval/reranking -> model generation -> cited answer/output +``` + +### Document Compare + +The current Enterprise Pilot supports durable comparisons for text and Office +formats, including TXT, Markdown, CSV, JSON, PDF, DOCX, XLSX and PPTX. Jobs +persist the comparison, support export, and can generate a grounded AI brief. + +### Document Digitization + +The digitization path performs local OCR, assisted field extraction, human +validation, persistence and Notebook publication. It includes Indian GST, PAN +and tender-oriented assistance. On the evidence date, one newer scanner pod was +crash-looping while an older scanner pod was ready; this service is therefore +degraded pending rollout reconciliation. + +### Dataset creation and training + +Datasets can be generated from PDF, DOCX, TXT, Markdown and CSV, reviewed row by +row, and published as immutable versions with lineage/checksum evidence. +Training requests support governed LoRA/full/embedding choices, but execution is +gated by signed runtime prerequisites and compatible accelerator capacity. + +## 7. Automation and collaboration + +Agents define multistep model/tool behavior under approved capabilities. +Workflows connect AI, retrieval, transformation and integration steps. +Schedulers and workers execute manual or timed runs and retain their history. +Human review can be placed at consequential boundaries. + +Meeting Assistant uses a provider-neutral record and post-meeting evidence +pipeline. Microsoft Teams, Zoom and Zoho Meeting are provision-only until a +customer approves tenant permissions, consent, retention, secret and regional +data-boundary requirements. Chat Rooms provide membership-controlled human and +AI collaboration with optional Notebook grounding. + +## 8. Application and extension platform + +App Studio turns requirements into governed projects with persistent workspaces, +proposals and source history. Code runs in isolated Kubernetes sandboxes. +Preview, review, independent approval, publish, versioning, rollback and cleanup +are separate lifecycle stages. + +The Pack Manager imports signed offline capability packs and validates identity, +signature, policy, vulnerabilities and embedded-secret constraints. Accepted +packs can be enabled, upgraded, disabled, rolled back or removed. Python and +TypeScript SDKs, templates and an offline conformance suite support controlled +extensions. + +## 9. Security and governance controls + +Current controls include: + +- encrypted K3s Secret storage and protected host-file permissions; +- digest-pinned running core images; +- checks against host access and privileged workload execution; +- Keycloak OIDC, role enforcement and unified sessions; +- append-only audit ownership and administrative activity evidence; +- API credential governance and inference guardrails; +- signed release/pack inventories and fail-closed validation; +- server-side connector secrets, host allowlists and bounded capabilities; +- certificate-expiry monitoring; +- support-bundle redaction and recurring compliance evidence. + +The 1 September security record passed all recorded controls, including secret +encryption, file modes, certificate life, workload privilege, pinned images and +audit ownership. This is environment evidence, not an external certification. + +## 10. Operations, resilience and service objectives + +The platform publishes health, resource, inference, GPU, database, logs and job +evidence. Operational objectives for the single-node pilot include 99.5% portal +readiness, 95% of inference responses below 30 seconds, GPU telemetry presence, +VRAM warning at 90%, critical at 97%, backup age below 30 hours, and successful +daily restore verification. These are internal objectives, not contractual SLAs. + +The latest inspected evidence showed: + +- daily enterprise readiness: pass; +- security compliance: pass; +- backup evidence: pass; +- 32 retained backups; +- latest backup 2.52 hours old; +- 28.68% backup-storage headroom; +- portal, Core API and Open WebUI ingress probes: HTTP 200. + +## 11. Release and air-gapped delivery + +Signed offline release bundles and a bootable AMD64 pilot ISO exist. The release +model uses digest-pinned images, source/component inventories, signed packs and +controlled upgrade/rollback contracts. The current pilot is still provisional: +the live overlay state must be frozen, reviewed and rebuilt into current signed +media before production promotion. + +## 12. Known limitations and release gaps + +1. The environment is a single-node pilot and does not prove high availability. +2. One document-scanner rollout replica is unhealthy. +3. Independent encrypted off-host backup and replacement-host restore are not yet proven. +4. Prior-supported-release upgrade, migration compatibility and rollback remain open. +5. Customer production PKI and directory federation require site validation. +6. External connectors and meeting providers require customer provisioning. +7. Model throughput, concurrency and quality have not been certified across commercial hardware tiers. +8. The current signed media predates some accepted live overlays. +9. Gate 10 remains provisional and Gate 11 clean-machine installation has not started. + +## 13. Recommended documentation and engineering next steps + +1. Repair and qualify the document-scanner rollout. +2. Create a single build manifest linking source commit, overlay versions, image digests and migration level. +3. Freeze live changes and rebuild signed offline media. +4. Complete clean-machine, disconnected installation and upgrade/rollback acceptance. +5. Establish model/hardware performance matrices with explicit assumptions. +6. Prove off-host recovery and record RPO/RTO evidence. +7. Produce customer profiles for PKI, AD/LDAP, inference, storage and approved connectors. +8. Maintain this reference automatically from cluster inventory and acceptance evidence. + +## 14. Evidence sources + +- Live K3s node, namespace, workload, Service and Ingress inventory from `.155`. +- Live portal navigation and runtime source under `/srv/nexus/source/nexus-platform`. +- Signed release artifacts under `/srv/nexus/artifacts/releases`. +- Enterprise Pilot build status and README from release source `rc1.15-a7bd086`. +- Readiness evidence generated 31 August 2026 06:06 UTC. +- Security evidence generated 1 September 2026 00:00 UTC. +- Backup evidence generated 1 September 2026 04:55 UTC. +- Direct canonical-ingress probes for portal, Core API and Open WebUI. + diff --git a/docs/Nexus_One_AI_Live_Features_and_Architecture_155.pdf b/docs/Nexus_One_AI_Live_Features_and_Architecture_155.pdf new file mode 100644 index 0000000000000000000000000000000000000000..56c4aed450bbaee1f0db87d5b1a6def6e51f26f0 GIT binary patch literal 104864 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
  • Hy+BS`ohreV*b4iFo*DEM~ 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%0D^hLh)E%be9sFaQdPa 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 VfB)BXMc@?EVE