506b66414ae92d79ff90f5330c94ea8a86610b8e
Continuum is intended to be sold, so every dependency has to permit distribution in closed-source commercial software. This crate carried `license = "UNLICENSED"`, which is not valid SPDX and made `cargo deny` fail outright; `LicenseRef-Proprietary` with `publish = false` is what marks it first-party instead. The note in deny.toml matters more than the allow list here: the ONNX model weights this worker will load are licensed independently of the `ort` crate, and `cargo deny` cannot see them at all. Ultralytics YOLO and Obico's print-failure model are both AGPL-3.0 and cannot ship in a commercial product - see continuum-common's docs/LICENSES.md, and pick a permissive architecture before collecting training data rather than retraining because of a licence.
continuum-ai-worker
Computer-vision failure detection worker for the Continuum print farm
platform. Consumes camera frame batches pushed onto the Redis Stream
stream:camera_frames (by continuum-backend's src/queue/) and reports
failures.
This is a learning-stage boilerplate
Real ONNX Runtime inference (the ort crate) and the Postgres audit write
(sqlx) are not implemented yet - src/inference/mod.rs always
"detects" one fixed example failure, and src/reporter/mod.rs only prints
where the Postgres write would go. The Redis Streams consumer-group loop in
main.rs and the Redis pub/sub alert in reporter/ are real. This lets the
whole pipeline (read a frame, "detect", report, ack) run and be understood
before adding a real model or a SQL database on top.
Pipeline
continuum-proxy --(frames)--> continuum-backend --(XADD)--> stream:camera_frames
|
XREADGROUP (this worker)
v
inference::detect (stub for now)
v
reporter::report (Redis pub/sub - real)
Getting started
cp .env.example .env
cargo run
Structure
src/
main.rs Consumer-group loop: XREADGROUP -> detect -> report -> XACK
config.rs Loads settings from environment variables
inference/ Detection stub - real ONNX Runtime inference goes here later
reporter/ Redis pub/sub alert (real) + a note for the Postgres write (later)
Languages
Rust
100%