Drop the OLLIE_KF5 CMake option and the entire Qt5/KF5 build branch;
delete KF5-only assets (99-ollie-kf5.sh, ollie-actions-kf5.desktop);
collapse all QT_VERSION_MAJOR and KTEXTEDITOR_VERSION_MAJOR conditionals
to the KF6 path in the KRunner, Kate, KIO, and GUI sources; update
Makefile, README, and docs. Verified: KF6 configure + full build of
ollie-gui, krunner_ollie, ollie_kate, kio_ollie.
Add semantic skill matching using all-MiniLM-L6-v2 sentence embeddings.
Skills are automatically injected into user turns based on relevance.
New packages:
- embedding: ONNX-based text embedding with MiniLM model
- skills: skill discovery, embedding cache, and semantic matching
Integration:
- InitSkillIndex called at startup in fs.NewRoot
- matchSkills called per-turn in executeTurn
- Matched skills injected in <context> block alongside user prompts
Makefile:
- install-models target downloads model and ONNX runtime
- Model files stored in ~/.local/share/ollie/models/
Config:
- Threshold: 0.2 cosine similarity
- Limit: 3 skills per turn
- Skill dirs: ~/.kiro/skills (user), ~/.config/ollie/skills (installed)
Reduced from 18 targets to 10:
all, build, go, tools, kde, install, install-data, test, clean, uninstall
Key changes:
- Build to build/ dir first, install only after tests pass
- Merged ninep+core into 'go' (builds olliesrv, ollie-9p, toolsrv)
- Removed build-kf5/install-kf5/kde-kf5 (cmake auto-detects)
- Merged test-core+test-9p into 'test'
- Removed 'client' target (lib9p now built by cmake as custom command)
- Added 'uninstall' target
CMakeLists.txt changes:
- lib9p built via add_custom_command instead of requiring pre-built .so
- add_dependencies ensures lib9p built before KDE targets need it
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.