跳到主要内容

Demiurge 0.5.0

Demiurge 是 alpha / developer-preview 软件。APIs、runtime layout 和 authoring contracts 在 1.0 之前仍可能变化。

摘要

这个 minor release 将 Demiurge 推向 SQLite-backed runtime control plane, 稳定当前 Agent Slot manifest 与 package component model,改进 Windows 兼容性,并围绕 Agent Slots、packages、memory、speech、web search 和 release 流程刷新 public manual。

默认公开 release 仍是 notes/tag-only:除非明确要求 artifact release,否则不会构建 或附加 wheel / sdist artifacts。

用户可见变化

  • 新增 host-owned runtime control-plane 路径,用于 sessions、turns、 messages、tasks、scheduler instances、delivery outbox rows、artifacts、 task logs 和 completion events。
  • 新增 SQLite runtime storage:~/.demiurge/runtime/runtime.sqlite3,用于当前 runtime projections 和 events。
  • Agent Slot loading 调整为每个 slot 自带 slot.yaml manifest,并由单一 agent/pipelines.yaml phase graph 排序。
  • Package recipes 调整为基于 installable components、pipeline placement、 config overlays,以及 slot.yaml / tool.yaml 等显式 component manifests。
  • Package system 支持 MCP 和 schedule manifest components。
  • 新增 Honcho memory package,并扩展 memory、speech-to-text、 text-to-speech、web search built-in package 文档。
  • README 和 website 新增 Basic Memory System package demo media。
  • 围绕当前 authored-surface 与 package contracts 重建 open-source manual、 contributor docs、security policy、release guide 和 zh-CN website manual pages。
  • 更新 README 和 homepage 文案,将 Agent Slots 定位为主要 extension 和 logic-design model。

修复

  • 改进 Windows runtime compatibility,包括 terminal compatibility shims、 Windows entrypoint coverage、scheduler file locking、package path handling 和 STT transcription path handling。
  • 从当前 runtime path 移除 legacy runner-owned background job state,改用 control-plane task projections。
  • 统一 text-to-speech package tool names,使 package recipes、package docs 和 tests 保持一致。
  • 让 package、CLI、docs、website 和 release surfaces 与当前 alpha release policy 保持一致。

破坏性变化

  • Runtime session、scheduler、task、delivery 和 artifact state 现在以 control-plane / SQLite implementation 为 source of truth。旧 JSON / JSONL runtime files 可能仍留在磁盘上,但这个 release 不会迁移或双写它们。
  • Package recipes 不再接受 slotstoolsfilesconfig_defaults 和 package-level metadata 等已移除 top-level fields。Recipes 必须使用 components
  • Agent Slot ordering 由 agent/pipelines.yaml 定义;slot metadata 保持在每个 slot 目录自己的 slot.yaml 中。
  • Legacy slot manifest aliases,例如 runfailure,会被拒绝;请使用 entrypointfailure_policy

已知限制

  • Code slots 默认运行在 host-shared Python environment 中。
  • Candidate Agent Core evolution 不能自动添加 dependencies。
  • 旧 JSON / JSONL runtime state 不会迁移进 SQLite runtime store。
  • Host 重启后发现的 in-progress subprocess work 必须视为 lost 或 interrupted; host 不应在 crash 后重放 dangerous effects。
  • Telegram 仍然只支持 long-polling。
  • Package repositories 可以是 local、built-in,或显式 trusted Git/path sources; install-time trust 仍归 host 管理。
  • Provider profile tests 和真实 provider calls 需要显式 provider credentials, 并可能发起 live network calls。
  • GitHub Releases 默认仍不会附加 wheel 或 sdist artifacts;这个 alpha release 请使用 source checkout 或 managed checkout install path。

验证

  • 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