fix(pegboard-gateway): forward request ray id to actors - #5728
Conversation
|
Review: forward request ray id to actors (re-verified against Independently re-traced the flow ( Findings 1. Doc comment overstates a cross-repo guarantee ( /// Returns `value` when it is a ray ID actors accept: 1 to 30 characters of
/// `[A-Za-z0-9_-]`. RivetKit enforces the same bound on its side. The engine
/// cannot depend on RivetKit crates, so the rule is repeated here.
Confirmed by dedicated search: 2. 3. Minor test-coverage gaps
4. Minor style nit What's solid
Nothing blocking. Item 1 (fix/drop the inaccurate comment) is the only one worth doing before merge; 2-4 are optional polish/follow-up. |
d69ed40 to
87d5134
Compare
comes in later down the stack #5721 #5726
already validated as header safe, so this can't fail with the current inputs
not necessary. one test covers a similar edge case
that isn't why it's there. it forwards the validated ray ID from the request context |
87d5134 to
7e3ab40
Compare
7e3ab40 to
79a7a3f
Compare
79a7a3f to
9ded92b
Compare
9ded92b to
dc30cc2
Compare
dc30cc2 to
c358448
Compare
c358448 to
485c369
Compare
MasterPtato
left a comment
There was a problem hiding this comment.
- is keeping external ray id a string instead of parsing as
Idintentional? - how do you find traces for an engine ray_id vs an external_ray_id?
- is it easy to find the external_ray_id associated with an engine ray_id and vice versa?
- the external ray id isnt passed down the line to consumers like api and actor workflows. see
ctx.with_rayincreate_routing_function. is this intentional? - would the api be cleaner if the two were combined and external_ray_id was required to be a proper
Id?
if keeping engine rays and client rays separate is part of the goal then most of these questions can be ignored
485c369 to
ce67677
Compare
ce67677 to
b77c420
Compare
b77c420 to
ef31ccb
Compare
Standardizing where ray IDs originate. The client (caller) can provide one, otherwise the engine generates it. The same ray ID is forwarded to the actor and returned in the resp.