feat(perception): establish object centric contracts
This commit is contained in:
@@ -623,6 +623,39 @@ Milestone 4 is complete only when all of the following are true:
|
||||
- [ ] The Ops card contains exact files, commits, result IDs and validation.
|
||||
- [ ] Physical live, mounted geometry, navigation and safety remain visibly deferred.
|
||||
|
||||
## Implementation record
|
||||
|
||||
### 2026-08-05 — M4.0 and M4.1
|
||||
|
||||
M4.0 is closed by the executable baseline
|
||||
`config/perception/m4-recorded-realtime-baseline-v1.json`. It binds only
|
||||
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
|
||||
`config/perception/m4-reuse-inventory-v1.json` and enforced by an import-boundary
|
||||
test.
|
||||
|
||||
M4.1 is closed by `k1link.perception.contracts`, `providers` and `adapters`:
|
||||
|
||||
- six exact-key versioned serializers implement SourceEnvelope,
|
||||
ObjectProposal2D, ObstacleObservation, TemporalObstacle, LocalObstacleMap and
|
||||
ThreatAssessment;
|
||||
- provider protocols and one strict graph-configuration contract pin all six
|
||||
roles, bounded queues, deadlines and replay-only authority;
|
||||
- one-way TrackGeometry and E34 adapters preserve exact point ownership,
|
||||
camera-only uncertainty, held/expired state and ephemeral component identity;
|
||||
- adversarial tests reject class-dependent occupancy identity, duplicate point
|
||||
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.
|
||||
|
||||
## Implementation order
|
||||
|
||||
The implementation sequence is intentionally strict:
|
||||
|
||||
Reference in New Issue
Block a user