From 3b11bef660582b7599ea7199ea0b362435d1df8a Mon Sep 17 00:00:00 2001 From: Ayla Croft Date: Sat, 19 Sep 2026 18:31:35 -0400 Subject: [PATCH] beam_mcp_signer 0.1.1: the beam_mcp requirement is ~> 0.7 (two numbers), and the CHANGELOG carries its headings. 0.1.0's ~> 0.7.0 held a host on core 0.7.x, so {:beam_mcp, "~> 0.8.0"} beside {:beam_mcp_signer, "~> 0.1.0"} did not resolve once core's 0.8.0 shipped (the release lane measured it; core's UPGRADING says so). Core's public surface is frozen from 0.7.0 to 1.0.0 by its own rule and this package uses nothing outside the BeamMCP.Signer behaviour and Canonical.signature/3's bytes, so the requirement spans 0.7, 0.8 and any 0.9 and stops at 1.0.0. mix.lock resolves beam_mcp 0.8.0 at outer checksum b5a1beba2c936c2c50e164c43240ac31bc8b159a994980083ec0f6562392801e, the bytes hex.pm serves and the provenance run attested. CHANGELOG: [0.1.0] -- 2026-09-19 (published with the heading still reading Unreleased; that tarball cannot be fixed) and [0.1.1] -- 2026-09-19. No code change: 10 tests, 0 failures against core 0.8.0; the planted System.get_env fallback for the key is still red (10 tests, 4 failures) and restored Signed-off-by: Ayla Croft --- CHANGELOG.md | 12 ++++++++++++ mix.exs | 14 ++++++++------ mix.lock | 2 +- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2840b8e..f123d97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,18 @@ SPDX-License-Identifier: Apache-2.0 ## [Unreleased] +## [0.1.1] — 2026-09-19 + +### Changed + +- The `beam_mcp` requirement is `~> 0.7` (two numbers): `0.1.0`'s `~> 0.7.0` held a host on + core `0.7.x`, so `{:beam_mcp, "~> 0.8.0"}` beside `{:beam_mcp_signer, "~> 0.1.0"}` did not + resolve. Core's public surface is frozen from `0.7.0` to `1.0.0` by its own rule, and this + package uses nothing outside the `BeamMCP.Signer` behaviour and the canonical bytes, so the + wider requirement is safe until core's `1.0.0`. No code changes. + +## [0.1.0] — 2026-09-19 + ### Added - `BeamMCP.Signer.Ed25519.sign/2`: Ed25519 through OTP's `:crypto` over the canonical bytes, diff --git a/mix.exs b/mix.exs index 75ceffb..74bbcce 100644 --- a/mix.exs +++ b/mix.exs @@ -4,7 +4,7 @@ defmodule BeamMCP.Signer.Ed25519.MixProject do use Mix.Project - @version "0.1.0" + @version "0.1.1" @source_url "https://github.com/ScriptKittyOS/beam_mcp_signer" # The same floor as beam_mcp: the behaviour this package implements lives there, and one @@ -33,11 +33,13 @@ defmodule BeamMCP.Signer.Ed25519.MixProject do defp deps do [ - # The behaviour, `BeamMCP.Signer`, is public in beam_mcp from 0.7.0. Three numbers, as - # core's README asks: while core is 0.x a documented break may land at the next minor, - # and a two-number requirement would carry this package across it. Nothing else: Ed25519 - # is OTP's. - {:beam_mcp, "~> 0.7.0"}, + # The behaviour, `BeamMCP.Signer`, is public in beam_mcp from 0.7.0 and frozen from + # there: core's own rule says its public surface does not move again before 1.0.0, and + # this package touches nothing but that behaviour and `Canonical.signature/3`'s bytes. + # So two numbers here, on purpose: the requirement spans core's 0.7, 0.8 and any 0.9, + # stops at 1.0.0, and a host is not held on the previous core minor by this package + # (0.1.0's `~> 0.7.0` did exactly that at core's 0.8.0). Nothing else: Ed25519 is OTP's. + {:beam_mcp, "~> 0.7"}, {:ex_doc, "~> 0.34", only: :dev, runtime: false} ] end diff --git a/mix.lock b/mix.lock index 8e5ef80..524ed7e 100644 --- a/mix.lock +++ b/mix.lock @@ -1,5 +1,5 @@ %{ - "beam_mcp": {:hex, :beam_mcp, "0.7.0", "cad68c79998f2e390579a52e78dc73a6bcf4f1b9ad748b1617e6220d4e2e1547", [:mix], [{:bandit, "~> 1.5", [hex: :bandit, repo: "hexpm", optional: true]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:plug, "~> 1.16", [hex: :plug, repo: "hexpm", optional: true]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "8efffc0e432e1493d6df1bedd176afe70b73caff58b131f44815115b5b82ba0f"}, + "beam_mcp": {:hex, :beam_mcp, "0.8.0", "49f2607a92da4137cd1d11fc8669c396e1d93eedf7a3e29aaab1531dd41bd9c2", [:mix], [{:bandit, "~> 1.5", [hex: :bandit, repo: "hexpm", optional: true]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:plug, "~> 1.16", [hex: :plug, repo: "hexpm", optional: true]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "b5a1beba2c936c2c50e164c43240ac31bc8b159a994980083ec0f6562392801e"}, "earmark_parser": {:hex, :earmark_parser, "1.4.46", "67607a0532e810c6f630a515c548d0b24949643f168cc556303bee4cf96105c7", [:mix], [], "hexpm", "9c44636e8a1c68c62f526b2dcd85d941dbbcee7ab82cf64ba06ce28bef8e89f5"}, "ex_doc": {:hex, :ex_doc, "0.40.4", "66f2e42bf588594d5a8aab31cad87f2ddad09d0da1b1a2f379340ec2c2e497cb", [:mix], [{:earmark_parser, "~> 1.4.46", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "6222b9e423d76584ee34df2c82a5ed72c2d53dc153f7f483ad28b378694186cc"}, "jason": {:hex, :jason, "1.4.5", "2e3a008590b0b8d7388c20293e9dcc9cf3e5d642fd2a114e4cbbb52e595d940a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "b0c823996102bcd0239b3c2444eb00409b72f6a140c1950bc8b457d836b30684"},