# K3/NAS Web Demo Validation Report

- Timestamp: 2026-08-12T16:29:48+08:00
- Commit: 6c1201cd
- Deb: <none>
- Web demo deb: <none>
- OSS companion deb: <none>
- Host: 192.168.100.233
- SSH user: root
- SSH opts: -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null
- SCP opts: -O -o ConnectTimeout=15 -o ServerAliveInterval=10 -o ServerAliveCountMax=2
- SCP timeout: 600
- SSH auth: password via sshpass -e
- Base URL: http://192.168.100.233:18900
- Scheduler URL: http://192.168.100.233:8090
- Server scheduler base: http://127.0.0.1:8090
- Scheduler chat model: llm-chat
- Remote tmp: /root/attune-k3-release
- Server-side bind dir: /root/attune-k3-release/background-bind-smoke
- API contract bind dir: /root/attune-k3-release/api-contract-bind
- Configure scheduler AI: 1
- Require scheduler chat metadata: 1
- Require scheduler performance thresholds: 0
- Run NAS Web API contract: 1
- RAG eval suite: <disabled>
- RAG eval output: <auto>
- KB web-demo frontend URL: http://192.168.100.233:8968
- KB web-demo API URL: http://192.168.100.233:8969
- KB web-demo output: /data/company/project/attune/reports/k3-web-demo-sqlite-observability-rerun-20260812.json
- KB web-demo V821 SDK docs dir: /mnt/hdd/allwinner/v821/tina-v821-release-v1.1/tina-v821-release/docs
- KB web-demo Rockchip SDK docs dir: /mnt/hdd/rockchip/RV1103B_RV1106B_SDK_V1.2.2_20250228/release/docs
- KB web-demo timeout ms: 600000
- Long-text manifest: <none>
- Long-text E2E: 0
- Long-text corpora: airplane,mechanical_design
- Airplane long-text repo: https://github.com/shiroinekotfs/airplane-manual-collection.git
- Mechanical Design long-text repo: https://github.com/GEQfa/handbook-of-mechanical-design.git
- Long-text profile: edge_scheduler_comprehensive
- Airplane long-text corpus dir: /root/attune-k3-release/airplane-manual-collection
- Mechanical Design long-text corpus dir: /root/attune-k3-release/handbook-of-mechanical-design
- Long-text remote runner: /root/attune-k3-release/longtext-corpora-runner
- Airplane long-text remote manifest: /root/attune-k3-release/attune-airplane-longtext-edge_scheduler_comprehensive.json
- Mechanical Design long-text remote manifest: /root/attune-k3-release/attune-mechanical-design-longtext-edge_scheduler_comprehensive.json
- Long-text remote results: /root/attune-k3-release/longtext-corpora-results
- Long-text repeat chat runs: 3
- Require long-text scheduler generation: 0
- Long-text PDF OCR guard: ATTUNE_K3_LONGTEXT_PDF_OCR=1
- Skip RVV performance gate: 1
- Dry run: 0

## Package Boundary

This validation expects Attune to provide NAS Web/API/control-plane behavior. ORT, Sherpa, model weights, and inference runtimes are scheduler package responsibilities.

## Remote CI topology

- Base URL is reached by the CI runner/browser.
- Scheduler URL is reached by the CI runner; use an SSH tunnel for loopback-only scheduler endpoints.
- Server scheduler base is persisted into Attune settings and is reached by attune-server on the NAS host.
- Bind directories are server-side paths on the NAS host, never runner-local paths.

## Package Gate

Skipped by --skip-deb-check.

## Remote Install

Skipped by --skip-install.

## Web Health

```bash
curl -fsS http://192.168.100.233:18900/api/v1/status/health 
```

- Diagnostics is authenticated and is checked after vault unlock.

## Scheduler Contract

```bash
python3 /data/company/project/attune/scripts/probe-edge-scheduler-contract.py --base-url http://192.168.100.233:8090 --strict 
```

## K3 RVV Runtime Performance Gate

Skipped by --skip-rvv-performance.

## Vault and Knowledge Base Gate
Vault unlock: token length 110

## Scheduler-backed AI Settings Gate
scheduler ai settings status=200 llm_provider=local_scheduler llm_endpoint=http://127.0.0.1:8090 llm_model=llm-chat embedding_model=embedding-int8
diagnostics status=200 keys=['ai_status', 'amd_npu', 'chat_model', 'classifier_ready', 'embed_queue', 'embedding_available', 'fulltext_ready', 'hardware', 'hint', 'pending_tasks', 'scheduler', 'sqlite_config', 'tag_index_items', 'vault_state', 'vector_ready']

## Clean Demo Knowledge Base Gate
clean demo reset status=200 items_deleted=2 vectors_deleted=0 queue_cleared=18 pending_embeddings=0 pending_files=0 queued_files=0 parsing_files=0

- Result: pass

## NAS Web API Contract Gate

```bash
sshpass -e ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@192.168.100.233 rm\ -rf\ \'/root/attune-k3-release/api-contract-bind\'\ \&\&\ mkdir\ -p\ \'/root/attune-k3-release/api-contract-bind\'\ \&\&\ printf\ \'#\ Attune\ NAS\ Web\ API\ contract\\n\\nattune-nas-web-api-bind-token\\n\'\ \>\ \'/root/attune-k3-release/api-contract-bind/nas-web-api-contract.md\'
```

```bash
python3 /data/company/project/attune/scripts/release/probe-nas-web-api-contract.py --base-url http://192.168.100.233:18900 --password \<redacted\> --token \<redacted\> --bind-dir /root/attune-k3-release/api-contract-bind --server-scheduler-base http://127.0.0.1:8090 --scheduler-chat-model llm-chat --job-timeout 60 --out /data/company/project/attune/reports/release/k3-nas-web-api-contract-20260812_162948.json --scheduler-url http://192.168.100.233:8090 --require-scheduler-chat 
```

- API contract JSON: /data/company/project/attune/reports/release/k3-nas-web-api-contract-20260812_162948.json

- dynamic model capability: covered by NAS Web API contract gate.

- Summary Workflow Gate: covered by NAS Web API contract gate.

## RAG Eval Suite Gate

Skipped because ATTUNE_K3_EVAL_SUITE is not set.

## KB Web Demo Frontend Gate

- Frontend URL: http://192.168.100.233:8968

- API URL: http://192.168.100.233:8969

- Profile: smoke

- Reset before run: 1

- Require audio ready: 0

- V821 SDK docs dir: /mnt/hdd/allwinner/v821/tina-v821-release-v1.1/tina-v821-release/docs

- Rockchip SDK docs dir: /mnt/hdd/rockchip/RV1103B_RV1106B_SDK_V1.2.2_20250228/release/docs

- Timeout ms: 600000

- Output: /data/company/project/attune/reports/k3-web-demo-sqlite-observability-rerun-20260812.json

```bash
python3 /data/company/project/attune/tests/e2e/playwright/kb_web_demo_eval_frontend_e2e.py --base-url http://192.168.100.233:8968 --api-url http://192.168.100.233:8969 --out /data/company/project/attune/reports/k3-web-demo-sqlite-observability-rerun-20260812.json --token \<redacted\> --profile smoke --timeout-ms 600000 --v821-sdk-docs-dir /mnt/hdd/allwinner/v821/tina-v821-release-v1.1/tina-v821-release/docs --rockchip-sdk-docs-dir /mnt/hdd/rockchip/RV1103B_RV1106B_SDK_V1.2.2_20250228/release/docs --headless 1 --reset-before 
```

- Result: pass

```bash
sshpass -e ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@192.168.100.233 rm\ -rf\ \'/root/attune-k3-release/background-bind-smoke\'\ \&\&\ mkdir\ -p\ \'/root/attune-k3-release/background-bind-smoke\'\ \&\&\ printf\ \'#\ Attune\ K3\ NAS\ Web\ gate\\n\\nattune-k3-nas-web-bind-token\\n\'\ \>\ \'/root/attune-k3-release/background-bind-smoke/k3-nas-web-gate.md\'
```
bind status=200 response_keys=['dir_id', 'scan', 'status']
search status=200 results=3

## Chat Gate
chat status=200 keys=['answer_budget', 'answer_mode', 'citations', 'citations_count', 'compression_stats', 'confidence', 'content', 'context_tier', 'cost', 'cost_estimate', 'degraded', 'degraded_reason', 'eval', 'grounding', 'intent', 'knowledge_count', 'latency_ms', 'local_scheduler', 'quality_profile', 'rag_intent_plan', 'rag_profile', 'retrieval', 'session_id', 'web_search_used', 'weight_stats']
local_scheduler_chat task=kb.query.ask scheduled_as=async status=queued job_id=job_886dd78f1c0ab1563ed8abfcb13079e8
local_scheduler_chat_job status=done model=llm-chat latency_ms=433.074899 queue_wait_ms=200.392205 cache_hit=False
{"answer_budget": {"context_chunk_max_chars": 512, "context_top_k": 3, "explicit_output_override": false, "max_output_tokens": 160, "profile": "concise", "source_diverse": false}, "answer_mode": "llm-chat", "citations": [{"breadcrumb": ["Attune K3 NAS Web gate"], "chunk_id": "b380c722281e4f70b76164c337e5f6f4:0", "chunk_offset_end": 55, "chunk_offset_start": 0, "item_id": "b380c722281e4f70b76164c337e5f6f4", "relevance": 1.8869144916534424, "score": 1.8869144916534424, "span": [0, 55], "title": "k

## Standard GitHub Longtext Gates

Skipped because ATTUNE_K3_LONGTEXT_E2E=0.

## Optional UI Gate

Skipped because ATTUNE_K3_LONGTEXT_MANIFEST is not set to a local manifest file and ATTUNE_K3_LONGTEXT_E2E did not generate one.

## Result

K3/NAS Web demo validation complete.
