Skip to main content

Demiurge 0.3.2

Demiurge is alpha / developer-preview software. APIs, runtime layout, and authoring contracts may still change.

Summary

This release expands the local runtime surface with external gateway channels, provider setup profiles, streamed TUI output, and additional package-catalog recipes for style, context reseeding, and provider-backed text-to-speech.

User-Visible Changes

  • Added disabled-by-default gateway channel support for generic webhooks, Slack, Mattermost, Matrix, and email, alongside the existing Telegram gateway.
  • Added a demiurge gateway entrypoint for running enabled external channels through the host-owned channel gateway.
  • Added provider setup commands and presets for creating host provider profiles, writing API keys to .env, setting a core model, listing profile status, and running explicit provider tests.
  • Updated the default provider presets and model-writing behavior used by the setup flow.
  • The TUI now streams provider response deltas and reports provider/model status in the footer.
  • Added package recipes for conversation style hints, context reseed notes, and OpenAI, Gemini, and xAI text-to-speech output/tool integrations.
  • Added a debug command for inspecting assembled system prompts.
  • Added GitHub issue templates, a pull-request template, and contribution guidance for public project feedback.

Fixes

  • System prompt assembly now merges system prompt messages instead of dropping later context.
  • Telegram polling recovers from transient transport failures.
  • Provider setup normalizes profile identifiers and writes preset model choices consistently.
  • TUI stream delta timers are cancelled when stale so old deltas do not leak into later transcript state.

Breaking Changes

  • No intentional breaking changes are included in this release.
  • External channels remain declarative agent.yaml configuration owned by the host gateway; old experimental agent/channels slot directories are not auto-discovered.

Known Limitations

  • The package catalog is still local-only.
  • Code slots run in the host-shared Python environment by default.
  • External gateway channels are disabled by default and require explicit authentication-related environment variables or tokens.
  • Telegram is still long-polling only.
  • Candidate core evolution and automatic promotion are still incomplete.
  • Provider profile tests make live network calls only when explicitly invoked.

Verification

  • uv run pytest tests/cli/test_cli.py tests/channels tests/runtime/test_modular_io.py tests/packages/test_packages.py
  • uv run python -c 'import tomllib, demiurge; print(tomllib.load(open("pyproject.toml", "rb"))["project"]["version"]); print(demiurge.__version__)'
  • git diff --check -- pyproject.toml demiurge/__init__.py uv.lock docs/releases/0.3.2.md website/docusaurus.config.ts website/i18n/zh-CN/docusaurus-theme-classic/footer.json
  • rg -n "0\\.3\\.2|/docs/releases/0\\.3\\.2" pyproject.toml demiurge/__init__.py uv.lock docs/releases/0.3.2.md website/docusaurus.config.ts website/i18n/zh-CN/docusaurus-theme-classic/footer.json