Добавление канонического графа M4.7

This commit is contained in:
DCCONSTRUCTIONS
2026-08-23 20:03:40 +03:00
parent 51bb1369eb
commit d50d3bb3d3
18 changed files with 2538 additions and 110 deletions
@@ -2,7 +2,9 @@
Date: 2026-08-05
Status: in progress; M4.0M4.6 accepted, E47 diagnostic semantic/SLAM shadow is parallel, M4.7 Worker 006 cutover remains next
Status: in progress; M4.0M4.6 accepted, the M4.7 canonical graph and Worker
006 shadow artifact are implemented locally, and Worker preflight/full shadow
acceptance plus durable cutover remain open
Audit base: `1b3e0b3` on `feat/simulation-polygon-s1`
@@ -111,7 +113,7 @@ Those systems remain separate platform workstreams.
| Realtime worker | Worker 006 has healthy Triton and persistent perception containers plus live Telegraf | Infrastructure exists |
| Worker graph | The persistent process still executes `run_e15_shadow_inference.py serve` with E15/E19/E8/E3/E23 profiles | Open architectural blocker: runtime remains LAB-generation-specific |
| Model service | Canonical Triton currently exposes pinned `yolox_s` and `pointpillars`; PointPillars was rejected as a K1 product candidate | Reuse `yolox_s`; do not reopen PointPillars |
| CV provider interfaces | No executable `DetectorProvider`, `GeometryProvider`, `TemporalProvider` or object-map contract exists in the product package | Open architectural blocker |
| CV provider interfaces | Product-owned source, detector, geometry, temporal, motion, rolling-map and threat protocols plus `LocalObstacleMap` exist under `k1link.perception` | Closed in code; Worker evidence remains open |
| LAB execution | 33 evidence definitions are fully classified; M4, E33, E35 and E46J are canonical canaries, E47 is one bounded experimental adapter, and 28 remain read-only legacy | Closed for LAB governance; no bulk legacy migration |
| Production import graph | 93 compute modules (72,456 lines), 51 web modules and many direct `web → compute.e*/l*` imports remain | Do not clean wholesale; prohibit new dependencies and isolate the new graph |
| Telemetry | Generic pipeline telemetry, multi-contour enrollment, bounded journal and current Worker 006 Telegraf service exist | Reuse; add graph-stage and object-state metrics |
@@ -222,6 +224,9 @@ LiveK1Source (later) ──┘ │
MotionEstimator
v
RollingLocalObstacleMap
v
LocalObstacleMap
virtual rig/corridor (M4 only)
@@ -495,6 +500,11 @@ Physical mounted threat acceptance remains outside Milestone 4.
### M4.7 — cut Worker 006 over to the canonical graph
Status: implementation complete locally on 2026-08-23; Worker 006 preflight,
full lossless shadow evidence and durable process replacement are not yet
accepted. The current E15 worker and Triton identities remain the rollback
predecessor. No K1, Zarya or connection-stack change is part of this phase.
Deliverables:
- package one digest-bound worker artifact containing the graph runner, provider
@@ -655,7 +665,7 @@ is requested. None may be silently claimed from a successful recorded replay.
Milestone 4 is complete only when all of the following are true:
- [ ] One versioned reference graph exists outside experiment-named modules.
- [x] One versioned reference graph exists outside experiment-named modules.
- [ ] RAVNOVES00 runs through the same graph contract intended for a live source.
- [ ] Semantic class and persistent detector ID are optional diagnostics only.
- [ ] Camera, fused and geometry-only obstacles share one canonical observation
@@ -1135,6 +1145,51 @@ after indexing, a 12-frame spatial chunk was served in approximately `33 ms` and
was about `1.27 MB`. M4.7 may proceed only from the corrected identities above;
physical-live, collision, navigation and actuation authority remain false.
### 2026-08-23 — M4.7 canonical graph and shadow release implementation
`reference-perception-graph/v2` is now the product-owned assembly contract. It
composes the admitted recorded source, frozen YOLOX detector, current geometry,
bounded temporal state, class-independent motion, rolling local occupancy and
replay threat providers without importing an E/L-named module. Rolling retained
occupancy is an explicit stage rather than an offline side computation, so the
published map preserves the accepted M4.5R/M4.6 rule: current plus retained is
occupied, held/expired is unknown, and missing republication never means free.
The graph has two explicit bounded execution policies:
- `source-paced-latest-wins` for the later 1× realtime canary, with every
superseded or stale packet receiving a terminal outcome;
- `lossless-replay` for deterministic parity, with bounded backpressure and
zero accepted supersession.
Every stage is deadline-checked before and after provider work, queue
high-watermarks are reported, terminal accounting is closed, and V2 restart is
fail-closed unless all stateful providers are freshly instantiated. A production
assembly boundary validates the digest of every provider profile and takes only
explicit paths to the camera index, video, source pack, local surface, valid-FOV
mask and Triton origin. The CLI writes immutable content-addressed frame,
terminal, report and manifest ledgers; acceptance requires exactly `4,489`
delivered frames with zero failed, stale, superseded, rejected or unavailable
terminal outcomes.
The new Worker package uses transition `m47-canonical-graph-shadow-v1`. It is a
separate deterministic artifact and does not relabel the accepted historical
`m4-detector-shadow-v1` wheel. Its PowerShell runner verifies release files,
inputs, dependency trees, disk reserve, pinned Worker/Triton predecessor and
container isolation before it can start the one-shot lossless graph shadow. It
adds no public port, never changes Triton, removes the candidate container after
the run and re-verifies the predecessor. Provider readiness and graph readiness
are emitted separately. The production builder refuses a dirty worktree so an
artifact cannot claim a Git revision which does not contain its wheel.
Local contract, graph, result-sealing, artifact and historical-rollback tests
pass. This is implementation evidence only. It does not claim that Worker 006
has the pinned local-surface input, that preflight has passed, that the 4,489
frame graph shadow matches the accepted M4.5R/M4.6 ledgers, or that the durable
E15 command has been replaced. Those are the next M4.7 acceptance actions, in
that order. K1, Zarya, the stable connection path and physical-live authority
remain untouched.
## Implementation order
The implementation sequence is intentionally strict: