You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
[0.5.0] — 2026-09-05
Added
An app page can be pure Python.druks.ui adds pages, blocks, values, fields,
forms, and operation-backed actions: an app writes @page functions and the shell
renders them with no frontend build. Blocks cover text, markdown, cards, tables,
lists, facts, metrics, charts, image galleries, timelines, progress, transcripts,
files, and run controls; fields cover text, number, select, multi-select, radio,
checkbox, file, multi-file upload, and secret. A page or section can follow a
subject, or a whole subject type, and the shell replaces just that region when a
snapshot arrives, so scroll, focus, and half-filled inputs survive. GateControls
reads and answers a parked run's gate from inside the page. A scaffolded app now
gets a Python landing page and navigation entry by default; a JavaScript frontend
stays available as the escape hatch for an app that needs full control of its
screen. The full contract is documented at docs/druks-ui.md.
A provider can be connected with an API key, not only a subscription. Pasting a
key creates the provider and its model catalog on the spot; the Models.dev
directory is read on demand and cached for a day, only to populate the "add
provider" search box, not stored and refreshed on a cron for every listed vendor. A
key is the installation's credential, one per provider, held separately from a
person's OAuth subscription — an installation can hold both, and each shows its own
quota, spend, and Replace/Remove or Reconnect controls.
Two more coding agents: OpenCode and Pi. Both ship in the sandbox image
alongside Claude and Codex, connect through the same API-key or subscription flow,
and get their own per-harness command, first-byte timing window, and doctor probe.
An exe deployment can pull its own sandbox image. The exe image registry,
username, and password are configurable settings, and a sandbox template's label
now reads as <app>-<script> instead of a raw file path.
Changed
A provider owns its login, quota, and catalog; a harness only runs on top of
one. Settings gains a Providers pane: connect Anthropic or OpenAI with a
subscription or an API key, and every model id is namespaced as provider/model.
An agent now resolves to a harness, a model, and a billing choice in one place: the
Agents page lists every agent as it resolves, with an override mark and a lock on a
billing cell a key-only harness fixes. The separate Harnesses pane is gone; its
settings moved to the Agents page's defaults and the per-app override cells.
Fixed
An expired login keeps its account email and past expiry on screen and offers
Reconnect, instead of looking exactly like one that was never connected.
An agent call retries once on an invalid response from the harness, instead of
failing the run outright.
software_factory's triage step reads the reviewer's own words instead of a stale
summary, and each build step gets only the input it needs instead of the whole
conversation.