Skip to content

refactor(api): consolidate proto files and trim EngineError - #29

Closed
connorcarpenter15 wants to merge 1 commit into
mainfrom
refactor/consolidate-proto-files
Closed

refactor(api): consolidate proto files and trim EngineError#29
connorcarpenter15 wants to merge 1 commit into
mainfrom
refactor/consolidate-proto-files

Conversation

@connorcarpenter15

Copy link
Copy Markdown
Member

Summary

Consolidates the openengine/v1 proto file set from 10 → 8 and trims dead message/field surface. Package name, message names, and field numbers are unchanged, so this is wire-compatible and (for whole-package codegen) transparent to consumers — only which file a message lives in changes.

Consolidation

  • observability.protoserver.proto. After earlier cleanups, observability.proto held only load reporting (GetLoadRequest, LoadInfo, RankLoadInfo) — "observability" had become a misnomer. Load is the dynamic half of what server.proto already reports (static identity/capacity/roles), so they belong together: "everything the server reports about itself."
  • input.protogeneration.proto. After the non-generative task RPCs were removed, generation.proto was input.proto's only consumer. TokenIds/Modality/MediaItem move in as-is.

Dead-code removal

  • Task-input typesTaskInput, MultimodalTaskInput, TaskInputType were orphaned when Embed/Classify/Score were removed (nothing referenced them). Deleted.
  • EngineError fields — dropped details (never set or read by any engine or the sidecar) and retry_after_ms (only ever absent), plus the now-unused struct import. Kept retryable: all three servers populate it (SGLang computes it from a 503), even though the sidecar does not yet read it — removing it would discard a real signal rather than dead code.

Result

10 → 8 files: openengine · generation (+input) · kv · model · server (+observability/load) · lifecycle · lora · error.

Validation

  • protoc -I proto --experimental_allow_proto3_optional builds the full descriptor set clean.
  • markdownlint-cli2 clean on all Markdown.

Notes

Compatibility

No wire-format change from the consolidation (same package/messages/field numbers). The EngineError field removals are wire-breaking for those two fields only, which no consumer reads.

Reduce the openengine/v1 file set from 10 to 8 by folding two small
files into the domain file that owns their concern, and remove dead
message/field surface. Package, message names, and field numbers are
unchanged -- wire- and (whole-package) codegen-compatible.

- Fold observability.proto into server.proto. Post-cleanup it held only
  load reporting (GetLoadRequest/LoadInfo/RankLoadInfo); "observability"
  was a misnomer. server.proto now covers static identity/capacity plus
  dynamic load -- everything the server reports about itself.

- Fold input.proto into generation.proto, its sole remaining consumer,
  and delete the dead task-input types (TaskInput, MultimodalTaskInput,
  TaskInputType) orphaned when the non-generative task RPCs were removed.
  TokenIds/Modality/MediaItem move as-is.

- Trim EngineError: drop `details` (never set or read by any
  engine/sidecar) and `retry_after_ms` (only ever absent), and the
  now-unused struct import. Keep `retryable` -- servers populate it
  (SGLang computes it from a 503) even though the sidecar does not yet
  read it.

Sync docs/api.md and the proto README table.

Validated with protoc and markdownlint-cli2.

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
@connorcarpenter15

Copy link
Copy Markdown
Member Author

Folded into #28 — keeping the Drain removal and the proto consolidation / EngineError trim in a single PR.

@connorcarpenter15
connorcarpenter15 deleted the refactor/consolidate-proto-files branch July 23, 2026 15:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant