Skip to main content

Demiurge 0.6.1

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

Summary

This patch release hardens Agent Core revision safety, records local core edits as Git revisions, tightens runtime task completion handling, and cleans up TUI identity display and runtime tool naming. It also expands release validation coverage across Linux, macOS, and Windows.

The default public release remains notes/tag-only: wheel and sdist artifacts are not built or attached unless an artifact release is explicitly requested.

User-Visible Changes

  • Agent Core revisions are now tracked as Git revisions. Local edits in the runtime core are saved as revisions before the live core is loaded, and core tracking ignores Python cache files.
  • The TUI footer now uses stable identifiers and hides the active core revision to reduce churn in the status line.
  • Runtime task handling now consumes yielded task completions correctly and preserves yield timeout results as task status.
  • Removed the run_terminal alias from runtime tools in favor of the current tool surface.
  • Expanded release validation coverage in CI so the current release workflow exercises more cross-platform combinations.
  • Aligned documentation wording with the Git-revision model for core evolution and the current worktree-based workflow.

Fixes

  • Hardened agent core revision safety so edits are validated and rolled back when a revision would make the active core unloadable.
  • Ignored runtime Python cache files during core revision tracking.
  • Removed unstable core-revision chatter from the TUI footer display.
  • Kept yielded task completions and yield timeouts visible in runtime task state instead of dropping them.

Breaking Changes

  • The run_terminal alias is no longer available. Use the current runtime tool name instead.

Known Limitations

  • Code slots run in the host-shared Python environment by default.
  • Candidate Agent Core evolution cannot add dependencies automatically.
  • Old JSON / JSONL runtime state is not migrated into the SQLite runtime store.
  • In-progress subprocess work found after a restart must be treated as lost or interrupted; the host must not replay dangerous effects after a crash.
  • Telegram is still long-polling only.
  • Package repositories can be local, built-in, or explicitly trusted Git/path sources; install-time trust still belongs to the host.
  • Provider profile tests and real provider calls require explicit provider credentials and may make live network calls.
  • GitHub Releases do not attach wheel or sdist artifacts by default yet; use the source checkout or managed checkout install path for this alpha release.

Verification

  • 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