All tool logic lives in the multicall main.go at each family root.
Move .meta files to data/tools/ (single canonical location).
Expand test-core to cover all tools.
Moves package lsp and cmdutil under tools/lsp/internal/ so the
multicall binary can live at tools/lsp/main.go — same layout as
codeintel and filetools.
- Multicall pattern for tool families: one binary per family with
symlinks for each tool name. Reduces tools dir from 156MB to 31MB.
codeintel (6 tools), filetools (5 tools), lsptools (7 tools).
- Build with -ldflags="-s -w" to strip debug symbols.
- Fix Landlock EINVAL on regular files: filter directory-only access
rights (READ_DIR, MAKE_*, REMOVE_*) when adding rules for non-
directory paths.
- Fix toolsrv CWD initialization: pass --cwd flag value to server
state at startup so {CWD} in sandbox.yaml expands correctly.
Server:
- session/idx now outputs: session-id, session-name, paused, connected, remote, cwd
- session/{s}/agent/idx now outputs: session-id, agent-id, agent-name, parent-id, depth, state
- Add error if parent agent not found during sub-agent spawn
GUI:
- refreshSessions() reads session index, then agent/idx per session
- Auto-select first top-level agent (depth 0) instead of first in list
- SessionModel tracks agent expansion separately from session expansion
- Agents with children show expand/collapse arrows and are collapsible
- Add hasChildren role to SessionModel
Tools:
- subagent_spawn now passes parent= argument for proper depth tracking
- Remove hardcoded max_depth=5, use server default of 1
- Makefile installs shell script tools from data/tools/
KRunner:
- Update to parse new session/idx format
- Workflows are executable scripts in data/workflows/
- New 'workflows' 9P file lists available workflows
- Goal file stores text; writing triggers workflow if status allows
- goalstatus file for status read/write, goalwait for blocking
- Session ctl accepts 'run [workflow]' command
- Session now owns CWD; agents inherit via callback
- Conductor workflow: creates agent, primes with instructions, exits
- GUI workflow combo reads from workflows, not agents
- Persistence includes goal, goalstatus, workflow, and session CWD
- Remove all Makefiles and mkfiles from root and submodules
- All install targets now use ~/.local/ instead of /usr/
- Replace cp+chmod with install throughout
- Install every file individually with explicit permissions
- Add install-kde to 9P path (KDE works with both backends)
- Add install-el for Emacs frontend (~/.config/emacs/ellie)
- Add test targets (test-core, test-9p)
- No sudo required for any operation
make / mk: build core, 9p, acme, httpgw, webui + install with 9P prompt
make dbus / mk dbus: build core, ollied, kde, httpgw, webui + install with D-Bus prompt
Build and install are separate phases. No sudo. No building during install.
SYSTEM_PROMPT-9p.md: 9P filesystem operational model (default install)
SYSTEM_PROMPT-dbus.md: D-Bus operational model
Makefile/mkfile: "make data" installs 9P prompt as active SYSTEM_PROMPT.md.
"make dbus" builds the dbus daemon and switches to the dbus prompt.