New 9P file s/{id}/react: write an emoji to record a reaction to the
most recent assistant response. The reaction is passive feedback —
no model turn is triggered.
The system prompt now documents how agents should interpret emoji
reactions (positive/negative/confused) and silently adjust behavior.
The mount logic is now a library package (mount/) called directly
by `olliesrv mount`. No external binary needed.
Per-session auto-mounts are gone entirely. The mount subcommand
remains for network-transparent human access to remote servers.
Agents now use the 9p client binary directly instead of FUSE mounts.
Remove startMount() calls and OLLIE= env var from session env.
Mounts remain available for human use but are no longer auto-started.
Complete 9P client that replaces plan9port dependency.
Subcommands: read, write, rdwr, stat, ls, create, remove, mkdir.
Supports -a addr, -A aname for attach identity, -n for no auth.
Uses 9fans.net/go/plan9/client library (already in go.mod).
Load persisted session JSONs sequentially (fast disk reads),
then fan out restoreSession calls in parallel. Each session
restoration involves backend init, prompt resolution, and
potentially SSH connections for remote sessions.
Start the elevation broker on $OLLIE_ELEVATE_SOCKET at daemon
startup. D-Bus notifications with approve/deny/persist actions
map back to broker.Resolve() via ActionInvoked signals.
Replaces the external superpowerd adapter.
Drop start/fgstart/stop/status subcommands. olliesrv now runs
directly in the foreground; lifecycle managed by the supervisor
(systemd, openrc, or xdg-autostart). Keep mount as a convenience
subcommand for mounting remote 9P servers via 9pfuse.
- Remove daemonize(), stopServer(), isRunning(), pid file management
- runServer() no longer takes pidPath
- Move desktop file to main repo services/xdg-autostart/
- Update README examples
The D-Bus method was missing the remote parameter that session.Manager
already supports. Add it as the 6th arg after system_prompt so frontends
can create remote execution sessions via D-Bus.
Restored sessions were calling BuildRuntime without baseLayers,
so the 9P/D-Bus operational model never appeared in the system prompt.
Now computes sysPrompt, opModel, envBlock and passes them as BaseLayers.
Read: surface listing of all tools (name + description)
Write tool name, then read: full ollie:prompt content
Subsequent read reverts to surface listing (query cleared after use)
The preamble is now composed as:
system_prompt + operational_model + environment + agent_prompts
- Embed SYSTEM_PROMPT.md, session-9p.md, session-dbus.md in the binary
- Render environment block at runtime with live cwd/platform/date values
- Inject operational model based on server mode (Enable9P/EnableDBus)
- Accept system_prompt= override in session creation and D-Bus CreateSession
- Agent configs no longer need to reference system/session prompt files
olliesrv now supports three operating modes:
+9p +dbus (default): full 9P server with embedded D-Bus adapter
+9p -dbus (-nodbus): pure 9P server, no desktop integration
-9p +dbus (-no9p): D-Bus only, no filesystem interface
The -no9p flag gates all 9P listener setup (unix + tcp), the 9P
server instance, and per-session FUSE mounts. D-Bus becomes mandatory
in this mode (errors if session bus is unavailable). -no9p and -nodbus
are mutually exclusive.
This replaces the need for the archived standalone ollied daemon.
Dial the remote eagerly during session creation so HostInfo is available
for BuildRuntime. Pass PRIME_PLATFORM and PRIME_IS_GIT_REPO as env vars
so the system prompt reflects the remote host, not the local machine.