docs(perception): record m4 detector acceptance

This commit is contained in:
DCCONSTRUCTIONS
2026-08-05 16:10:40 +03:00
parent 8bd632509e
commit b1f9957317
@@ -2,7 +2,7 @@
Date: 2026-08-05
Status: in progress; M4.0M4.2 implemented, M4.3 local shadow artifact ready/runtime gate open
Status: in progress; M4.0M4.3 accepted, M4.4 geometry/range is next
Audit base: `1b3e0b3` on `feat/simulation-polygon-s1`
@@ -750,6 +750,50 @@ removed after success or failure. Durable E15 and Triton are re-verified after
the run. This is a Mission Core operator workflow, not a cross-repository deploy
workflow.
### 2026-08-05 — M4.3 Worker 006 runtime acceptance
The first self-contained execution exposed a real package-boundary defect before
frame zero: importing `k1link.perception` eagerly imported legacy
`k1link.compute`, which then initialized annotation, device and MQTT modules.
Adding the missing MQTT dependency to the container was rejected as a runtime
workaround. Instead, the product package initializer was made side-effect free
and the frozen YOLOX primitive moved from `k1link.compute` to product-owned
`k1link.perception.yolox_object_detector`. Architecture tests now fail if the
detector runtime closure imports legacy compute. The complete repository suite
after that correction is `1236 passed, 1 skipped`; scoped Ruff and strict mypy
are clean.
Accepted local artifact:
- patch: `mission-core-m4-detector-shadow-20260805-006`;
- code revision: `8bd632509e01fcd0a22b3986cb044cba3248ab2e`;
- artifact SHA-256:
`2c9d62cb3d1949bcfd0576e95192aac100c8c145d894ebad3f3a40ff3512e4eb`;
- wheel SHA-256:
`4158784fd40b70c7213b629ed39d664fd2f12eab1c9242ec9a6ebbb366e3dd5a`.
Immutable Worker 006 result:
- result ID:
`m4-detector-replay-11f83f2e0b81758ac2a5a5fc54e9d293b501678df5f6ef97b5c6069ba08605c5`;
- `4,489 / 4,489` completed, `0` failed, `0` rejected;
- `15,499` proposals and `181` zero-proposal frames;
- end-to-end `24.880292 FPS`, provider core `32.60469 FPS`;
- frame latency p50 `29.943714 ms`, p95 `40.417794 ms`, max `323.939743 ms`;
- provider tracklets `0`; semantic labels remain diagnostic metadata only;
- receipt SHA-256:
`81280380ada97548e4991f33727c2cb279b824646024c07ec21e96505d002038`;
- frame ledger SHA-256:
`9bf5ae17938cd57c112278781b38d54a7187cf2dabc7bb0332acdb1efad721f5`.
The result passes `require_m4_detector_replay_acceptance`. The candidate
container was removed. Durable E15
`db2024d05098a6beb6b73bbf43f02c88ede586a4664b2c91182f436a42b3e3ff`
and healthy Triton
`4232fb040062a8384809e73612baa92b343ddcb60f00c23e7091eb4909959223`
retained their exact identities; no public port, cutover or Platform dependency
was introduced. M4.3 is closed and M4.4 geometry/range may start.
## Implementation order
The implementation sequence is intentionally strict: