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.yamlmanifest,并由单一agent/pipelines.yamlphase 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 不再接受
slots、tools、files、config_defaults和 package-levelmetadata等已移除 top-level fields。Recipes 必须使用components。 - Agent Slot ordering 由
agent/pipelines.yaml定义;slot metadata 保持在每个 slot 目录自己的slot.yaml中。 - Legacy slot manifest aliases,例如
run和failure,会被拒绝;请使用entrypoint和failure_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 testsuv run pytest -vv --durations=20 -o faulthandler_timeout=60uv run demiurge --helpuv 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