rm -r is blocked by sandbox patterns. echo kill > s/{id}/ctl
achieves the same result safely.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- tools/file_*: hard-fail when OLLIE_SESSION_ID is unset; surface errors
on all failure paths including dir checks, marker cleanup, and I/O
- tools/file_read: treat nonexistent path as new file (emit "(new file)",
write empty marker) so file_write can create new files
- tools/file_write: colorize new-file lines with + (U+FF0B)
- tools/file_glob, file_grep, memory_*, task_*: consistent error handling
and output to stdout so the model sees all failures
- tui/diffcolor.go: match +/− (U+FF0B/U+2212) lookalikes emitted by
file_edit/file_write; fix +++ / --- header pattern
- prompts: prohibit execute_code for file creation/modification;
enforce execute_tool with file_write/file_edit instead
- core submodule: surface isError from MCP responses; inject
OLLIE_SESSION_ID into execute server at session creation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Previous wording was passive. Now gives an explicit command with a
concrete tool call to run before the first response.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Direct the model to read ollie/sk/reasoning.md and ollie/sk/memory.md
at session start. Both are behavioral primitives that must be active
before any task begins.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
tools.sh reads # description/# Args headers from all scripts and prints
a summary — one call replaces the schema injection built-in tools get
for free. Prompt now directs the model to run it before using unfamiliar
tools.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Completes the rename started with the 9P file change.
Go API: WorkDir→CWD, SetWorkDir→SetCWD, WorkDirSetter→CWDSetter.
Unexported: workdir→cwd in fields, params, locals.
Template: {{.WorkDir}}→{{.CWD}}.
Docs: ARCHITECTURE.md, PLANNING.md, README.md, IDEAS.md.