跳到主要内容

Demiurge 0.3.3

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

概述

这个补丁版本移除了本地 TUI 中的 provider-response streaming,因此所有用户可见的 assistant output 都会通过 output modules 和 host IO delivery boundary 传递。

用户可见变化

  • 移除了 TUI 中直接渲染 provider token-delta 的能力。
  • TUI assistant output 现在只会通过 output-module effects 交付,例如 ctx.output.send_text(...),从而让自定义文本、artifact、audio 和 notice modules 走同一条 delivery path。
  • TUI 仍会在 footer 中报告所选 provider 和 model。

修复

  • 恢复了本地 TUI output 的 IO-module boundary:先完成 provider responses,再由 serial 和 parallel output modules 决定用户最终看到什么。
  • 移除了运行时和 TUI 前端中陈旧的 stream-delta state handling 以及 provider stream adapters。

破坏性变更

  • 0.3.2 中引入的 TUI provider-response streaming 已被移除。依赖 LLMStreamEvent、 provider stream(...) adapters 或 interaction stream bridge events 的代码,必须改用 normal complete-response 和 output-module delivery path。

已知限制

  • package catalog 仍然是 local-only。
  • code slots 默认运行在 host-shared Python environment 中。
  • external gateway channels 默认禁用,需要显式的认证相关环境变量或 token。
  • Telegram 仍然只是 long-polling。
  • candidate core evolution 和 automatic promotion 仍未完成。
  • Provider profile tests 只有在显式调用时才会进行 live network calls。

验证

  • uv run pytest tests/channels/test_ui_gateway.py tests/runtime/test_harness.py tests/app/test_provider_config.py
  • uv run pytest tests/runtime/test_modular_io.py
  • cd ui-tui && npm run typecheck
  • cd ui-tui && npm test -- --run
  • cd ui-tui && npm run build
  • cmp ui-tui/dist/entry.js 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__)'
  • git diff --check -- ':!demiurge/ui/tui_dist/entry.js'