command: define NavigationSuperchargerRequest.id (supercharger location) - #33
Merged
Conversation
Tag 1 was reserved and unmodelled, so a supercharger-nav request could only carry a trip order with no supercharger named. Schema evidence for this message types tag 1 as int64 with the trip-order enum at tag 2, Tesla's navigation_sc_request Fleet API surface takes exactly id and order, and CarServer.Superchargers.id - the identifier a GetNearbyChargingSites reply returns per site - is likewise an int64. Wire-compatible addition: "order" stays reserved by name, nothing is renamed or renumbered. Adds fixtures/golden/navigation_supercharger_id.json with matching TypeScript and Python round-trip tests.
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.
Intent
CarServer.NavigationSuperchargerRequesthad tag 1 reserved and unmodelled, so the message could only ever carry a trip order with no supercharger named. This defines tag 1 asint64 id, the supercharger location the request navigates to.int64(varint) with the trip-order enum at tag 2 - the same evidence that drove the tag-2 correction in fix: correct NavigationSuperchargerRequest wire-format tag (BREAKING) #32.navigation_sc_requestFleet API surface takes exactly two parameters,idandorder.orderis tag 2, which leavesidas the tag 1 value.CarServer.Superchargers.id- the identifier aGetNearbyChargingSitesreply returns for each site, and the only supercharger identifier in this package - is likewise anint64at tag 1.result: true) against a vehicle on an active route, and the route was never recalculated: destination and ETA unchanged, no preconditioning. Consistent with the vehicle being asked to add a charging stop that the request never identifies.idto matchSuperchargers.idand the Fleet API parameter;RemoveChargeScheduleAction.idsets the same in-repo precedent..changeset/README.md: nothing is renamed or renumbered, and"order"stays reserved by name so the misdeclared identifier can't come back. Un-reserving the number tripsRESERVED_MESSAGE_NO_DELETE, whichbuf.yamlalready excepts repo-wide.fixtures/golden/navigation_supercharger_id.json(synthetic ids,idalone and paired with each trip order) with matching TypeScript and Python round-trip tests.buf lint,buf breakingagainstmain,upstream_coverage.py --mode pinned,check_reply_coverage.py, catalog rebuild and tests, both language suites, andpnpm run generateleaving a clean tree.Flagged, not changed here
remote_nav_trip_orderat tag 2 is independently correct, not a knock-on of the tag 1 misreading: the same evidence places an order-typed field at tag 2 in this message specifically, and the identical enum type appears at its own distinct tag in each sibling nav message. Nothing to revisit.RemoteNavTripOrderasUNKNOWN=0, REPLACE=1, PREPEND=2, APPEND=3, but the evidence for the app-side enum has noUNKNOWNand numbers itReplace=0, Prepend=1, Append=2- one lower throughout. If that holds, every order value this library emits selects the wrong mode. It predates this change, spans four published messages, and would be a breaking fix, so it needs its own decision.idin the api command handler is a separate change, blocked on this release.