Demiurge 0.7.0
Demiurge 是 alpha / developer-preview 软件。APIs、runtime layout 和
authored contracts 在 1.0 之前仍可能变化。
摘要
这个 minor release 新增 host-owned work 的 durable tracking,把 tool start/finish lifecycle events 投影到用户可见 channels,并允许 host file reads 在显式 approval 后读取 workspace 外部路径,同时继续把 writes 和 terminal execution 限定在 workspace 内。它也加强了 evolver guidance、core revision portability、 generated-artifact cleanup 和 TUI bundle consistency。
默认公开 release 仍是 notes/tag-only:除非明确要求 artifact release,否则不会构建 或附加 wheel / sdist artifacts。
用户可见变化
- 新增 durable work lifecycle tracking,用于 host-owned delivery sends、 scheduler fires 和 background completion notifications。Work items 存在 SQLite 中,并带有 claim、lease、terminal、acknowledgment 和 retry semantics, 让可恢复的 host work 能被一致地恢复或标记。
- 新增 tool start/finish lifecycle projection,覆盖 TUI gateway、text channels 和 Telegram。Tool cards 现在可以先显示 started work,再在 tool 完成后更新, 并为用户可见 cards 展示 terminal command 和 cwd metadata。
- 扩展
read_file和search_files,让 host-visible paths 在显式 approval 后可 解析 workspace 外部路径。File writes、patches 和 terminal cwd 仍限定在 workspace 内。 - 扩展 evolver guidance,覆盖 slot edits、pipeline placement、slot SDK usage、
capability boundaries,以及
base_input/base_outputguardrails。 - 更新 security 和 capability 文档,描述当前 wide-read / narrow-write boundary。
修复
- 在 evolve candidate worktrees 执行 changed-path calculation、proposal commits 和 gates 前清理 untracked generated artifacts。
- 让 core reference updates 和 home path expansion tests 在 Windows 上更 portable。
- 重新构建并同步 packaged Ink TUI bundle,使 Python package asset 与当前
ui-tuibuild output 保持一致。 - 放宽 async 和 Telegram approval waits,减少 timing-sensitive test failures。
破坏性变化
- 本次 release 没有 intentional breaking changes。
已知限制
- 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 --helpuv run python scripts/smoke_managed_install.py(cd ui-tui && npm ci && npm run typecheck && npm test && npm run build)node --check ui-tui/dist/entry.jsnode -e "const fs = require('fs'); const built = fs.readFileSync('ui-tui/dist/entry.js'); const packaged = fs.readFileSync('demiurge/ui/tui_dist/entry.js'); if (!built.equals(packaged)) process.exit(1);"(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\\.7\\.0|docs/releases/0\\.7\\.0" pyproject.toml demiurge/__init__.py uv.lock README.md README.zh-CN.md docs website