feat(perception): add bounded reference graph
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
Date: 2026-08-05
|
||||
|
||||
Status: planned; implementation not started
|
||||
Status: in progress; M4.0–M4.2 implemented
|
||||
|
||||
Audit base: `1b3e0b3` on `feat/simulation-polygon-s1`
|
||||
|
||||
@@ -632,8 +632,9 @@ M4.0 is closed by the executable baseline
|
||||
RAVNOVES00 and the exact source-fusion, E32, E33, E34, E35 and E46J result
|
||||
documents, KB4 calibration, valid-FOV, YOLOX model/config/profile identities and
|
||||
the observed E15 Worker 006 rollback process. `k1link.perception.baseline`
|
||||
validates the profile and resolves all six immutable evidence documents by file
|
||||
SHA-256, schema, result and identity. The reusable/historical split is frozen in
|
||||
validates the profile, the camera summary/index, the source-pack manifest/artifact
|
||||
and all six immutable evidence documents by file SHA-256, schema, result and
|
||||
identity. The reusable/historical split is frozen in
|
||||
`config/perception/m4-reuse-inventory-v1.json` and enforced by an import-boundary
|
||||
test.
|
||||
|
||||
@@ -650,11 +651,33 @@ M4.1 is closed by `k1link.perception.contracts`, `providers` and `adapters`:
|
||||
ownership, range without current qualified points, held-as-current,
|
||||
missing-LiDAR-as-free and physical/command authority in replay.
|
||||
|
||||
Validation at this increment: 17 focused M4 tests, 60 related geometry/temporal/
|
||||
telemetry tests and the complete Python suite (`1205 passed, 1 skipped`). Scoped
|
||||
Ruff and strict mypy pass for `src/k1link/perception`. Repository-wide Ruff and
|
||||
mypy remain red only in pre-existing legacy experiment/web modules; those errors
|
||||
were not hidden or expanded into this product boundary.
|
||||
### 2026-08-05 — M4.2
|
||||
|
||||
M4.2 is closed by `k1link.perception.graph` and `recorded_source`:
|
||||
|
||||
- `ReferencePerceptionGraphV1` composes source, detector, geometry, temporal,
|
||||
motion and threat providers behind one source-neutral entry point;
|
||||
- detector, geometry, temporal and threat queues are all capacity-bound and use
|
||||
explicit latest-wins supersession under overload;
|
||||
- each admitted sequence closes once as delivered, superseded, stale, rejected,
|
||||
failed or unavailable; a missing terminal is converted to an observable graph
|
||||
failure instead of disappearing;
|
||||
- provider output is cross-validated against the source frame, exact proposal/
|
||||
point/component ownership and the no-current-LiDAR/no-metric-occupancy rule;
|
||||
- run and stage lifecycle reuse the admitted pipeline telemetry emitter;
|
||||
- restart, cancellation and shutdown are deterministic and leave no graph
|
||||
threads alive;
|
||||
- `RecordedRavnoves00Source` reads timing and modality availability directly from
|
||||
the immutable source LiDAR pack, not from an E/L result wrapper, verifies its
|
||||
SHA-256, and exposes identical packets at 1.0× or uncapped pace;
|
||||
- the live adapter is defined only as the same packet-entry protocol and retains
|
||||
zero physical acceptance in M4.
|
||||
|
||||
Validation at this increment: 26 focused M4 tests, 69 focused-and-related source/
|
||||
geometry/temporal/degradation/telemetry tests and the complete Python suite
|
||||
(`1214 passed, 1 skipped`). Scoped Ruff and strict mypy pass for
|
||||
`src/k1link/perception`. The canonical GUI remained on `127.0.0.1:8000`; no
|
||||
duplicate development server or Worker 006 mutation was introduced.
|
||||
|
||||
## Implementation order
|
||||
|
||||
|
||||
Reference in New Issue
Block a user