SMART CONFERENCE ROOM 3.2.3.4 - VALIDATION REPORT
==================================================

Release type
------------
- Baseline: Smart Conference Room 3.2.3.3 Full Source
- Branch: original unrestricted source, no license, no Demo Builder
- Scope: Runtime Presence & Agent Connectivity Hotfix
- Android STT: 1.1.20.4 Official, unchanged byte-for-byte

Implemented scope
-----------------
1. Runtime presence is no longer restored from persisted room.online/service.online values.
2. Central restart resets legacy runtime flags and preserves only historical lastKnownServices.
3. Room Agent online state is derived from fresh WebSocket/HTTP signals and a heartbeat lease.
4. Child service status is valid only while the current Agent heartbeat is fresh.
5. WebSocket close or lease expiry immediately removes green child-service status.
6. Central UI distinguishes Online, Offline, Stale data, Unknown, Disconnected and Awaiting heartbeat.
7. Central exposes GET /api/agent/preflight for lightweight ROOM_ID/AGENT_KEY validation.
8. Room Agent exposes /local/connectivity/preflight and connectivity details in /health.
9. Room Agent performs preflight before sending login credentials to Central.
10. Invalid ROOM_ID, AGENT_KEY and Local Bridge key are returned with explicit error codes.
11. Offline login is not allowed to hide configuration errors.

Runtime presence defaults
-------------------------
- Room Agent heartbeat interval: 15 seconds by default
- Central presence lease: 45 seconds by default
- Central presence sweeper: 5 seconds by default
- Room Agent connectivity lease: 45 seconds by default

Source validation
-----------------
- JavaScript syntax: 188 files PASS
- Python syntax: 8 files PASS
- JSON parse: 16 files PASS
- Windows BAT/CRLF contract: PASS
- Active SCR license marker files: 0
- node_modules directories in release: 0
- __pycache__/pyc/pyo files in release: 0

Automated tests
---------------
- Standalone JavaScript/static/unit/integration matrix: 127/127 PASS
- Targeted runtime presence unit regression: PASS
- Central restart with persisted Online service state: PASS
- Central-only restart does not show Room/PC/CR/GPU as Online: PASS
- Fresh Agent preflight marks only Room Agent Online: PASS
- Fresh heartbeat restores current service status: PASS
- WebSocket disconnect invalidates child service status: PASS
- Heartbeat lease expiry invalidates Room Agent and child services: PASS
- Valid PC login through PC Server -> Room Agent -> Central: PASS
- Room Agent stopped: explicit ROOM_AGENT_UNREACHABLE, no indefinite wait: PASS
- Wrong AGENT_KEY: explicit AGENT_KEY_REJECTED, no indefinite wait: PASS
- Wrong ROOM_ID: explicit ROOM_ID_MISMATCH: PASS
- Wrong Local Bridge key static contract: PASS
- Login/bootstrap and org de-license regression: PASS
- Long-meeting architecture/inbound queue/incremental persistence regressions: PASS
- Editable minutes lifecycle regression: PASS
- Mic auto-assignment/Chair fallback regression: PASS
- Seat + microphone profile regression: PASS
- Server/client offline lifecycle E2E: PASS
- Android JVM tests: 12/12 PASS
- Android source comparison with 3.2.3.3: 79/79 files byte-for-byte identical

Live-only scripts not counted as standalone failures
---------------------------------------------------
- client/pc-server/tests/e2e-simulator-test.js
- client/pc-server/tests/stt-boundary-test.js
These scripts expect an already-running Gateway/PC runtime and are not standalone test processes.

Dependency note
---------------
- npm ci could not download xlsx@0.18.5 because the configured internal registry returned HTTP 404.
- Live integration tests were executed with an already available local dependency runtime matching the package dependencies.
- No node_modules or dependency cache is included in this release archive.

Not yet validated in this container
-----------------------------------
- Full Windows installation and process lifecycle using BAT files
- Real Room Agent/PC deployment across separate Windows machines and LAN/firewall conditions
- Real DICENTIS hardware and Bosch SDK runtime
- Android device, real Wi-Fi and long-duration production meeting
- CR/FFmpeg/model runtime under actual production load

Conclusion
----------
SCR 3.2.3.4 removes the confirmed false-Online persistence defect and adds bounded, explicit connectivity validation before Central login. The source and automated runtime contracts pass. Final acceptance still requires deployment testing on the target Windows environment.
