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, providerstream(...)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.pyuv run pytest tests/runtime/test_modular_io.pycd ui-tui && npm run typecheckcd ui-tui && npm test -- --runcd ui-tui && npm run buildcmp ui-tui/dist/entry.js demiurge/ui/tui_dist/entry.jsuv 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'