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
Alias layer for tools and params - tool names can register aliases (read/view > read_file, ls > list_dir, bash/exec > run_command) and param_aliases (file > path, query > pattern, cmd > command, q > query, cursor > offset). The registry resolves aliases to the canonical tool and normalizes args, so the advertised schema stays in the project's own vocabulary while model-dialect tool and argument names are absorbed. /tool, /help, tool policy, confirm prompts, and glyph activity lines work through aliases unchanged
open web tool (replio-core-websearch) - fetch a web page by id (1-based result from the most recent web_search) or url, with offset (also accepted as cursor) to resume reading. web_search now retains its last results for open to resolve, and a shared _fetch_text helper gives both fetch_page and open offset-with-continuation paging, appending [offset N of M chars - continue with cursor=N] when content continues past the cap
Configurable stream retry - a provider stream that ends before a completion event with no streamed content is re-requested up to 1 + stream_retries times (default 3 total attempts, configurable) with stream_retry_delay (default 0.5s) between attempts. The retrying note shows the attempt count, and when tool calls have already run the warning notes the results are saved so the answer can be retried with a follow-up message
tool_max_result_chars config (default 0 = unlimited) - replaces the bundled plugins' hardcoded 8000-char tool-result cap with a configurable one (set via /config tool_max_result_chars N). With the default nothing is truncated, read_file headers now report the total line and character count so the model can page large files with offset/limit, and read_file(path, limit=0) returns just the header as a size probe before committing to a read. Handlers can read the config via a _config kwarg the registry passes only when declared
Glyph activity lines - typed <glyph> <verb> <key_arg> status (dimmed) replaces the [tool: key_arg] oneliner for mapped categories, gated by the new glyph_lines config (default true). ToolRegistry.activity() resolves the glyph from category defaults (read ← Read, write → Write, search % Search, exec $ Run, ask ~ Ask, todo - Todo, delegate ↳ Call) or per-tool glyph/verb overrides (glob * Glob, fetch_page ↓ Fetch). Disabling glyph_lines or an unmapped category keeps the [tool: key_arg] oneliner + detail lines. ReplUI/HeadlessUI render the glyph line, ephemeral UI only (never persisted to session files)
write_file reports the resolved absolute path to the model - the tool result now returns Created|Overwritten|Appended <resolved abs path> (<n> lines, <n> chars) instead of echoing the raw path arg, so when a relative path resolves to an unexpected directory (e.g. launched from ~) the model sees where the file actually landed, the tool description notes that relative paths resolve against the current working directory. Terminal status preview unchanged. Tests: create/overwrite/append result strings and relative-path resolution
Tab completion extended - filesystem path completion after command arguments (directories get a trailing / for continued descent), tool-name completion for /tool <prefix>, and subcommand completion for commands declaring subcommands (/session lo > load, /plugins dis > disable)
Fixed tab completion - the completer no longer fires on macOS libedit (readline.parse_and_bind('tab: complete') is GNU-only and silently inserts a literal tab, libedit needs bind ^I rl_complete). / is removed from the completer delimiters so the model-facing word keeps its slash and paths complete correctly