chore(sync-service): upgrade Elixir to 1.20.0#3992
Conversation
Claude Code ReviewSummaryUpgrades Erlang/OTP from 28.4 to 29.0 and Elixir from 1.19.5 to 1.20.0-rc.5, with fixes for new compiler/type-checker warnings (pin operator in bitstring patterns, What's Working Well
Issues FoundImportant (Should Fix)1. Shipping on an Elixir release candidate File: The PR pins production to Suggestion: Either wait for 1.20.0 final before merging, or explicitly document in the PR description that this is being shipped on an RC intentionally (and to which environments — dev only? staging? prod?). Worth flagging which 2. Lux dependency now tracks a moving branch File: The integration-test harness now clones The cache key in Suggestion: Pin to a specific tag or commit SHA, e.g. 3. File: if apply(Electric, :telemetry_enabled?, []) and telemetry_code_available? do
Suggestion: One-line comment, e.g. Suggestions (Nice to Have)4. Behavior change tucked into a "dead code" removal File: defp handle_apply_event_result(state, {:error, reason}) do
state = handle_event_error(state, reason)
{:noreply, state, {:continue, :stop_and_clean}}
endOld behavior: when This is correct given all three 5. Changeset wording File: The changeset is correctly marked Issue ConformanceNo linked issue. For an OTP/Elixir version bump this is acceptable, but the PR description should make explicit what motivated the upgrade now (waiting on a Postgrex fix? new Elixir feature in use? CI compatibility?). Two of the three CI failures reported by the Blacksmith bot in PR comments ( Previous Review StatusThe previous Claude review on this PR was a test placeholder ( Review iteration: 2 | 2026-05-18 |
❌ 1 Tests Failed:
View the top 2 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
This comment has been minimized.
This comment has been minimized.
fe1f308 to
504092c
Compare
This comment has been minimized.
This comment has been minimized.
40ebf7e to
e9dbd76
Compare
ade153c to
2afe4fe
Compare
Upgrade Elixir from 1.19.5 to 1.20.0. Fix Elixir 1.20 compatibility warnings: - Remove 7 unused `require` statements detected by stricter checks - Add pin operator (`^`) in bitstring size patterns (5 occurrences) - Rename `Changes.record()` type to `Changes.row()` to avoid overriding new built-in `record/0` type - Remove unreachable `:shutdown` case clause in pool.ex (caught by improved type inference from preceding handle_info clause) - Use `apply/3` in telemetry.ex to avoid type checker flagging compile-time conditional as always-false
2afe4fe to
6906f5b
Compare
Summary
requirestatements^) in bitstring size patternsChanges.record()toChanges.row()(new built-in type conflict)apply/3in telemetry.ex to avoid compile-time conditional type warning