chore(api): update Proto Rig API - #886
Conversation
🔐 Codex Security Review
Review SummaryOverall Risk: NONE FindingsNo security, correctness, or reliability issues were identified in the changed hunks. NotesThe new protobuf file is reference-only and additive. The OpenAPI specification is unchanged, and the generated TypeScript client changes are formatting-only. The client passed a standalone TypeScript syntax/type check. Generated by Codex Security Review | |
|
|
||
| ## Files Extracted | ||
|
|
||
| ### gRPC Proto Files (from `crates/rpc/protos/`) |
There was a problem hiding this comment.
Does fleet communicate with the FW over grpc? If not, can these grpc related files be removed?
Reviewable diff: +31/-8 across 2 files (excludes generated, test, and story files).
Summary
Proto Fleet's vendored miner contract now tracks
miner-firmwarecommit5fbc89f08df97ff4dab19f0ae122d1c72d6b581cand includes the authoritative hashboard identity observation schema. The REST contract and fake-rig behavior remain unchanged becauseMDK-API.jsonis byte-identical to the previous snapshot; the TypeScript client diff is deterministic formatting from the currently pinned generator.How it works
The repository keeps miner-hosted contracts in
proto-rig-api/so open-source consumers do not need access to the private firmware repository. This update copies the new identity schema from the firmware RPC source, records the exact firmware and hashboard revisions, and regenerates the ProtoOS client from the unchanged OpenAPI document. Because the REST surface did not change, no simulator handlers or response models need updating.Diagrams
flowchart LR FW["miner-firmware @ 5fbc89f"] --> GRPC["Vendored gRPC references"] FW --> OPENAPI["MDK-API.json (byte-identical)"] GRPC --> REF["Proto Fleet API reference"] OPENAPI --> CLIENT["Generated ProtoOS client"] OPENAPI --> SIM["fake-proto-rig contract"]Areas of the code involved
proto-rig-api/grpc/mdk_hashboard_identity_v1.protoproto-rig-api/VERSION.mdclient/src/protoOS/api/generatedApi.tsKey technical decisions & trade-offs
MDK-API.jsondoes not expose.Testing & validation
MDK-API.jsonbyte-for-byte against the source checkout.npm run generate-api-typestwice and confirmed stable output.npm run lint.npm run build:protoOS.npm test -- --run src/protoOS/store/utils/errorTransformer.test.ts(8 tests passed).buf format --diffandbuf buildfor the new schema.Full E2E and plugin contract suites were not run because neither the REST schema nor simulator behavior changed.
Post-Deploy Monitoring & Validation
No additional operational monitoring required — this updates a reference-only contract and generated formatting without changing the runtime REST API or simulator behavior.