- Update README examples to use ollie-9p instead of /mnt/ollie paths
- Remove OLLIE mount path from env.sample (no longer needed)
- Update network transparency section for direct 9P access
With the zero-tools transition complete, the tools/builtin/ package
served no purpose — Builtins() returned nil. Removed:
- tools/builtin/builtins.go and the directory
- builtins field, WithBuiltins, Dispatch from toolsrv.Server
- Handler type from toolsrv (only used by builtins)
- OnPreDispatch/WithOnPreDispatch (dead code)
- Strict field and WithStrict (dead code, never read)
- CallTool simplified — no fallback to Dispatch
- builtin import and WithBuiltins/WithStrict calls from ollie-remote
- tools/builtin from justfile build/test targets
Updated AGENTS.md, ARCHITECTURE.md, README.md, EVOLUTION.md
The old fs/session/ package (14 files) and cmd/olliesrv/elevate_tree.go
(imperative FileTree implementations) are gone. Replaced by a single
declarative EDSL in fs/spec.go that declares the entire 9P namespace.
cmd/olliesrv/server.go simplified from 1430 to 825 lines:
- Deleted pathType() (110 lines) — tree.Stat() now handles all path resolution
- Deleted isSessionFile(), dirMode(), filePerm() — all from tree's info
- Deleted fsRoute/routes/route/routeDir — single rootTree, no route table
- Deleted elevateTree — EDSL handles /elevate/ in spec.go
- Deleted handleWrite(), readDNS(), helpPath() — dead code
- Deleted all 5 per-fid result fields — EDSL Request handlers manage state
- Deleted all path-based intercepts in read()/write() — entry.RequestRespMode()
- Deleted all path-depth hacks in makeStat() — custom Stat() closures in EDSL
- Deleted all content-length compute logic — info.Size() from tree
- Removed imports: agent, backend, elevate, paths, toolsrv, json
New fs/ package:
- spec.go — single EDSL declaration of the entire namespace
- builder.go — BuildTree() validates and compiles spec into *Tree
- tree.go — configurable FileTree implementation
- fsnode.go — Dir(), Leaf(), TemplateDir(), NodeOption constructors
- agentfiles.go / sessionfiles.go / rootfiles.go / elevatefiles.go
— handler implementations wired by the EDSL
- lifecycle.go — Create, Kill, Rename, Shutdown, InterruptAll
- persist.go, procfiles.go
- edsl.md — documentation of the EDSL
These scripts were removed. Update all documentation to reference the
current alternatives: ollie-9p rdwr generate, ollie-9p rdwr complete,
and ollie-9p rdwr route.
olliesrv no longer has start/fgstart/stop/status subcommands — it runs
in the foreground and relies on the supervisor (systemd, openrc, or
xdg-autostart) for lifecycle management. This simplifies the binary
and makes the single-process model explicit.
Changes:
- All docs: olliesrv start → olliesrv
- justfile: add install-services target, used by all install recipes;
installs systemd user unit, openrc init script, xdg autostart entry;
remove inline autostart installs from individual targets
- systemd unit: ExecStart drops "start" subcommand
- openrc init script: deleted (was for daemonized start; now managed
via install-services)
- xdg-autostart: new desktop entry (moved from 9p/ submodule),
Exec=olliesrv (no longer shells out to start + remount)
- contrib/ollie-remount: add debug echo for namespace/socket
- 9p submodule: remove daemon subcommands from Go code;
delete old desktop file
- el submodule: update README for foreground-only olliesrv
The D-Bus adapter only exposed 4 parameters (cwd, backend, model, agent)
but the session manager supports 6 (+ system_prompt, remote). The remote
had already added system_prompt as the 5th; this adds remote as the 6th.
All frontends (KDE plasmoid, Kate, tray, dolphin, webui, httpgw) and
tool scripts now pass the correct 6 arguments.
- 9p: embedded D-Bus protocol adapter on org.ollie.SessionManager;
all frontends (terminal, acme, Emacs, KDE, web) work with olliesrv
- httpgw: removed 9P backend; translates HTTP to D-Bus exclusively
- README: document that olliesrv serves all frontends, ollied is KDE-only
- Resolves model from OLLIE_TIER_{WORKER|EXPERT}_{backend}
- Falls back to legacy OLLIE_CASCADE_MODEL/OLLIE_ESCALATE_MODEL
- --backend flag lets orchestrator pick a different backend
- Inherits parent session's backend by default
- OLLIE_ENABLED_BACKENDS documents available backends
- README updated with tier config examples
- README.md: add feature summary with bulleted list
- acme: add README documenting ollie-acme and Kmpl
- el: refactor completion to shell out to u/complete
- u/complete: improve prompt and strip leaked tags
- Add -model and -backend flags; read OLLIE_COMPLETE_MODEL /
OLLIE_COMPLETE_BACKEND as defaults; error if neither is set
- Guard against winid=0 (acme column tag / +Errors window)
- Document OLLIE_COMPLETE_MODEL and OLLIE_COMPLETE_BACKEND in
README.md and doc/env.sample
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Both x/elevate and elevate-adapter-superpowerd now default the socket
path to $XDG_RUNTIME_DIR/ollie/elevate.sock (falling back to
/run/user/<uid>/ollie/elevate.sock) when OLLIE_ELEVATE_SOCKET is unset.
Add OLLIE_ELEVATE_SOCKET to env sections of both sandbox configs.
Add {XDG_RUNTIME_DIR}/ollie to restricted sandbox filesystem rw rules
so x/elevate can reach the socket. Update README env block and
scripts/README socket path docs.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
x/elevate is now a generic client: reads OLLIE_ELEVATE_SOCKET, sends
{cmd,cwd}, reads back {stdout,stderr,exit_code}. All backend-specific
logic moves to adapters. Add elevate-adapter-superpowerd as the
reference adapter: owns the socket lifecycle, translates the ollie
protocol to superpowerd JSON-RPC ExecuteCommand. Add OLLIE_ELEVATE_SOCKET
to env docs. Update scripts/README.md with protocol spec, adapter
setup, and guide for writing custom adapters.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add HTTP gateway and web UI sections to USAGE.md: build instructions,
runtime flags, HTTP→9P endpoint reference, nginx serving example, and
Vite dev workflow. Add HTTP gateway architecture section to
ARCHITECTURE.md with frontend comparison table. Update README.md with
httpgw build target, dual remote-access paths (9P mount vs httpgw),
and container example updated for both.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Batch and session namespaces are now a single s/ concept. s/bfg blocks
until the agent finishes and writes to stdout; s/bbg returns immediately
and prints the session path. s/b is the core one-shot runner. Remove all
b/ references from README, USAGE, ARCHITECTURE, and scripts/README.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The markdown planning mechanism created competing signals against beads.
Removing it eliminates the conflict. Planning goes through beads (bd)
or whatever external mechanism is appropriate.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
plan_* now blocks by default when bd and .beads are present.
Set OLLIE_BEADS_ENABLE=0 to use the markdown-based plan_* scripts instead.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
If both conditions hold, plan_* scripts exit 2 with an error directing
the model to use bd instead. When either condition is false (beads not
configured or bd not installed), the scripts run normally as a fallback.
Document OLLIE_BEADS_ENABLE in README and doc/help.md.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>