v0.8.0 #235
rwachters
announced in
Announcements
v0.8.0
#235
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
📦 Release v0.8.0
📝 Executive Summary
This release introduces a new built-in worker tools system that lets workers execute filesystem, command, and web operations directly within a sandboxed workspace, replacing the previous generic tool execution paths. It adds full server, worker, and client support for managing, authorizing, and approving these tools, alongside several chat and settings stability improvements.
🚀 What's New
Worker
read_text_file,write_file,edit_file,move_file,list_directory,create_directory,search_files,search_text), sandboxed command execution (run_command), and web access (fetch_web_content,download_file).toolNamePrefixto worker configuration so built-in tool names can be namespaced per worker.Server
BuiltInToolDefinitionDAO, Exposed table, entity mappers, and a Flyway migration (V14) to persist built-in worker tool definitions and worker tool-name prefixes.BuiltInToolDispatchService(server→worker) and aBuiltInWorkerToolExecutorthat routes built-in tool calls to their owning worker with typed events/errors and timeout/validation semantics.BuiltInToolDefinitionService(list/update with worker-ownership checks) and a seeder that atomically creates and renames built-in tools, preserving canonical names and optional public prefixes.App (Client)
BuiltInToolApi(Ktor client) andBuiltInToolRepositorywith reactiveStateFlowcaching, plus aBuiltInToolsViewModelfor worker selection, tool loading, edits, and toggles.🐛 Bug Fixes & Improvements
isSendingupdates into theChatViewModeljob lifecycle, removing duplicate toggles fromSendMessageUseCaseso the sending state reliably resets on completion or cancellation.ChatViewModelSlotManager, keeping view-model keys stable across navigation and preserving in-flight streams.excludePatternsas a string or array, and normalized relative paths to forward slashes for consistent cross-platform behavior.head/tailwith a Python-stylerangeargument (negative indices, open-ended bounds, clamping) and prefixed output with a header showing the source path and 1-based line range.🏗️ Technical Updates
MiscToolDefinition.BuiltInToolCatalog.sizehelper and replaced hardcoded tool-count assertions with catalog-driven checks across seeder and worker-prefix tests.0.8.0-SNAPSHOTto the0.8.0release version.📚 Appendix: Built-in Worker Tools Reference
The following built-in tools are seeded by the server into each worker's catalog and executed inside the worker's configured workspace. All paths are relative to that workspace root, and filesystem operations are confined to it. Web tools reject localhost, loopback, link-local, and private-network addresses.
File Operations
read_text_file— Read a UTF-8 text file. Parameters:path(required),range(optional[start, end)line range with Python slice semantics: negative indices count from the end,nullfor open-ended bounds). Output is prefixed with a header showing the source path and 1-based line range.write_file— Create or overwrite a UTF-8 text file. Parameters:path(required),content(required).edit_file— Apply structured edits to a text file. Parameters:path(required),edits(list ofoldText/newTextpairs, required),dryRun(optional preview without applying).create_directory— Create a directory and any missing parents. Idempotent. Parameter:path(required).list_directory— List directory contents with[FILE]/[DIR]prefixes. Parameters:path(defaults to workspace root),sortBy(nameorsize),includeSizes,recursive. Folders are always listed before files.move_file— Move or rename a file/directory; fails if the destination already exists. Parameters:source(required),destination(required).search_files— Find files/directories by glob pattern. Parameters:path(starting directory, defaults to root),pattern(required;**for recursive, bare*.ktmatches only the starting directory),excludePatterns(string or array). Patterns match paths relative to the starting directory; returned paths use forward slashes.Search
search_text— Search UTF-8 text files for plain text or regex, returning matching paths and line numbers. Parameters:path(file or directory, defaults to root),query(required),mode(plain/regex),caseSensitive,wholeWord(plain mode only),filePattern(glob include filter),excludePatterns(string or array),contextBefore/contextAfter(context lines),maxResults(cap on matched lines). Skips binary files and truncates grouped output.Command Execution
run_command— Run a process inside the workspace with a timeout. Parameters:command(required, must be on PATH or absolute),args(list),timeout(seconds; defaults to the worker'sbuiltInTools.defaultCommandTimeoutSeconds).Web Access
fetch_web_content— Fetch textual content from a public internet URL. Parameters:url(required),timeoutSeconds,maxBytes,followRedirects(default true),returnMode(auto/text/html).download_file— Download content (including binary) from a public URL to a workspace file. Parameters:url(required),path(required),overwrite(default false),timeoutSeconds,maxBytes,followRedirects(default true).This discussion was created from the release v0.8.0.
Beta Was this translation helpful? Give feedback.
All reactions