Skip to content

feat(isolate_proto): add app request start timeout fields - #1202

Open
buraksenn wants to merge 1 commit into
mainfrom
buraksenn/plat-5789-request-start-timeout-proto
Open

buraksenn wants to merge 1 commit into
mainfrom
buraksenn/plat-5789-request-start-timeout-proto

Conversation

@buraksenn

@buraksenn buraksenn commented Oct 6, 2026 •

Copy link
Copy Markdown

Adds optional request_start_timeout fields to MachineRequirements, UpdateApplicationRequest, ApplicationInfo, and AliasInfo for an app's default queue-wait timeout. Processing and runner-startup timeouts retain their existing fields and wire tags.

Deploy/update requests use positive seconds to set the default, omission to preserve it under existing deployment/update rules, and an explicitly present 0 to clear it. Responses omit the field when no app default is configured. The controller follow-up must translate explicit zero to an unset database value before positive-value validation.

Bindings were regenerated with tools/regen_grpc.py against isolate v0.26.12. Tests cover optional presence, serialization of explicit zero, existing processing-timeout fields, and compatibility with older protobuf readers.

Validation: all 23 isolate-proto tests and pre-commit run --all-files passed.

This supplies the protocol for the controller/SDK follow-up after an isolate-proto release.


Note

Low Risk
Additive protobuf fields with backward-compatible wire tags; behavior depends on controller follow-up to honor and validate the new field.

Overview
Introduces request_start_timeout on the controller API so apps can configure a default queue-wait limit separately from request_timeout (processing) and startup_timeout.

The optional field is added to MachineRequirements (deploy/register via nested requirements), UpdateApplicationRequest, and read models ApplicationInfo and AliasInfo. Semantics: positive seconds set the default; omission preserves the current value on update/deploy (per existing inheritance rules); explicit 0 clears the default on write paths. Responses leave the field unset when no app default exists.

Python controller_pb2 / .pyi were regenerated. New tests cover optional presence, wire round-trip, 0 vs omitted, field numbers, and forward/backward protobuf compatibility with readers that only know request_timeout.

Reviewed by Cursor Bugbot for commit 902cbd0. Bugbot is set up for automated code reviews on this repo. Configure here.

@linear-code

linear-code Bot commented Oct 6, 2026

Copy link
Copy Markdown

PLAT-5789

@buraksenn buraksenn changed the title feat(isolate_proto): add app request start timeout fields (PLAT-5789) feat(isolate_proto): add app request start timeout fields Oct 6, 2026
@buraksenn
buraksenn marked this pull request as ready for review October 7, 2026 11:41
@buraksenn

Copy link
Copy Markdown
Author

@codex review
@claude review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-07T11:43:04.969507Z 902cbd0 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. More of your lovely PRs please.

Reviewed commit: 902cbd0aa6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — straightforward, additive protobuf schema change.

What was reviewed: the four new request_start_timeout optional int32 fields in controller.proto (field numbers 20/14/17/18, all previously unused, no collisions with existing fields); the regenerated controller_pb2.py/.pyi were checked for consistency with the .proto (field accessors, HasField/ClearField/WhichOneof literals, and the serialized-descriptor byte-offset shifts all line up as expected from a mechanical protoc regen); and the new parametrized tests in test_proto.py, which correctly use HasField/ClearField/FromString round-tripping and a legacy DescriptorPool to verify optional-presence semantics and backward/forward wire compatibility.

Extended reasoning...

The change adds one new optional int32 field (request_start_timeout) to four existing protobuf messages in controller.proto, plus the corresponding regenerated controller_pb2.py/.pyi and new tests; it touches no auth, crypto, or data-handling logic, only schema/wire format. I confirmed all four new field numbers are previously unused in their messages (no collisions), the .pyi diff shows exactly the expected additions in the expected locations, and the pb2.py diff is the expected mechanical serialized-descriptor blob plus byte-offset shifts consistent with a protoc regen. Tests follow existing file conventions and correctly exercise optional-field presence and wire compatibility with a legacy schema. This is small, self-contained, and mechanical enough that no human look is strictly necessary.

This branch has not been deployed

No deployments
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