mirror of
https://github.com/azaion/autopilot.git
synced 2026-06-21 22:31:10 +00:00
[AZ-659] [AZ-660] [AZ-661] Implement frame publisher + gRPC detection client
AZ-659: FramePublisher with per-consumer drop accounting (Arc<Bytes> zero-copy fan-out). Adds ConsumerId enum, PublisherStats, FrameReceiver wrapper, and publisher integration tests (AC-1, AC-2, AC-3). AZ-660: Bi-directional tonic gRPC stream to ../detections. Reconnect with bounded exponential backoff (1 s → 30 s cap). Drop-oldest in-flight budgeting (max_concurrent_in_flight = 2). ai_locked frame skipping. Integration tests against fixture in-process server (AC-1: happy path 30 fps/10 s, AC-2: reconnect, AC-3: budget drops, AC-4: ai_locked skipping). AZ-661: Schema validation (hard SchemaMismatch error on version mismatch), model_version latch with ModelVersionChanged events, sliding-window p99 latency tracker with Tier1Degraded/Tier1Recovered transitions. Integration tests (AC-1, AC-2, AC-3). Also: update module-layout.md for frame_ingest and detection_client to reflect the streaming API shape; code review report batch_18. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
//! Generated tonic+prost code for the `../detections` gRPC contract.
|
||||
//!
|
||||
//! The actual `.rs` file is produced at build time by `build.rs`
|
||||
//! (see workspace `tonic-prost-build` / `protoc-bin-vendored` deps)
|
||||
//! and dropped into `OUT_DIR`. We pull it in here under a stable
|
||||
//! module path so the rest of the crate doesn't reach into `OUT_DIR`.
|
||||
|
||||
#![allow(clippy::derive_partial_eq_without_eq)]
|
||||
|
||||
tonic::include_proto!("azaion.detection.v1");
|
||||
Reference in New Issue
Block a user