Drop Protobuf; move continuum/v1 domain model to JSON Schema

Nothing imported the proto-generated code (zero references to
continuum-rust-types or @continuum/ts-types's proto export in any
consumer repo), and protobuf's real value - one schema compiled to a
compact binary wire format for both languages - never applied: BE<->proxy
and FE<->BE are both JSON. Also fixes 8 broken $ref paths in the bambulab
schemas and a root tsconfig.json that was sweeping the gitignored
examples/ directory into typecheck.

- proto/continuum/v1/*.proto -> schemas/continuum/v1/*.schema.json
- packages/rust-types: hand-written serde structs instead of
  prost-build codegen
- packages/ts-types: drop the generated/ proto barrel export, keep the
  hand-written TypeBox schemas as the TS source of truth
- root package.json: drop build:ts, protoc, ts-proto
This commit is contained in:
2026-09-05 14:56:24 +00:00
parent 8bdade66c2
commit 952b5e1eca
20 changed files with 233 additions and 199 deletions
@@ -6,7 +6,7 @@ fn sample(status: PrintJobStatus) -> PrintJob {
farm_id: "farm-1".into(),
printer_id: "printer-1".into(),
template_id: "template-1".into(),
status: status as i32,
status,
progress_percent: 50.0,
started_at_unix: 0,
completed_at_unix: 0,
@@ -14,9 +14,8 @@ fn sample(status: PrintJobStatus) -> PrintJob {
}
}
// Regression test: PrintJob.status must serialize as the full proto enum
// name (matching ts-types' TypeBox schema), not the raw i32 prost stores
// it as internally.
// Regression test: PrintJob.status must serialize as the full name string
// (matching ts-types' TypeBox schema), not a bare enum discriminant.
#[test]
fn status_serializes_as_full_proto_enum_name() {
let json = serde_json::to_value(sample(PrintJobStatus::Printing)).unwrap();
@@ -28,5 +27,5 @@ fn status_round_trips_through_json() {
let original = sample(PrintJobStatus::Completed);
let json = serde_json::to_string(&original).unwrap();
let restored: PrintJob = serde_json::from_str(&json).unwrap();
assert_eq!(restored.status, PrintJobStatus::Completed as i32);
assert_eq!(restored.status, PrintJobStatus::Completed);
}