Skip to main content

Demiurge 0.3.3

Demiurge is alpha / developer-preview software. APIs, runtime layout, and authoring contracts may still change.

Summary

This patch release removes provider-response streaming from the local TUI so all user-visible assistant output goes through output modules and the host IO delivery boundary.

User-Visible Changes

  • Removed direct provider token-delta rendering from the TUI.
  • TUI assistant output is now delivered only through output-module effects such as ctx.output.send_text(...), keeping custom text, artifact, audio, and notice modules on the same delivery path.
  • The TUI still reports the selected provider and model in the footer.

Fixes

  • Restored the IO-module boundary for local TUI output: provider responses are completed first, then serial and parallel output modules shape what the user sees.
  • Removed stale stream-delta state handling and provider stream adapters from the runtime and TUI frontend.

Breaking Changes

  • TUI provider-response streaming introduced in 0.3.2 is removed. Code that depended on LLMStreamEvent, provider stream(...) adapters, or interaction stream bridge events must use the normal complete-response and output-module delivery path instead.

Known Limitations

  • The package catalog is still local-only.
  • Code slots run in the host-shared Python environment by default.
  • External gateway channels are disabled by default and require explicit authentication-related environment variables or tokens.
  • Telegram is still long-polling only.
  • Candidate core evolution and automatic promotion are still incomplete.
  • Provider profile tests make live network calls only when explicitly invoked.

Verification

  • 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'