Skip to main content

Demiurge 0.5.0

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

Summary

This minor release moves Demiurge toward a SQLite-backed runtime control plane, settles the current Agent Slot manifest and package component model, improves Windows compatibility, and refreshes the public manual around Agent Slots, packages, memory, speech, web search, and release operations.

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

  • Added a host-owned runtime control-plane path for sessions, turns, messages, tasks, scheduler instances, delivery outbox rows, artifacts, task logs, and completion events.
  • Added SQLite runtime storage at ~/.demiurge/runtime/runtime.sqlite3 for the current runtime projections and events.
  • Reworked Agent Slot loading around per-slot slot.yaml manifests and a single agent/pipelines.yaml phase graph.
  • Reworked package recipes around installable components, pipeline placement, config overlays, and explicit component manifests such as slot.yaml and tool.yaml.
  • Added package support for MCP and schedule manifest components.
  • Added the Honcho memory package and expanded built-in package documentation for memory, speech-to-text, text-to-speech, and web search packages.
  • Added README and website demo media for the Basic Memory System package.
  • Rebuilt the open-source manual, contributor docs, security policy, release guide, and zh-CN website manual pages around the current authored-surface and package contracts.
  • Updated README and homepage copy to position Agent Slots as the primary extension and logic-design model.

Fixes

  • Improved Windows runtime compatibility, including terminal compatibility shims, Windows entrypoint coverage, scheduler file locking, package path handling, and STT transcription path handling.
  • Removed legacy runner-owned background job state from the active runtime path in favor of control-plane task projections.
  • Standardized text-to-speech package tool names across package recipes, package docs, and tests.
  • Kept package, CLI, docs, website, and release surfaces aligned with the current alpha release policy.

Breaking Changes

  • Runtime session, scheduler, task, delivery, and artifact state now uses the control-plane / SQLite implementation as the source of truth. Older JSON and JSONL runtime files may remain on disk but are not migrated or dual-written by this release.
  • Package recipes no longer accept removed top-level fields such as slots, tools, files, config_defaults, and package-level metadata. Recipes must use components.
  • Agent Slot ordering is defined by agent/pipelines.yaml; slot metadata stays in each slot directory's slot.yaml.
  • Legacy slot manifest aliases such as run and failure are rejected; use entrypoint and failure_policy.

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

  • uv run python -m compileall demiurge tests
  • uv run pytest -vv --durations=20 -o faulthandler_timeout=60
  • uv run demiurge --help
  • uv run demiurge init --help
  • (cd ui-tui && npm ci && npm run typecheck && npm test -- --run && npm run build)
  • cmp ui-tui/dist/entry.js demiurge/ui/tui_dist/entry.js
  • (cd website && npm ci && npm run build)
  • git diff --check -- ':!demiurge/ui/tui_dist/entry.js'
  • uv run python -c 'import tomllib, demiurge; print(tomllib.load(open("pyproject.toml", "rb"))["project"]["version"]); print(demiurge.__version__)'
  • rg -n "0\\.5\\.0|docs/releases/0\\.5\\.0" pyproject.toml demiurge/__init__.py uv.lock README.md README.zh-CN.md docs website