embedding/embedding.go:
- Remove EmbedBatch() (never called in production, test updated to use Embed)
- Remove padID field (written but never read)
embedding/index.go:
- Remove Index.mu mutex (Index is immutable after construction)
skills/skills.go:
- Remove Index.All() (never called)
- Remove Index.Reload() (never called)
virtfs/decl.go:
- Remove RemoveNode() NodeOption (never used)
- Remove RenameNode() NodeOption (never used)
- Remove Alias() NodeOption (aliases set directly on struct)
virtfs/tree.go:
- Remove Tree.Data field (never used)
- Remove Tree.Mount() (never called in production)
- Remove Tree.Child() (never called in production)
- Remove Tree.Children() (never called in production)
- Replace indexOf() with strings.IndexByte
Tests updated to directly manipulate internal children map where needed.
Remove lazy tool loading (load-on-call). Tools must now be explicitly
listed in the agent's autoLoad config. Calling an unloaded tool fails
with a clear error message.
Package structure improvements:
- embedding/index.go: generic Index type for semantic matching
- skills/skills.go: uses embedding.Index internally, keeps Skill type
- agent/skill_match.go: matchSkills() for skill discovery
- agent/tool_match.go: matchTools() for tool hints (new file)
Tool hints now match only loaded tools, not all tools on disk.
This makes agent capabilities explicit and auditable.
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)
- Stripped OLLIE_TOOLS_PATH, OLLIE_AGENTS_PATH, OLLIE_SKILLS_PATH,
OLLIE_PROMPTS_PATH, OLLIE_MEMORY_PATH, OLLIE_TMP_PATH from managed
list and defaults in env.go
- ToolsPath(), SkillsPath(), PromptsDirs(), AgentsDirs(), ollieTmpDir()
now derive from paths.CfgDir()/paths.DataDir() directly
- Removed shell-exec fallback from resolveExecPrompt() — only file
resolution remains
- Cleaned up env_test.go to match reduced managed set
- Updated stale comments referencing /home/lkn/.config/ollie/tools
Shared agent/tool prompts and skills now live at the top level rather
than duplicated across frontends. Frontend-specific system prompts
remain in their respective dirs (kde/prompts/, dbus/prompts/).
- prompts/, skills/, tools/ removed from monorepo root
- 9p/: gains prompts/skills/tools with 9P filesystem API (unchanged)
- kde/: gains prompts/skills/tools rewritten for D-Bus API
- mkfile: data target no longer installs prompts/skills/tools
- 9p/mkfile: install target now includes data (prompts/skills/tools)
- kde/Makefile: all target now includes data (prompts/skills/tools)
- SYSTEM_PROMPT_QWEN and SYSTEM_PROMPT_DEVSTRAL updated in both
submodules to include the operational world model
offset points to chat position after the last user prompt;
tail -c +$((offset+1)) yields the model response for that turn.
Replace stale reply references in prompts, help, ideas, and skills.
Document offset usage in concurrent sessions pattern and shell script.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Tools, sandbox configs, docs, and skills all updated. $OLLIE is now
the canonical ollie root — cd $OLLIE goes directly to the FUSE mount.
Core now always injects $OLLIE into the execute env at session start.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>