> **Deployment:** VoidBot runs on Yggdrasil and is deployed by Idunn from upstream repository pushes. Local checkouts are development and diagnostic environments, not deployment targets. Do not create or restore a local VoidBot deployment path.
-`apps/bot` owns Discord connectivity, routing, and command handling.
-`apps/worker` polls owner jobs, runs the local Discord-safe Codex lane, serves bounded history-search tool requests from the RAG index, and prepares handoff bundles when needed.
- Retrieval now uses a persistent vector backend with a local embedding backend by default (`qwen3-embedding:0.6b` through Ollama).
-`VECTOR_STORE_KIND=local_json` keeps the zero-service path available for local development, but `VECTOR_STORE_KIND=qdrant` is now supported for a proper vector database.
- Discord history vectors and source-tree/lore vectors stay in separate physical partitions so source indexing no longer rewrites the entire history corpus.
- The bot live-ingests every message that matches the configured indexing rule and can also backfill from exported log files.
- Source and lore indexing can also be kicked off by local repo `pre-push` hooks, which launch a detached incremental resync of the pushed repo into the source archive and source-side vector store.
-`local_exec_owner_only` tries a read-only `codex exec` pass for direct Discord replies
-`manual_package` remains available when you want explicit approval-gated packaging
- When the local Discord-safe lane is not enough, the worker posts a handoff notice and writes the full context bundle to `.voidbot/artifacts/<job-id>/`.
4. Publish separate Eve/CultUI surfaces for Discord, r/GameCultOrg, archive, source, repo Face, and swarm state instead of growing a bespoke dashboard authority.