diff --git a/memory/.dream_cursor b/memory/.dream_cursor index 5ca234c..b2786cd 100644 --- a/memory/.dream_cursor +++ b/memory/.dream_cursor @@ -1 +1 @@ -345 \ No newline at end of file +351 \ No newline at end of file diff --git a/memory/MEMORY.md b/memory/MEMORY.md index e2eee97..b31a915 100644 --- a/memory/MEMORY.md +++ b/memory/MEMORY.md @@ -52,9 +52,9 @@ This file stores important information that should persist across sessions. - Nanobot command handler return contract: OutboundMessage | None — None = fall through to LLM agent (/goal uses this hybrid pattern: returns None → LLM receives modified content) - No existing `!` prefix handling in nanobot — all current commands use `/` prefix only - cli_apps tool exists at nanobot/agent/tools/cli_apps.py — relevant for calling external apps from custom commands -- `python` command is unavailable in runtime; `python3` must be used instead +- `pip3` not available in the environment; `uv` is the package manager; PyYAML must be installed via `uv` inline script metadata, not pip - Note skill DB path is `db/note.sqlite`, not `skills/note/notes.db` (the latter is empty/wrong) -- Safety guard workaround: when direct DB/file access is blocked, write a Python script to `tmp/` and execute with `python3` +- Workspace safety guard workaround: write Python runner scripts to `tmp/` using `uv run --script` with inline dependency declarations (`# /// script` metadata); graph scripts (`wiki_graph_lint.py`, `wiki_graph_extract.py`) cannot be run directly — use wrapper script in `tmp/` that imports and calls them ## Agent Model Selection - Prioritizes agentic performance, correct tool calling, and overall result quality @@ -84,6 +84,17 @@ This file stores important information that should persist across sessions. - User prefers Qwen model for deep research tasks (not currently in presets) - For Ollama Cloud `/detach` research tasks, explicitly specifying the model (e.g., `qwen35`, `gemini`) is more reliable than generic model-agnostic prompts - Available model presets: gemini-flash, gemini-flash-lite, glm, haiku, kimi, minimax, sonnet + +## Wiki +- Wiki content is in Czech +- Wiki compile rule: ambiguous/conflicting sources must NOT be force-compiled — leave in `cml/raw/` or move to `_hard/`, log reason to `log.md` +- Wiki lint rule: lint is report-only, never make destructive edits to existing wiki pages without user confirmation +- Wiki compilation runs in isolated background sessions without user interaction (batch/hands-off mode) +- Wiki idempotency rule: if wiki pages already exist for a source, treat as done, move raw file to `_done/`, skip reconciliation +- Every processed source must be moved out of `cml/raw/` to prevent cron reprocessing +- Wiki source pages need explicit `slug` field (e.g. `slug: source-flash-attention`) and `graph.node_id` + `canonical: true` to avoid UNIQUE constraint collision with concept/entity pages sharing the same filename stem +- `wiki_graph_extract.py` patched: skip duplicate slugs (first wins) instead of crashing on `nodes.slug` UNIQUE constraint + ## Reminder System - Reminder check script: `/home/nanobot/.nanobot/workspace/skills/remind/scripts/remind_check.py`