Skip to content

v0.58.2

Choose a tag to compare

@prasenjeet-symon prasenjeet-symon released this 03 Nov 12:48
· 2 commits to main since this release

Release Notes — v0.58.2

Minor: A year of work, on the home page

The home screen now opens on a heatmap of this workspace's activity: one cell per
calendar day over the last year, shaded by how much the day carried, backed by a new
per-day activity endpoint that joins the project's own session records to the spend
ledger. Both sides are scoped to the workspace, task worktrees included, so the series
describes this project and not every session on the machine. A day that has token
spend but no surviving session row still shows its tokens.

Minor: A call that cannot do the job says so, instead of reporting a result it did not get

Several tools answered a malformed or incomplete call with something that read like a
real answer. A write whose content field the model dropped decoded to an empty
string and truncated the target file: an absent field is refused now, while an
explicit "" still writes an empty file. A bash call with an explicit timeout: 0
expired its own context before the command started, reporting an instant timeout for
work that never ran: zero or negative means no deadline, and an omitted timeout keeps
the documented 120 seconds. A glob pattern the matcher could not understand came back
"No files found", and a grep whose scan stopped at a long line reported only the
matches it happened to reach; both are errors now. latex_to_pdf resolves its output
name against the session directory before compiling, refusing an absolute path or one
that climbs out with ../, and looks for pdflatex on each call so an install
mid-session is seen rather than cached away. query_sheet accepts the sibling index
tools' path spelling beside its own file, and its write guard reads past string
literals, so a WHERE name = 'DELETE' is a plain read.

Patch: Tool schemas state what the call actually needs

The browser, teammate and task schemas now declare their requirements instead of
leaving them to prose: browser_navigate requires a url, browser_click takes a
ref or a selector, browser_key a key, and teammate states per operation what
it needs, so a call carrying only a prompt is a spawn. task's description is
optional, a second name for the same document is accepted where the sibling index
tools disagree on spelling, and an ask_user batch that repeats a question id is
refused, since answers are keyed by id and the later screen would have overwritten the
earlier one. The paragraph about commands that change files now reaches the agents
that hold the shell without holding an editor.

Patch: Every dialog is one frame, and the corner radius is one system

The dialog frame the project index dialogs introduced now backs every modal in the
app, with one header, one scrolling body, one footer bar carrying the hint on the left
and the actions on the right, one focus trap, and one Escape contract. A dialog that
must not be dismissed, like ask_user, omits its close handler and gets no close
button; phones render the same frame as a bottom sheet. The corner radius is now a
five-step token ladder in the root stylesheet, so every rounded corner in the interface
moves with one edit, while pills, circles and SVG corners keep the shapes they have by
design.