chore: update kura stack to latest and build on OTP 28 - #33
Merged
Merged
Conversation
kura v2.0.8 -> v2.20.12, kura_postgres v0.4.2 -> v1.1.3 (minato driver), rebar3_kura pinned to v0.16.4, nova 0.14.3 -> 0.16.1 via relock. The unpinned rebar3_kura plugin had started bundling kura 2.20, whose kura_dialect behaviour shadowed the project's kura 2.0.8 at compile time. uuid_erl left with pgo; the suite uses chatli_uuid instead. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011ePHyY6bgheH2WuHz7PUsR
minato requires OTP 28; the image was still built on 27.0.1. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011ePHyY6bgheH2WuHz7PUsR
pre_request and post_request take Env and PluginState and return the state; the old two-argument callbacks crashed every request with undef. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011ePHyY6bgheH2WuHz7PUsR
Epoch milliseconds overflow int4. pgo truncated the value silently; minato rejects it, which surfaced the bug. Widening is safe for the deployed code, so the migration opts out of the lint via safe/0. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011ePHyY6bgheH2WuHz7PUsR
Narrowing back to integer fails on stored millisecond values and, on an empty table, would silently reintroduce the overflow. down/0 is now a no-op. Drops the unused kura.hrl include. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011ePHyY6bgheH2WuHz7PUsR
The behaviour attribute would have caught the callback arity change at compile time. plugin_info/0 moves to the nova 0.16 map form with real values, the template edoc blocks go, and the pass-through clauses get eunit coverage. Drops parse_bindings from the local config; nova 0.16 ignores it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011ePHyY6bgheH2WuHz7PUsR
src/migrations was outside the erlfmt file globs, so generated migrations were never checked. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011ePHyY6bgheH2WuHz7PUsR
The builder was pinned to erlang:28.3.1.0-alpine (Alpine 3.23) while the runtime stage floated on alpine:latest. CI now runs OTP 28.3.1 to match .tool-versions and the image. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011ePHyY6bgheH2WuHz7PUsR
Explicit exports instead of export_all so helpers no longer read as unreachable tests, chained map matches split to avoid the mutable variable bug, and the dead add_participant case removed - it was never in all() and matched the chat id with an atom key. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011ePHyY6bgheH2WuHz7PUsR
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.
Same dependency rot as widgrensit/ldf#13: the unpinned
rebar3_kuraplugin bundles kura 2.20 and shadows the project's kura 2.0.8 dialect at compile time. Moves chatli to the latest deps and fixes what the upgrade surfaced.pgodropped from app.src; suite useschatli_uuidinstead of the uuid_erl that left with pgochatli_multipart_pluginported to the nova 0.16 four-argument plugin callbacks; the old shape crashed every request withundefmessage.timestampwidened to bigint with a generated migration. Epoch milliseconds overflow int4: pgo truncated them silently, minato rejects them. The migration opts out of the unsafe-lint viasafe/0because widening is compatible with deployed code.Verified on OTP 28.3.1: compile, xref, dialyzer, lint, fmt green; all 12 CT tests pass against Docker Postgres 17 with the demo seed applied;
docker buildsucceeds on the new base.🤖 Generated with Claude Code
https://claude.ai/code/session_011ePHyY6bgheH2WuHz7PUsR