FUSE entry cache may not reflect the new session directory immediately
after the write to s/new returns. Poll until it appears, mirroring the
approach in s/sh.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Bash's printf builtin issues one write() syscall per call; the server
processes each write independently, so the first write (name= only)
would fail the cwd-required check. Build the full KV string first,
then write once.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Batch jobs were a front-end concern. All one-shot query workflows now
compose session primitives via s/b (engine), s/bfg (foreground), and
s/bbg (background). Parallel execution is a shell loop.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
tui/session: IsIdle reads spec and parses state= key.
scripts/s/sh, sh.rc: add spec_get helper; is_idle, /cwd, /model,
/agent, /backend read via spec_get; writes go to spec as key=value.
el/ellie.el: ellie--state reads spec with string-match on state=.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Option C implementation: single namespace with composable file tables.
Batch jobs are sessions with a reduced file set — the directory
contents declare the capability.
- core: SessionStore absorbs BatchStore; s/new detects batch format
- 9p: /b/ removed entirely; all routing through /s/
- scripts/b/* moved to scripts/s/*; paths updated
- subagent_spawn, optimize: /b/q -> /s/q
- scripts/b/ removed
Update core and tui submodules. Core ensures assistant content in the
chat log ends with a newline so 9P line-buffered reads don't lag one
turn behind. TUI adds regression tests for the tailing behavior.
Replace Mermaid-generated SVG with hand-written SVG to avoid
font metric clipping. Shows core as foundation, olliesrv as
the 9P layer, and front-ends/scripts/pipelines as consumers.
- Add {CWD} to rwx (session working directory, was in DefaultConfig)
- Add /usr /lib /lib64 /bin /sbin to rox (system binaries)
- Add {TMPDIR} to rwx
- Add all OLLIE_* env vars (SESSION_ID, CFG_PATH, DATA_PATH, etc.)
- Replace {PWD} with {CWD} in restricted sandbox
- Remove orphaned cwd: top-level field (not parsed by Config struct)