Skip to content

Claurst v0.1.7

Latest

Choose a tag to compare

@github-actions github-actions released this 06 Jul 23:38

🩹 Patches

  • chore(release): patch v0.1.7 β€” post-release fixes + model-adaptive effort selector (0f5d970)

πŸ›  Direct commits

Work pushed to main outside of pull requests in this release:

  • chore(release): stamp v0.1.7 [skip ci] (21c1e6b)
  • chore(release): v0.1.7 β€” deep-scan hardening pass + ultracode (a6a092e)
  • docs: document ultracode mode (keyword + /ultracode skill) (41e3fc8)
  • feat(query): activate ultracode mode per-turn from the submitted prompt (bd2649a)
  • feat(tui): render the ultracode keyword with a purple gradient (592c1a7)
  • feat(tools): add bundled ultracode skill + keyword/addendum helpers (2f013f7)
  • chore(clippy): clear remaining lints by hand + targeted allows (3885289)
  • chore(clippy): apply reviewed clippy --fix autofixes (0b270d6)
  • feat(install): default install dir to XDG bin location (029d677)
  • refactor(tui): route home-based paths through config_dir (2a700ac)
  • refactor(commands): route home-based paths through config_dir (97aefd3)
  • refactor(tools): route home-based paths through config_dir (a907cbd)
  • refactor(plugins): route user plugins dir through config_dir (b3c6a4e)
  • refactor(query): route home-based paths through config_dir (ea615d6)
  • refactor(mcp): route mcp-tokens dir through config_dir (1e5a8d9)
  • refactor(core): route home-based paths through config_dir (3a69778)
  • feat(core): canonical CLAURST_HOME/XDG resolver in config_dir (dbe2407)
  • refactor: drop unused glob imports in extracted modules (3203825)
  • refactor(query): extract single-shot query into runner/single.rs (41e0bbe)
  • refactor(query): extract post-sampling hooks into runner/hooks.rs (e4c9ed6)
  • refactor(query): extract stream event mapping into runner/stream.rs (b28e9d4)
  • refactor(query): extract system-prompt assembly into runner/prompt.rs (07abd0b)
  • refactor(query): extract tool execution helpers into runner/tools.rs (e01c2b6)
  • refactor(query): extract tool-result budgeting into runner/tool_budget.rs (e1d8c48)
  • refactor(query): extract provider-option helpers into runner/provider_options.rs (ee6c898)
  • refactor(commands): extract assorted commands into extras.rs (1da4e2c)
  • refactor(commands): extract usage-reporting commands into usage.rs (2c87d6b)
  • refactor(commands): extract provider/agent commands into providers.rs (38ddcb3)
  • refactor(commands): extract diagnostic commands into diagnostics.rs (d3e9a94)
  • refactor(commands): extract setup/review commands into setup.rs (7313868)
  • refactor(commands): extract maintenance commands into maintenance.rs (de804c1)
  • refactor(commands): extract /context and /vim commands into display.rs (d50b6cc)
  • refactor(commands): extract session/output tool commands into session_tools.rs (e5bab69)
  • refactor(commands): extract /search command into search.rs (1d151a0)
  • refactor(commands): extract think-back commands into thinkback.rs (9f53d1f)
  • refactor(commands): extract /ultrareview command into ultrareview.rs (2c5a86f)
  • refactor(commands): extract /sandbox-toggle command into sandbox.rs (86b7c28)
  • refactor(commands): extract undo/revert/checkpoint commands into history.rs (4df1dfd)
  • refactor(commands): extract remote-control commands into remote.rs (70349e1)
  • refactor(commands): extract session-control commands into session.rs (fe85848)
  • refactor(commands): extract /permissions command into permissions.rs (61131c4)
  • refactor(commands): extract /memory command into memory.rs (f79e465)
  • refactor(commands): extract appearance commands into appearance.rs (bc54536)
  • refactor(commands): extract shared UI settings helpers into ui_settings.rs (da5e1fa)
  • refactor(commands): extract /managed-agents command into managed_agents.rs (0c8b229)
  • refactor(commands): extract /teleport command into teleport.rs (d367a3e)
  • refactor(commands): extract /chrome command into chrome.rs (1016cd7)
  • refactor(commands): extract /copy command into copy.rs (04fb8df)
  • refactor(commands): extract /share and /links commands into share.rs (4caffdf)
  • refactor(commands): extract /export command into export.rs (4b6dcbf)
  • refactor(commands): extract /mcp command into mcp.rs (67700a4)
  • refactor(commands): extract /review command into review.rs (0dddafe)
  • refactor(commands): extract account/auth commands into accounts.rs (40d6dfe)
  • refactor(commands): extract /doctor command into doctor.rs (238483d)
  • refactor(commands): extract plugin commands into plugin.rs (1ba6fe8)
  • refactor(commands): extract /config command into config_cmd.rs (66e2ca0)
  • refactor(commands): extract speech-mode commands into speech.rs (209cda5)
  • refactor(commands): extract /goal command into goal.rs (bdd4edc)
  • test(query): cover the four compaction upgrades (84bac09)
  • feat(query): carry a files-touched manifest across compactions (4c92857)
  • feat(query): iterative UPDATE summary prompt for compaction (dc81535)
  • feat(query): trigger compaction from real provider usage tokens (082866e)
  • feat(query): token-budget keep for compaction tail (b755773)
  • test(query): cover in-loop continuation policy and max-steps degradation (be5a23d)
  • feat(query): graceful max-steps degradation with tool-less summary turn (800506e)
  • refactor(cli): drive /goal continuation in-loop, drop post-loop re-dispatch (49427de)
  • feat(query): add goal continuation policy decided in-loop (ecffc55)
  • refactor(query): add in-loop continuation-policy abstraction + default stop policy (0fcc4d4)
  • feat(tools): make ToolSearch a real tool-discovery aid (aa94601)
  • feat(query): thread session tool set into system-prompt assembly (833eda0)
  • feat(core): make per-tool guideline blocks conditional on enabled tool set (a000cfa)
  • test(query): cover sanitize_history invariants and producer scenarios (8e520e2)
  • feat(query): sanitize history at the request boundary in run_query_loop (aff267a)
  • feat(query): add sanitize_history invariant pass for tool_use/tool_result pairing (792a6e7)
  • test(query): cover cancel-aware executor and sub-agent child token (be52762)
  • fix(query): give sub-agents a child cancel token (9d03bd3)
  • fix(query): make parallel tool executor cancel-aware (f148ce9)
  • fix(tools): add cancel_token to ToolContext, rebind in query loop (63bedbc)
  • feat(core): add session-tree leaf pointer + active-branch reconstruction (88fda12)
  • feat(install): verify SHA256 checksum in install.ps1 before extract (de23c5c)
  • feat(install): verify SHA256 checksum in install.sh before extract (ff0d258)
  • feat(release): publish SHA256SUMS covering all release archives (33949d7)
  • refactor(tools): delete dead BashTool, cover #184/#220 in pty_bash (4c22204)
  • fix(tools): kill PTY/background shell child on drop or cancel (f090c4b)
  • fix(tools): kill PTY shell child on timeout instead of orphaning it (d6f5cb9)
  • test(core): cover background task cancel-token signalling (39369b0)
  • fix(query): register background sub-agent cancel token so cancel stops it (fba0790)
  • fix(core): store and signal a cancel token in TaskRegistry (f309450)
  • fix(tui): clamp scroll_offset to last-rendered max_scroll (48fc655)
  • fix(tui): evict stored paste bodies when the prompt buffer is cleared (67ab20d)
  • feat(tools): bound SearXNG request with a timeout; document search backends (1054566)
  • add SearXNG backend before Brave fallback (59a3300)
  • test(query): cover resolve_context_window registry/heuristic/placeholder (1c4202f)
  • fix(query): add resolve_context_window (registry-first, heuristic fallback) (f09a6ad)
  • test(tui): verify streaming prefix reuse and no ghosting (0a65a9f)
  • perf(tui): reuse completed-message cache during streaming (0cb6c54)
  • refactor(tui): extract range-based transcript item builder (c73a69d)
  • perf(tui): build RenderContext once and borrow tool_names/expanded_thinking (0cb953d)
  • test(query): cover parse_tool_args valid/empty/truncated cases (1b0fcdf)
  • fix(query): error instead of {} on unparseable tool-call args (b7d6d11)
  • fix(query): don't execute tools from a failed provider stream (7021f60)
  • test(query): assert compaction preserves messages on failure (afbac8d)
  • fix(query): preserve messages across failed compaction (1d97b8b)
  • test(api): verify StreamBlockAccumulator keeps thinking/signature & block order (77d1f93)
  • fix(api): apply the same block-order/thinking-delta fix to MiniMax aggregator (8c16247)
  • fix(api): capture thinking/signature deltas & preserve block order in Anthropic aggregator (26a55f7)
  • fix(tui): char-safe legacy history-search truncation (548e355)
  • fix(tui): char-safe search highlight and rewind preview truncation (ca51895)
  • fix(tui): truncate_user_prompt_text on char boundaries (f2a79fa)
  • fix(tui): normalize CRLF on paste; walk prompt cursor to char boundary (ca5b6a1)
  • fix(api): parse Bedrock event-stream binary framing instead of brace-scanning (fe218d5)
  • fix(tools): keep dead bash.rs env plumbing consistent with pty_bash (2ceec43)
  • fix(security): pass restored shell env via child env map, not bash -c argv (87d170c)
  • fix(tui): make slash commands runnable on Windows / non-kitty terminals (94275c7)
  • chore: revert accidental workspace sweep (9a19562)
  • test(tui): escape Windows read path JSON (f2871c1)
  • Initial plan (ffab1cc)
  • Revert premature v0.1.7 version stamp (287a73e)
  • chore(release): v0.1.7 (3374a60)
  • fix(tools): stop bash tool hanging on detached child processes (b59f2b7)
  • fix(tui): ASCII tool markers + clear-on-scroll to fix alignment & ghosting (521cdca)
  • feat(tui): opencode-style tool/todo/command rendering (2ecbbde)
  • fix(tui): stop transcript rows ghosting old text when scrolling (cebbc33)

What's Changed

Other Changes

  • fix(tools): stop bash tool hanging on detached child processes by @Ijtihed in #189
  • Fix windows-latest TUI test failure from unescaped read-path JSON by @Kuberwastaken with @Copilot in #190
  • fix(tui): make slash commands runnable on Windows / non-kitty terminals by @Kuberwastaken in #191
  • test: make HOME/filesystem-dependent tests hermetic for sandboxed builds by @Kuberwastaken in #198
  • fix(providers): recognize alibaba/DashScope provider id by @Kuberwastaken in #193
  • fix(ollama): honor configured base URL for remote servers by @Kuberwastaken in #192
  • fix(tui): improve shortcut handling on non-English keyboard layouts by @Kuberwastaken in #196
  • feat(api): configurable request timeout + bounded stream idle timeout by @Kuberwastaken in #197
  • feat(tui): make mouse capture toggleable (restore native selection) by @Kuberwastaken in #195
  • fix(models): catalog as single source + projection picker (opencode-style); surfaces Opus 4.8 by @Kuberwastaken in #200
  • fix(security): require approval before launching project-level MCP servers by @Kuberwastaken in #199
  • fix(cli): honor --bare (disable hooks, plugins, AGENTS.md) by @Kuberwastaken in #235
  • fix(security): gate REPL and CronCreate tools behind permission checks by @Kuberwastaken in #236
  • fix(security): pass restored shell env via child env, not bash -c argv by @Kuberwastaken in #237
  • fix(api): parse Bedrock event-stream binary framing (streaming was broken) by @Kuberwastaken in #238
  • fix(tui): char-boundary/UTF-8 panics that crash the TUI by @Kuberwastaken in #239
  • fix(security): lock OAuth tokens, credential store & session files to 0o600 by @Kuberwastaken in #240
  • fix(api): capture thinking/signature deltas & preserve block order in non-streaming aggregator by @Kuberwastaken in #241
  • fix(query): preserve conversation across failed compaction (was mem::take-wiped) by @Kuberwastaken in #242
  • fix(query): don't execute tools from a failed provider stream; error on malformed tool args by @Kuberwastaken in #243
  • perf(tui): reuse completed-message cache during streaming (was O(messages^2) re-render) by @Kuberwastaken in #244
  • fix(tools): preserve line endings on edit (was silent CRLF->LF rewrite) by @Kuberwastaken in #245
  • fix(query): size compaction from the model's real context window (not a Claude-only heuristic) by @Kuberwastaken in #246
  • fix(tools): route apply_patch/batch_edit/notebook_edit/cron writes through write_atomic by @Kuberwastaken in #247
  • add self-hosted SearXNG web search backend by @TheChuckster in #167
  • fix(tui): bound memory growth (evict paste bodies, clamp scroll_offset) by @Kuberwastaken in #248
  • fix: make background-agent cancel actually stop the task (not just relabel it) by @Kuberwastaken in #249
  • fix(tools): harden the live PTY shell (kill on timeout/drop, #184 non-hang); delete dead BashTool by @Kuberwastaken in #250
  • feat(release): publish SHA256SUMS and verify downloads in install.sh / install.ps1 by @Kuberwastaken in #251
  • feat(tui): Shift+Enter inserts a newline; Enter submits by @Kuberwastaken in #252
  • fix(security): central permission backstop in execute_tool; gate worktree post_create_command by @Kuberwastaken in #253
  • feat(core): session tree β€” non-destructive /revert via leaf pointer + branch reconstruction by @Kuberwastaken in #254
  • fix(query): make in-flight tools & sub-agents cancellable (cancellation tree) by @Kuberwastaken in #255
  • refactor(api): shared SSE byte-decoder (fixes UTF-8 chunk corruption) + registry-driven picker + protocol scaffold by @Kuberwastaken in #256
  • feat(query): sanitize_history invariant pass (retires tool_use/tool_result 400s) by @Kuberwastaken in #257
  • feat: conditional tool guidelines + functional ToolSearch discovery (MI-6) by @Kuberwastaken in #258
  • refactor(query): /goal as in-loop continuation policy + max-steps graceful degradation (MI-3) by @Kuberwastaken in #259
  • feat(query): compaction upgrades β€” token-budget keep, real-usage trigger, UPDATE summary, files manifest (MI-4) by @Kuberwastaken in #260
  • refactor: split god-files (commands/lib.rs -81%, query runner/ modules) β€” behavior-preserving (MI-5) by @Kuberwastaken in #261
  • feat: XDG base directory support + CLAURST_HOME override (back-compatible) by @Kuberwastaken in #262
  • chore(ci): enforce clippy (fix ~255 warnings); keep rustfmt advisory; RC deps noted by @Kuberwastaken in #264
  • feat: ultracode mode β€” bundled skill + purple-gradient keyword + submit-time activation by @Kuberwastaken in #265

New Contributors

Full Changelog: v0.1.6...v0.1.7