Repository navigation
Releases: TheTsungYing/AnnealBridge
Release list
v0.4.0
Two new problem schema versions, opt-in post-processing, wall-clock limits and
cancellation. Existing 1.0 / 1.1 problem documents keep working unchanged.
Before upgrading
- Dependency floors raised:
pydantic>=2.10,numpy>=2.0,
dimod>=0.12.19,dwave-samplers>=1.3,typer>=0.26; with extras
mcp>=2.1,<3,dwave-system>=1.26. - MCP schema errors are no longer tool errors: they now return a structured
invalid_problem/valid: falseresult instead ofisError: true. - New output fields (
source,postprocess,wall_clock_limit_reached,
supports_interrupt, newlimits);schema_versionis now"1.3"and the
error catalog grows from 48 to 64 codes. - CLI
--jsonoutput is always UTF-8, also on Windows.
Highlights
- Schema
1.2: cardinality constraints (one-hot, at-most-k, at-least-k). - Schema
1.3: templates for large regular models, plusannealbridge expand. - Opt-in post-processing: repair and local search, with every result re-validated.
- Wall-clock limit and cancellation for the local heuristic backends.
- CLI:
annealbridge example,capabilities --json, and stdin input with-.
Upgrading
pip install --upgrade "annealbridge[mcp]". With uvx, run
uv cache clean annealbridge and restart the host.
Full changelog: https://github.com/TheTsungYing/AnnealBridge/blob/main/CHANGELOG.md#040---2026-09-29 · Compare: v0.3.0...v0.4.0
v0.3.0
Two new local backends, shape-aware backend recommendations, and an MCP server
that is easier for an agent to use and for a user to discover. The problem
contract (1.0 / 1.1) is unchanged: no existing problem document needs to
change.
Added
tabubackend, a multistart tabu search ondwave-samplers. It is
strong on dense QUBOs, needs no extra and no credential, and its result
depends on(problem, num_reads, seed)alone, never on the wall clock.simulated_bifurcationbackend, the classical-mechanics heuristic of
Goto et al. (2021) implemented onnumpy. On dense 1000-variable instances
it matched the best energy the other heuristics found in 3.9 s against
their 11.6 s and 33 s. An optionalgpuextra runs it on CUDA and never
falls back to the CPU silently.- Shape-aware
recommend. Local heuristics are now ordered by problem
shape.R_DENSE_STRENGTHmarks the faster choice on large dense
unconstrained problems, andR_PENALTY_WEAKNESSmarks a weaker one once
hard constraints become penalties. A fittingexactstill ranks first. - MCP prompts and resources. Three prompts (
pick_subset,assign,
schedule_shifts) appear in a host's input menu. Five resources serve the
example problems and the full schema (annealbridge://examples/...,
annealbridge://schema). - Solve progress. A host that sends a progress token gets a notification
as each stage of each attempt starts, such as
attempt 2 of 3: solving on simulated_annealing. - A summary sentence on success.
SolveResult.messagenow holds one
deterministic sentence an agent can relay as is, for example
exact proved optimality: rank 1 has objective 17 (maximize); .... annealbridge_versionin capabilities, so a capabilities response names
the build that produced it.
Changed
get_optimization_capabilitiesno longer returns the JSON schema by
default. Passinclude_schema: trueto get it. The plain call is now
about a quarter of its former size.problem_json_schemaisnull
otherwise, and the CLIcapabilitiescommand still prints the full schema.- Fewer tool calls for simple problems. The server instructions let an
agent solve directly on a local backend, since an invalid document comes
back asinvalid_problemwith the same errors validation would give. A
remote backend or a large problem is still validated first. On hosts that
ask the user to approve every tool call, a simple problem now needs one or
two approvals instead of four. - When several local backends fit and the user named none, the agent is
told to show the top entries and ask which to run.
Upgrading
pip install --upgrade annealbridge
Through uvx, the MCP server keeps running the version it first resolved. Run
uv cache clean annealbridge and restart the host. annealbridge-mcp --version
shows the version that actually runs.
Full changelog: https://github.com/TheTsungYing/AnnealBridge/blob/main/CHANGELOG.md#030---2026-09-22 · Compare: v0.2.1...v0.3.0
v0.2.1
AnnealBridge is now on the MCP Registry
as io.github.TheTsungYing/annealbridge. No optimization behaviour changed.
Added
annealbridge mcpruns the MCP server, exactly as theannealbridge-mcp
console script does. Every argument reaches the same parser,--helpand
--versionincluded, and a missing[mcp]extra ends both the same way.server.jsondescribes the server for the MCP Registry. A registry
client resolves it touvx --from=annealbridge[mcp] annealbridge mcp.
The subcommand exists because the registry composes a package command as
<runtimeHint> <runtimeArguments> <identifier> <packageArguments>, and
identifier has to be the PyPI project name for the registry's ownership
check — so a console script named differently from the project is unreachable.
Both entry points remain supported; a hand-written host configuration is
shorter with annealbridge-mcp.
Installing from the registry
A registry-aware client picks this up on its own. By hand, nothing changes:
uvx --from "annealbridge[mcp]" annealbridge-mcp
Upgrading an existing uvx install still needs uv cache clean annealbridge
and a host restart — it reuses the environment it first resolved.
Full changelog: https://github.com/TheTsungYing/AnnealBridge/blob/main/CHANGELOG.md#021---2026-09-16 · Compare: v0.2.0...v0.2.1
v0.2.0
A maintenance and hardening release. The problem contract (1.0 / 1.1), the
six backends, the CLI and the MCP tools are unchanged — no existing problem
document needs to change.
- Corrected dependency floors (
pydantic-settings>=2.7,
dwave-system>=1.10). Under 0.1.0 an older version installed cleanly and then
failed on import or on the first hybrid CQM solve. This is the main reason to
upgrade. --versiononannealbridgeandannealbridge-mcp, answered before any
ANNEALBRIDGE_*setting is read.seed_min/seed_maxinget_optimization_capabilities. An
out-of-rangesolver.seedis refused before the backend is called.- One failing backend no longer breaks the capabilities view. It is listed
as unavailable with a redacted reason instead of failing the whole call. - Clearer MCP failures. A settings error exits
2with oneError:line
instead of a traceback, andmetadata.timing_usno longer emits non-finite
values that made strict clients reject an otherwise good result. - Faster compilation, validation, deduplication and ranking, with
bit-for-bit identical output. A 200-integer-variable, 25-constraint problem
compiles in ~31 ms instead of ~65.
Upgrading
pip install --upgrade annealbridge
Through uvx, the MCP server keeps running the version it first resolved. Run
uv cache clean annealbridge and restart the host; annealbridge-mcp --version
shows what is actually running.
Full changelog: https://github.com/TheTsungYing/AnnealBridge/blob/main/CHANGELOG.md#020---2026-09-16 · Compare: v0.1.0...v0.2.0