Releases: ralforion/orionbelt-chat
Releases · ralforion/orionbelt-chat
Release list
v1.5.0
What's Changed
- feat: publish to PyPI and make the wheel installable by @ralfbecher in #46
- test: cover the tool-call → tool-result path by @ralfbecher in #47
- feat: configure any MCP server, not just the built-in two by @ralfbecher in #48
- chore: release 1.5.0 by @ralfbecher in #49
Full Changelog: v1.4.2...v1.5.0
v1.4.2
What's Changed
- chore(deps): Bump the python-prod group with 3 updates by @dependabot[bot] in #41
- chore(deps): Bump the python-prod group with 4 updates by @dependabot[bot] in #42
- chore(deps): Bump types-pyyaml from 6.0.12.20260724 to 6.0.12.20260815 by @dependabot[bot] in #43
- chore: ship third-party attribution and SBOM with the image by @ralfbecher in #44
- chore: release 1.4.2 by @ralfbecher in #45
Full Changelog: v1.4.1...v1.4.2
v1.4.1
What's Changed
- fix: upload button rejected every format it accepts — release 1.4.1 by @ralfbecher in #40
Full Changelog: v1.4.0...v1.4.1
v1.4.0
What's Changed
- chore(deps): Bump pydantic-ai from 2.21.0 to 2.25.0 in the python-prod group by @dependabot[bot] in #38
- feat: file upload for OBSL models and ontologies — release 1.4.0 by @ralfbecher in #39
Full Changelog: v1.3.0...v1.4.0
v1.3.0
What's Changed
- feat: AI Act Art. 50(2) marking of generated content — release 1.3.0 by @ralfbecher in #37
Full Changelog: v1.2.0...v1.3.0
v1.2.0
What's Changed
- ci: automate GitHub Release creation on version tags by @ralfbecher in #30
- chore(deps): Bump the python-prod group with 2 updates by @dependabot[bot] in #32
- chore(deps): Bump the python-prod group with 2 updates by @dependabot[bot] in #33
- chore(deps): Bump the python-prod group with 2 updates by @dependabot[bot] in #34
- fix: sort app.py imports and lint the whole tree in CI by @ralfbecher in #35
- feat: AI Act Art. 50(1) disclosure — release 1.2.0 by @ralfbecher in #36
Full Changelog: v1.1.8...v1.2.0
v1.1.8 — Pydantic AI v2, Dependabot, CI hardening
First stable release since v1.1.5. Upgrade directly from v1.1.5 to v1.1.8 — v1.1.6 and v1.1.7 were tagged but shipped broken and are superseded by this release (details below).
Highlights
- Pydantic AI v2 migration. Moved from pydantic-ai 1.x to 2.10.
OpenAIModel→OpenAIChatModel, and the MCP layer now usesMCPToolsetover explicitStdioTransport/StreamableHttpTransport. MCPsampling.toolsadvertisement is preserved (pydantic-ai v2 still ships a bareSamplingCapability(), so it's re-enabled explicitly). - Dependency automation. Added Dependabot config covering the uv, GitHub Actions, and Docker ecosystems, plus the first batch of resulting updates (5 production dependency bumps, 8 GitHub Action major versions).
- CI hardening. Test matrix across Python 3.11–3.13, and a new smoke step that boots the app and fetches a static asset — catching runtime-only "server starts but can't serve the UI" failures that unit tests miss.
Fixes folded in
- MCP chat startup crash (regression from the v2 migration): the sampling wrapper referenced a pydantic-ai v1 attribute that
MCPToolsetdoesn't have, so any configured MCP server raisedAttributeErroron chat start. Sampling errors now render correctly too (v2 returnsErrorDatarather than raising). - Broken UI on Python 3.14: the 3.14 base image shipped an app whose static assets all returned HTTP 500 (
anyio.NoEventLoopError, an upstream chainlit issue). Reverted topython:3.13-slimand cappedrequires-pythonto<3.14.
Docker
docker pull ralforion/orionbelt-chat:1.1.8 # or :latest
Runs on Python 3.13.
Full changelog: v1.1.5...v1.1.8
v1.1.5 — Docker support and CI pipeline
Adds container support and a complete CI/CD pipeline for OrionBelt Chat.
Docker
- Ships a multi-platform Docker image with a Docker Hub publish workflow, so the app can run as a container without a local Python toolchain.
- Publishing is pinned to release tags only: each version pushes
:1.2.3,:1.2,:1, and:latest— the rollingmain/edgetags were dropped to keep the tag list clean. - The Docker Hub repository overview is kept in sync with
README.mdautomatically.
Continuous integration
- New CI workflow runs
ruff(lint + format check),mypy, andpyteston every push and pull request tomain.
Documentation
- Added Docker Hub badges (version, image size, pulls) to the README, pointed at the published
latestimage.
Compatibility: unchanged — OrionBelt Analytics & Semantic Layer MCP servers.
Full Changelog: v1.1.4...v1.1.5
v1.1.4
What's Changed
MCP Sampling
- Advertise the
sampling.toolssub-capability via a thinClientSessionsubclass; pydantic-ai's__aenter__picks up the patched class through module-attribute lookup, so MCP servers can now issuesampling/createMessagewith tool definitions instead of falling back to a manual review path - Route sampling requests to the env-configured default model (
DEFAULT_PROVIDER+ matching*_DEFAULT_MODEL); resolution failure (e.g. missing API key) silently disables sampling - New
MCP_ALLOW_SAMPLING=true|falseenv flag as a kill switch for cost/privacy reasons; when off, the patched session does not advertisesampling.toolsand pydantic-ai passes no callback
UX
- Welcome screen now shows
Sampling Model: <provider>/<model>(ordisabled) alongside Provider/Model and the connected MCP servers - Mark known sampling-using servers with
— uses samplingin the connected-servers list - Each server-initiated sampling exchange renders as a collapsible
Used Sampling: <server>step nested under the in-flight tool that triggered it (falling back to the run step if no tool is active); prompt and response are shown as wrapping markdown rather than a non-wrapping code block, truncated atSTEP_OUTPUT_LIMIT
Dependencies
- Bumped
pydantic-aifloor to>=1.89.0(latest at release time); patch confirmed compatible with 1.89.1's MCP__aenter__call site
Full Changelog: v1.1.3...v1.1.4
v1.1.3
What's Changed
Provider Error Handling
- Friendly user-facing message for
ModelHTTPError(e.g. OpenRouter 402, 429) and mid-streamopenai.APIError, with status-code-specific hints and the provider's own message - Retry button on the error reply that resubmits the original prompt against the unchanged history
- Single-line warning log on expected provider failures; full traceback retained for genuine bugs
OpenRouter Attribution
- Send
HTTP-RefererandX-Title: OrionBelt Chatheaders so the app appears on OpenRouter's activity dashboard and apps leaderboard
Branding & Startup
- Replace Chainlit default favicon with the OrionBelt mark (injected via
header.jsto override Chainlit's hardcoded<link rel=icon>) - Log
OrionBelt Chat v<version> starting upat process start, version pulled from package metadata
Repo
- Add
CLAUDE.md(project conventions for AI assistants) and ignore.claude/
Full Changelog: v1.1.2...v1.1.3