Demiurge 0.6.0
Demiurge is alpha / developer-preview software. APIs, runtime layout, and authoring contracts may still change.
Summary
This minor release expands built-in skill management tools, adds package author documentation, restores TUI transcript history when resuming sessions, and fixes several runtime, scheduler, and cross-platform TUI issues.
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
- Expanded
skill_managebeyond fullSKILL.mdcreate, update, and delete operations. It now supportspatch,write_file, andremove_filefor packaged skill support files underreferences/,templates/,scripts/, andassets/. - Added host-side safety checks for skill file writes, including configured skills-root resolution, hidden path rejection, parent traversal rejection, symlink escape protection, core reload validation, and rollback when a skill edit would make the active core unloadable.
- Added user-facing documentation for writing package recipes and publishing package repositories, with matching zh-CN website pages.
- Restored TUI transcript history when initializing with an existing session, creating a new session, or resuming a previous session. Tool history is shown as summary or full tool cards according to the configured TUI tool-display mode.
- Updated package author navigation so the manual points directly at recipe authoring, repository publishing, and the package recipe reference.
Fixes
- Scoped
task_listto the current session so one session cannot list another session's controllable background tasks through the built-in tool schema. - Changed the TUI build command to a Node script so the esbuild banner works reliably across shells and platforms.
- Closed SQLite runtime-store connections promptly after runtime operations.
- Avoided duplicate user-visible scheduler run logs for completed and failed scheduled runs.
- Updated scheduler test fixtures to use the current
agent/pipelines.yamllayout.
Breaking Changes
task_listno longer acceptsowner_session_id. It always lists tasks owned by the active session.
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 testsuv run pytest -vv --durations=20 -o faulthandler_timeout=60uv run demiurge --helpuv run demiurge init --help(cd ui-tui && npm ci && npm run typecheck && npm test -- --run && npm run build)cmp ui-tui/dist/entry.js demiurge/ui/tui_dist/entry.js(cd website && npm ci && 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\\.0|docs/releases/0\\.6\\.0" pyproject.toml demiurge/__init__.py uv.lock README.md README.zh-CN.md docs website