- Add b/ to filesystem layout (job spec, status, result, usage, ctxsz)
- Add BatchStore to backing stores table
- Add Batch jobs section with submit/poll/remove examples and oq reference
- Remove s/{id}/reply from layout
ctl now validates the first word of input against a closed set of
known commands. Unrecognized input returns an error instead of being
silently forwarded as a prompt to the agent.
- Support mv on session directories (wstat rename)
- Track connections globally for fid path rewriting on rename
- Add kill and rn <name> to ctl handler
- Append rename notification to chat log
- Update README with rename and ctl docs
- Route Tcreate to new create handler for /t and /sk
- Add skill file write support (write to SKILL.md in skill dir)
- Make /sk files writable (0666), /t files/dir 0777
- Update default tools path to ~/.config/ollie/tools
Plain file operations on $OLLIE_9MOUNT/sk/ replace these. Remove the
tools/ directory and the mkfile step that installed them.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replaces the r/w prompt.fifo with two separate endpoints: enqueue
(write-only, queues a prompt) and dequeue (read-only, pops the next
queued prompt). Also fixes a bug where cat's trailing EOF read at
non-zero offset would silently consume and discard the next queued item.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sessions are now nested under s/ instead of the root, making it
straightforward to count active sessions and find newly created ones
by offset:
n=$(ls s/ | wc -l)
echo "new agent=foo" > ctl
sid=$(ls s/ | sort | sed -n "$((n+1))p")
Session IDs are now Unix nanosecond timestamps (from ollie's updated
NewSessionID), so ls s/ | sort gives strict creation order. The s/
directory is a stable listing surface; ctl remains at the root for
control operations.
All path parsing updated throughout: pathType, readDir, makeStat,
handleWrite, readChat, readReply, readFile. README updated to match.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
reply holds only the clean assistant text from the most recently
completed turn. It is written atomically when Submit returns and cleared
(as a documented side-effect) when a new prompt is submitted. Stat
reports the real byte length and bumps Qid.Vers on each change, so
polling via stat size > 0 is the intended signal that a reply is ready.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
"new" in root ctl now accepts optional key=value pairs in any order:
backend=<name>, model=<name>, agent=<name>. All are optional; omitting
any uses the default. Replaces the old positional backend/agent args.
Unknown keys and malformed entries are rejected with a clear error.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>