agent simulation: name the run window bounds start_time/end_time - #1738
Merged
Conversation
`from` is a Python keyword, so protoc's --pyi_out cannot emit a parameter for it: the stub drops the attribute and falls back to an untyped `**kwargs`, which python-sdks' strict mypy gate rejects, and no Python caller can reach the field except through getattr. Rename both bounds together to keep the pair symmetric and to match the _time suffix the timestamps elsewhere use. Field numbers are unchanged, so the wire format is compatible; only the JSON/text names move.
|
theomonnom
approved these changes
Aug 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A field named
fromis unusable from Python. protoc's--pyi_outcannot emit a keyword as a parameter name, so it drops the attribute declaration and falls back to a bare**kwargs— which python-sdks' strict mypy gate rejects outright (failing job, surfaced by an unrelated PR that happened to bump the protocol submodule past #1724). With the type gate silenced a Python caller could still only reach the field throughgetattr(req, "from")/Request(**{"from": ts}), unchecked either way.Renames both bounds on
SimulationRun.List.RequestandSimulationRun.Counts.Requestfromfrom/totostart_time/end_time: symmetric, and matching the_timesuffix the timestamps elsewhere use. Field numbers are unchanged, so the wire format is compatible — only the JSON/text names move.The fields landed in #1724/#1726 and
.changeset/still holds #1723's pending entry, so they have never been in a release and no consumer outsidemainis on the old names.Downstream: agents-private/agent-service is the only repo that reads the fields (PR follows). cloud-api-server's proxy forwards only
project_id/status/page_token, web's checked-ingen/protopredates #1724, and public-api-server / server-sdk-go / cloud-protocol reference the message types but not these fields — all recompile unchanged.