跳到主要内容

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_filesearch_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_output guardrails。
  • 更新 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-tui build 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 tests
  • uv run pytest -vv --durations=20 -o faulthandler_timeout=60
  • uv run demiurge --help
  • uv run demiurge init --help
  • uv 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.js
  • node -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