Skip to content

🧲 Magg Release v1.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 27 Jun 23:43
v1.1.0
79923f8

Changes

Release v1.1.0

Date: Sat Jun 27 16:42:41 2026 -0700

Bump version to 1.1.0 and mark Production/Stable

Date: Sat Jun 27 16:33:50 2026 -0700

Defer annotations in reload.py to support Python 3.12/3.13

Date: Sat Jun 27 16:15:27 2026 -0700

The unquoted ConfigManager parameter annotation is a TYPE_CHECKING-only
name, so it raised NameError at import on 3.12/3.13, which evaluate
annotations eagerly. 3.14 defers annotation evaluation by default, so it
passed there. from future import annotations makes all annotations
lazy strings on every version.

Fix example imports and control sdist build contents

Date: Sat Jun 27 16:07:48 2026 -0700

  • config_reload.py: fix the broken MaggServer import and drop the
    sys.path hack (magg is an installed dependency)
  • sampling.py: remove the stale PEP 723 script header
  • pyproject.toml: delete the inert Poetry packages/include keys and add a
    hatchling sdist allowlist, so the source distribution ships the package,
    tests, examples, docs, and scripts but not IDE/build/dev files

Adopt ruff for formatting and linting

Date: Sat Jun 27 15:47:24 2026 -0700

  • Add ruff dev-dep and config (line-length 120, lint F+I)
  • Format the codebase with ruff format
  • Remove unused imports and dead local variables it surfaced
  • reload.py: use a TYPE_CHECKING import for ConfigManager instead of a
    function-level import; drop a redundant config load; rename a loop
    variable that shadowed the dataclasses field import
  • Delete scripts/fix_whitespace.py (ruff format handles whitespace)

Fix proxy tool-call result handling for FastMCP 3.x

Date: Sat Jun 27 14:51:16 2026 -0700

client.call_tool() returns a CallToolResult in 3.x, not an iterable
list, so the proxy 'call' action raised "'CallToolResult' object is
not iterable". Iterate result.content, and add the missing test
coverage for the proxy call path. Found while evaluating PR #10.

Co-authored-by: Leon135 45859721+Leon135@users.noreply.github.com

Pin Alpine base image to 3.24

Date: Sat Jun 27 14:38:30 2026 -0700

Avoids surprise base changes from the floating alpine:latest and makes
builds reproducible. 3.24 is the current stable series (what :latest
already resolved to); bump the series manually as needed.

Harden URL host checks, add workflow permissions, tidy discovery module

Date: Sat Jun 27 14:23:48 2026 -0700

  • py/incomplete-url-substring-sanitization: parse the URL host and
    compare it exactly (handling www/subdomains) instead of substring-
    matching the whole URL (discovery/search.py, discovery/metadata.py)
  • actions/missing-workflow-permissions: add least-privilege
    contents: read to test.yml and publish.yml
  • discovery: drop unused imports and convert static-able methods to
    classmethods

Scope the uv setup cache per Python version in CI

Date: Sat Jun 27 13:57:46 2026 -0700

The test matrix jobs shared one setup-uv cache key (derived from
uv.lock, not the Python version), so they raced to save it and all
but one logged a cache-reservation warning. cache-suffix gives each
version its own key.

Update CI/Docker workflows and add Python 3.14 to image builds

Date: Sat Jun 27 13:43:28 2026 -0700

  • Bump GitHub Actions to latest; pin behavior-sensitive ones exact
    (upload-artifact@v7.0.1, download-artifact@v8.0.1, setup-uv@v8.2.0)
  • Add 3.14 to all docker build/test/push matrices and make it the
    default for the unsuffixed dev/prod image tags (verified on Alpine)
  • Correct the workflows readme: drop the unpublished -pre image claims
  • Use SPDX AGPL-3.0-or-later for the image license label
  • Remove dead/redundant commented-out workflow config

Migrate to FastMCP 3.x and add Python 3.14 support

Date: Sat Jun 27 12:51:01 2026 -0700

  • Auth: BearerAuthProvider -> JWTVerifier (3.x removed the old class)
  • Proxy: drop removed tool_serializer; get_tools -> list_tools
  • Mount: as_proxy -> create_proxy, prefix -> namespace
  • Transports: add NoValidateNpxStdioTransport (3.x validates npx at construction)
  • Deps: require fastmcp>=3.4,<4, add explicit mcp dependency, regenerate lock
  • CI: test on 3.12/3.13/3.14, fix test path filter and pin per-version Python

Installation

uv add magg==1.1.0