chore(xmtp_proto): regenerate protos for the metadata update guard - #4018
Conversation
|
Claude finished @tylerhawkes's task —— View job Code Review — 2026-08-19 19:17 UTCSummaryThis PR cleanly regenerates Rust protos to add the Review NotesProto Changes (xmtp.mls.database.rs:300-305)
Intent Handling (intents.rs:263-265)
Task Handling (tasks.rs:445-455)
Generated Code
Observations
|
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Proto regeneration adding new structures with minimal defensive code. The hand-written changes explicitly preserve existing behavior (new optional field set to None, unknown task type simply deleted). Author owns all changed files. You can add or adjust custom eligibility rules. Learn more. |
1503a79 to
c5f2ef2
Compare
Dismissing prior approval to re-evaluate c5f2ef2
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #4018 +/- ##
==========================================
- Coverage 86.00% 85.93% -0.07%
==========================================
Files 417 417
Lines 68165 68170 +5
==========================================
- Hits 58622 58579 -43
- Misses 9543 9591 +48 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Stack
Merge bottom-up — each PR is based on its parent below.
expected_field_valueonUpdateMetadataData.V1(base:main) ← this PRIntentState::SupersededRegenerates the Rust protos to pick up xmtp/proto#343, which adds
expected_field_valuetoUpdateMetadataData.V1— the compare-and-swap guard the metadata-update intent needs.UpdateMetadataDatalives in thexmtp.mls.databasepackage: it is the payload libxmtp stores for a queued intent, never sent on the wire. Nothing about the MLS commit format changes.Unrelated fallout worth flagging
Regenerating from
mainalso picks up xmtp/proto#342 (KpLivenessTask variant), which merged before #343 — there is no way to take one without the other. That variant makes an exhaustivematchinworker/tasks.rsnon-exhaustive, so this PR adds an arm for it.Nothing in this crate schedules a
KpLivenesstask, so a row can only appear from a newer client sharing the database. The arm logs and deletes rather than retrying forever; the owning feature should replace it with real handling.🤖 Generated with Claude Code
https://claude.ai/code/session_01AdY7WKkNbJmdzpmUWvW1my
Note
Regenerate protos to add
expected_field_valuefield andKpLivenesstask typeUpdateMetadataData.V1gains an optionalexpected_field_valuefield (tag 3), andTaskgains a newKpLivenessvariant (tag 8).intents.rsto setexpected_field_value: Nonewhen encodingUpdateMetadataIntentData.tasks.rsforTask::KpLivenessthat logs a warning and deletes the task instead of retrying it.proto_versiontodedb872.Macroscope summarized c5f2ef2.