跳到主要内容

Demiurge 0.6.1

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

摘要

这个 patch release 加强了 Agent Core revision safety,记录本地 core edit 作为 Git revisions,收紧 runtime task completion 处理,并整理 TUI 的身份 展示与 runtime tool 命名。同时也扩大了 release validation 在 Linux、macOS 和 Windows 上的覆盖面。

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

用户可见变化

  • Agent Core revisions 现在按 Git revisions 追踪。runtime core 中的本地编辑会在 live core 加载前保存为 revisions,core tracking 也会忽略 Python cache files。
  • TUI footer 现在使用稳定 identifiers,并隐藏当前 core revision,以减少状态行 抖动。
  • Runtime task 处理现在会正确消费 yielded task completions,并把 yield timeout 结果保留为 task status。
  • 从 runtime tools 中移除了 run_terminal alias,改用当前的 tool surface。
  • 扩大了 CI 中的 release validation coverage,让当前 release workflow 覆盖更多 cross-platform combinations。
  • 文档措辞已与 Git-revision 的 core evolution 模型和当前 worktree-based workflow 对齐。

修复

  • 加强了 agent core revision safety,确保当某个 revision 会让 active core 变得 unloadable 时,会先验证并回滚该编辑。
  • 在 core revision tracking 中忽略 runtime Python cache files。
  • 移除了 TUI footer 中不稳定的 core revision chatter。
  • 让 yielded task completions 和 yield timeouts 保持在 runtime task state 中,而不 是直接丢弃。

破坏性变化

  • run_terminal alias 不再可用。请改用当前的 runtime tool 名称。

已知限制

  • 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 run typecheck && npm test -- --run && npm run build)
  • cmp ui-tui/dist/entry.js demiurge/ui/tui_dist/entry.js
  • (cd website && 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\\.6\\.1|docs/releases/0\\.6\\.1" pyproject.toml demiurge/__init__.py uv.lock README.md README.zh-CN.md docs website