fix: fix pool metadata protocol version refresh, rivetkit native ws#4585
Conversation
|
🚅 Deployed to the rivet-pr-4585 environment in rivet-frontend
|
PR Review: Pool Metadata Protocol Version Refresh & RivetKit Native WebSocket FixesSummaryThis PR addresses protocol version refresh for serverless runner configurations and fixes WebSocket handling issues in the RivetKit native module. Changes include refactoring actor name management, improving cache handling, and fixing architecture issues in the native envoy client. Positive Aspects
IssuesCritical1. Empty PR description 2. WASM/Native VFS parity (CLAUDE.md requirement) 3. Breaking config schema change Moderate4. Silent truncation in WebSocket key generation fn make_ws_key(gateway_id: &[u8], request_id: &[u8]) -> [u8; 8] {
let mut key = [0u8; 8];
if gateway_id.len() >= 4 {
key[..4].copy_from_slice(&gateway_id[..4]);
}
if request_id.len() >= 4 {
key[4..].copy_from_slice(&request_id[..4]);
}
key
}Inputs shorter than 4 bytes are silently zero-padded, and inputs longer than 4 bytes are silently truncated. Neither case logs a warning. This could hide protocol mismatches. At minimum, add a comment explaining the intended format and when truncation/padding is expected. 5. Undefined returns in wrapper.js (fail-by-default violation) getProtocolMetadata: () => undefined,
getActor: () => undefined,Per CLAUDE.md: "Avoid silent no-ops for required runtime behavior... If a capability is required, validate it and throw an explicit error with actionable context instead of returning early." If these are required capabilities, they should throw. If genuinely optional, add a comment explaining why. 6. Engine runner parity (CLAUDE.md requirement) Minor7. Missing test coverage
8. Cargo.lock dependency removal CLAUDE.md Compliance
Recommended Actions
|

Description
Please include a summary of the changes and the related issue. Please also include relevant motivation and context.
Type of change
How Has This Been Tested?
Please describe the tests that you ran to verify your changes.
Checklist: