Repository navigation
Beta v0.7.0
What's Changed
π New Features
- Native Gemini and Ollama protocols (68d4933) β
geminiandollamasit beside DeepSeek, OpenAI, Responses, and Anthropic. Gemini usesx-goog-api-keyand generateContent SSE. Ollama uses/api/chatand can run without an API key - External tool timeouts (db31f73) β
timeoutSecondsstops a dotnet or exec call and kills its process tree.unlimiteddisables only that timer. stdout and stderr drain together, and only the model-visible prefix is kept - Write and edit outside the workspace (4462a60) β an absolute path is outside-workspace work and goes through approval. Edit and Full ask the operator. Review and Audit send it to the reviewer. Credential paths stay forbidden, including a symlink that leaves the workspace
- Headless
crystal run(4466ca7, cf665b5, aeb6df8, 61e9e6b) β one unattended turn. Overrides stay in that process, and slash commands are rejected. Exit codes are 0 through 5.--format jsonprints JSON Lines with the full tool output.--format defaultprints a shortened trace, with host markers kept apart from tool text - Host placeholders (979e088) β
{{os}},{{architecture}},{{time}},{{session_id}}, and{{approval}}bind into the system message,{{env}}, and the prompt template export - Image results from exec tools (ea886ae, af2d59b) β
"output": "content"reads one JSON object from stdout, with text and up to eight images. Gemini and Ollama attach those images on the tool result. A text-only model rejects them - Host context for dotnet tools (d4b2902) β
IHostToolandIHostMultimodalToolreceive the workspace, session id, and approval mode throughToolHostContext. Credentials and the home path are left out - Independent tool calls in one response (c68b540) β Work and Plan prompts tell the model to send every call it can already specify together, and to wait only when the next step depends on a result
- Separate approval model (60e76ee) β Review and Audit can use
approvalModelinconfig.json, with that provider's credentials./approval modelshows or sets it.crystal runcan override it for one process /effortas an alias for/thinking(09b22e4)/stats(5b3336c, 6715da3, 8871775, c1314de) β token totals, averages, median, and a per-tool share bar, includingall,<Nd>, andtools <count>. The page replaces the session frame. Esc,q, or Ctrl+C closes it and keeps the composer draft/btwside questions (3a4741d, b9823ad, bb2ce51) β/btwor/sideasks from the committed transcript plus the newest 20 side exchanges. The answer stays in a panel and is not saved. Until text arrives, the panel shows the progress spinner. Esc, Enter, or Space closes it. Left and Right step.xclears. Ctrl+C cancels only the side question- Reasoning kept in the session (bd16ed2) β reasoning text and provider state survive save, export, replay, and compaction. A provider error that survives retry closes the turn as failed and saves the transcript
- Front-end-neutral engine (2587a56) β session execution lives in
CrystalCode.Engine. The terminal host only draws. Built-inbashusesbashTimeoutSeconds, default 120 seconds.nullorunlimiteddisables that timer
π Fixes
- Windows x64 install without the runtime architecture API (3a2134d) β the installer reads
PROCESSOR_ARCHITEW6432, thenPROCESSOR_ARCHITECTURE, and treats AMD64 as supported - Wheel scroll stays distinct from arrow keys (3f7087f) β the alternate screen enables SGR mouse reporting, and the previous Windows console input mode is restored on exit
- Tabs and one size snapshot per frame (ab4e012) β tabs are four columns in the composer and painted rows, one column stays free for the cursor, and overlays reproject the composer from that same size
- Workspace path checks follow the real target (bd16ed2) β symbolic links resolve to their final target. Workspace-relative
.ssh,.gnupg, and.crystal/credentials.jsonstay forbidden for write, edit, glob, and grep. Prompt history is trimmed per workspace - Side-question panel after a pause (bb2ce51) β a tab no longer clips the panel border, the card lines up with the other cards, and an open
/btwpanel returns after an approval or question. A dismissed panel stays closed
β‘ Performance
- Live transcript cards reflow only the open tail (dce8a4a) β finished rows stay wrapped. Scrolling and typing reuse those rows
π Documentation
- A future Avalonia front end must use C# markup, with no XAML or AXAML files (d4d9821)
Full Changelog: B0.6.0...B0.7.0