feat(perception): seal detector replay evidence

This commit is contained in:
DCCONSTRUCTIONS
2026-08-05 14:36:55 +03:00
parent a680debfaf
commit 95ac235122
12 changed files with 1754 additions and 31 deletions
@@ -2,7 +2,7 @@
Date: 2026-08-05
Status: in progress; M4.0–M4.2 implemented, M4.3 runtime gate open
Status: in progress; M4.0–M4.2 implemented, M4.3 execution seam ready/runtime gate open
Audit base: `1b3e0b3` on `feat/simulation-polygon-s1`
@@ -369,6 +369,8 @@ Deliverables:
- keep the E46J model, score, NMS, valid-FOV and full-frame profile frozen for the
first reference run;
- account for zero-proposal frames, pathological boxes and provider failures;
- seal a strict digest-bound frame ledger and capacity receipt tied to the exact
worker, container, image, artifact, source and Triton identities;
- publish provider latency and GPU metrics through the common telemetry path.
Exit:
@@ -699,15 +701,34 @@ wrapper:
- all 4,489 accepted immutable E46J frame documents and 15,499 detections map to
the new proposal contract with exact frame accounting.
The fresh execution path is also product code rather than another experiment
runner:
- `k1link.perception.detector_replay` performs one sequential provider request
per admitted envelope and seals completed, zero-proposal and failed outcomes;
- contracts/accounting, atomic publication, fail-closed validation and the Worker
CLI are separate modules; no laboratory or web module is imported;
- every result carries exact runtime/container/image/artifact/code identities,
actual model/config/mask digests, read-only source and same-host Triton topology
assertions, per-frame canonical proposals, end-to-end/core FPS, latency,
rejection and failure accounting;
- Triton requests pin `yolox_s` version `1` explicitly; the M4 CLI rejects a
non-loopback tensor endpoint and credentials embedded in its origin;
- the baseline validator now freezes calibration, detector parameters,
non-goals and the complete E15 rollback identity instead of merely retaining
those fields in JSON;
- `require_m4_detector_replay_acceptance` refuses short smoke runs, another
worker/node, failed frames, less than 4,489 frames or less than 10.004 FPS.
This increment does **not** claim a new 4,489-frame Triton execution. The existing
E46J 47.840 FPS result remains the baseline evidence. A fresh provider execution
requires a digest-bound shadow package; ad-hoc executable staging on Worker 006
is prohibited by the deployment canon. Therefore M4.3 runtime/capacity exit and
its final checker remain open, and M4.4 does not start yet.
Validation at this increment: 76 focused-and-related tests and the complete
Python suite (`1221 passed, 1 skipped`). Scoped Ruff and strict mypy pass for the
new compute primitive and complete `src/k1link/perception` package.
Validation after adding the execution seam: 42 focused-and-related tests and the
complete Python suite (`1230 passed, 1 skipped`). Scoped Ruff and strict mypy pass
for the complete `src/k1link/perception` package and the frozen YOLOX primitive.
## Implementation order