Skip to main content

Demiurge 0.8.0

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

Summary

This minor release redesigns the host runtime harness and operator gateway, adds structured child-agent controls for authored slots, introduces runtime provider profiles, and ships the built-in self_learning_skills package. It also improves channel/session routing, Telegram approval callbacks, provider configuration docs, and cross-platform release validation.

The default public release remains notes/tag-only: wheel and sdist artifacts are not built or attached unless an artifact release is explicitly requested.

User-Visible Changes

  • Split the runtime runner into focused host-owned modules for turn pipelines, approvals, ingress, delivery, session routing, prompt context, history display, and operator-gateway dispatch. This keeps authored slot code behind the ctx SDK while the host owns provider calls, delivery, approvals, and session state.
  • Added child-agent controls for authored slots. Slots can run constrained child agents with selected input slots, output slots, tools, and bootstrap context, and can choose the child tool surface explicitly.
  • Added runtime provider profiles with built-in OpenAI-compatible and Anthropic Messages transports. Setup can create, inspect, test, edit, and select provider profiles while keeping provider secrets in host-owned config.
  • Added the built-in self_learning_skills package. It periodically reviews recent turns with a constrained same-core child agent and can update the active core's skills through the normal skill_manage approval path.
  • Expanded the Slot Context SDK and delivery/history reference for input and output delivery helpers, transient progress/notice sends, artifact handling, child-agent access, session state, and result writing.
  • Routed live delivery by session and rebound channel conversations when a new session starts, so gateway and Telegram deliveries target the correct active conversation.
  • Added a Python CI profile runner and sharded Windows release validation to make long release gates easier to run and diagnose.

Fixes

  • Stabilized Telegram approval callbacks by preserving callback context across approval prompts.
  • Updated the TUI runtime fake and packaged bundle for route-binding changes.
  • Tightened provider setup and CLI behavior around built-in provider overrides, custom provider modes, and provider test commands.
  • Refined evolver guidance so slot edits target the documented ctx SDK and stay within authored-surface boundaries.

Breaking Changes

  • The host runtime internals were reorganized substantially. Code that imports internal runtime modules directly may need to move to the documented CLI, package, slot, tool, or ctx surfaces.

Known Limitations

  • Code slots run in the host-shared Python environment by default.
  • Candidate Agent Core evolution cannot add dependencies automatically.
  • Old JSON / JSONL runtime state is not migrated into the SQLite runtime store.
  • In-progress subprocess work found after a restart must be treated as lost or interrupted; the host must not replay dangerous effects after a crash.
  • Telegram is still long-polling only.
  • Package repositories can be local, built-in, or explicitly trusted Git/path sources; install-time trust still belongs to the host.
  • Provider profile tests and real provider calls require explicit provider credentials and may make live network calls.
  • GitHub Releases do not attach wheel or sdist artifacts by default yet; use the source checkout or managed checkout install path for this alpha release.

Verification

  • git status --short
  • uv run python -c 'import tomllib, demiurge; print(tomllib.load(open("pyproject.toml", "rb"))["project"]["version"]); print(demiurge.__version__)'
  • rg -n "0\\.8\\.0|docs/releases/0\\.8\\.0" pyproject.toml demiurge/__init__.py uv.lock README.md README.zh-CN.md docs website
  • (cd website && npm run build)
  • git diff --check -- README.md README.zh-CN.md docs website pyproject.toml demiurge/__init__.py uv.lock