docs(perception): record host telemetry recovery and scoped inventory evidence
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
# ADR 0049 — Stream-first full perception profiles
|
||||
|
||||
Date: 2026-09-01; updated 2026-09-02 15:56 MSK. Status: stage-1 engineering
|
||||
baseline complete; stage-2 full binary GPU pilot now supports input recovery.
|
||||
Production collector, external transport, standalone image and product cutover
|
||||
remain open; local recording/IPC proof is not physical-live acceptance.
|
||||
Date: 2026-09-01; updated 2026-09-02 16:52 MSK. Status: stage-1 engineering
|
||||
baseline complete; stage-2 full binary GPU pilot consumes real scoped host facts.
|
||||
External transport/authentication, native-host GPU inventory, standalone image
|
||||
and product cutover remain open; local proof is not physical-live acceptance.
|
||||
Execution order remains the four stages in
|
||||
[the ExecPlan](../OBSERVATORY_REALTIME_PROFILES_EXECPLAN.md).
|
||||
|
||||
@@ -54,6 +54,52 @@ local server are made by this ADR or the stage-1 validators.
|
||||
|
||||
## Versioned handshake and observations
|
||||
|
||||
### Current host observation adapter (2026-09-02 16:52, `61cbdb3`)
|
||||
|
||||
`WorkerControlChannel` / `WorkerControlPump` supply the common readiness monitor
|
||||
with actual GPU name/driver/clocks and Docker image/configured resource limits /
|
||||
GPU-access inventory from `collect_worker_host.ps1` on the trusted Windows host.
|
||||
Only the host collector executes fixed read-only Docker/NVIDIA queries. The AI
|
||||
container has no Docker socket, host setters or network access. Request and reply
|
||||
directories are separate; the reply mount must be read-only and cannot also be
|
||||
reachable through the writable output mount. This local filesystem authority is
|
||||
NOT authentication for external sensor/GCS traffic.
|
||||
|
||||
One pending random nonce, activation digest, sequence and a16KiB reply bound
|
||||
prevent history/queue growth. The collector reads facts AFTER receiving that
|
||||
challenge. Observation time is the local Linux request-start monotonic value,
|
||||
not the reply receipt or Windows timestamp. Delayed replies stay old; missing,
|
||||
malformed or different-nonce replies cannot refresh readiness. A known matching
|
||||
reply with changed container/image/owner or competitors fences execution.
|
||||
Owner, effective config and warmup remain local-controller facts, never accepted
|
||||
from the sensor stream or inferred from utilization. The pump does not renew the
|
||||
lease; its I/O runs outside lifecycle locks and the heartbeat thread.
|
||||
|
||||
Scope is part of the sealed effective configuration: `docker-gpu-access` means
|
||||
observed Docker GPU-capable containers, NOT all native host/WSL GPU processes.
|
||||
It cannot satisfy an envelope requiring `host-compute`. Windows reports PID4 /
|
||||
Insufficient Permissions; native host coverage stays explicitly unproved.
|
||||
Incomplete inventory or unavailable GPU telemetry cannot be waived even by
|
||||
`labelled-experiment`; measured low clocks can be logged as overload conditions.
|
||||
|
||||
Bootstrap acquires the local lease and attaches readiness before spawning any
|
||||
model. Warmup telemetry lag blocks further startup without destroying already
|
||||
loaded children or invalidating an input epoch that has not started. Active
|
||||
stream lag pauses input, keeps models and local lease, then requires the existing
|
||||
fresh-keyframe/sensor resynchronization and temporal reset. The bounded pilot's
|
||||
outer watchdog remains; this is not yet a durable production controller.
|
||||
|
||||
Measured normal graph:128/128 exact raw outputs,50 real observations, p95/p99
|
||||
91.157/97.946ms. Delaying a host reply2200ms:102 completed,26 intentional omissions,
|
||||
two expired requests, same four resident PIDs/lease; resume seq50, old temporal
|
||||
stores/cells absent, first scene fresh. Result receipt gap2.719s is NOT latency
|
||||
from the Windows fault start (clock domains are not subtracted). Both trials
|
||||
use the temporary authorized stock-clock envelope, not general qualification.
|
||||
404 focused tests; evidence SHA-256
|
||||
`aac125bd1b182d164c95d18089793fa54bf9797478bce1afe3de2a1d9093f6ef`.
|
||||
The first warmup abort and Windows atomic-replacement correction are retained
|
||||
in the experiment journal. Historical readiness notes below retain their dates.
|
||||
|
||||
`missioncore.perception-stream-start/v1` is represented by `StreamStart` in
|
||||
`src/k1link/perception/realtime_contract.py`. It contains run/source/worker/epoch,
|
||||
lease generation, profile/image/effective-config/calibration identities, clock
|
||||
|
||||
Reference in New Issue
Block a user