This commit is contained in:
lachtan
2026-06-24 18:26:05 +02:00
parent 428c555419
commit c00804e2d0
2 changed files with 5 additions and 51 deletions

View File

@@ -23,32 +23,23 @@ This file stores important information that should persist across sessions.
## Project Context ## Project Context
- User wants to deploy "grill-me" plugin for Claude Code
- User wants to try "praneybehl/llm-wiki-plugin" for Claude Code — markdown-based thought management / organization
- Daily automated check for new nanobot Docker image releases with Telegram notifications (pending setup) - Daily automated check for new nanobot Docker image releases with Telegram notifications (pending setup)
- Both user and assistant run on the same nanobot Docker image - Both user and assistant run on the same nanobot Docker image
- Docker CLI is unavailable in the current runtime environment - Docker CLI is unavailable in the current runtime environment
- podman is acceptable as alternative to Docker CLI when required - podman is acceptable as alternative to Docker CLI when required
- Ollama cloud subscription: na požádání zobrazit aktuální využití (usage) - Ollama cloud subscription: na požádání zobrazit aktuální využití (usage)
- Ollama cloud limity: 5hodinová session, 7denní týdenní okno
- `/note` skill: backend uses SQLite (not markdown); must be deterministic, log all operations, split into shorter prompt + Python script - `/note` skill: backend uses SQLite (not markdown); must be deterministic, log all operations, split into shorter prompt + Python script
- URLs should be on separate lines in both `list` and `show` output, not buried in long text lines - URLs should be on separate lines in both `list` and `show` output, not buried in long text lines
- Reminders DB schema has no "frequency" column; scheduling uses separate tables (schedule_at, schedule_cron, schedule_random, reminder_fires) - Reminders DB schema has no "frequency" column; scheduling uses separate tables (schedule_at, schedule_cron, schedule_random, reminder_fires)
- Use `python3` not `python` on this system (latter not found)
- nanobot podporuje cross-channel session continuity přes `unifiedSession: true` v `config.json` pod `agents.defaults` - nanobot podporuje cross-channel session continuity přes `unifiedSession: true` v `config.json` pod `agents.defaults`
- Uživatel nemá `unifiedSession` povolený v `config.json` (default false) - Uživatel nemá `unifiedSession` povolený v `config.json` (default false)
- Zapnutí `unifiedSession` sjednotí jen budoucí zprávy; existující session soubory vyžadují ruční merge/rename pro propojení minulých konverzací - Zapnutí `unifiedSession` sjednotí jen budoucí zprávy; existující session soubory vyžadují ruční merge/rename pro propojení minulých konverzací
- Session files are stored in `/home/nanobot/.nanobot/workspace/sessions/` (confirmed after failed attempts at root `.nanobot/sessions/`) - Session files are stored in `/home/nanobot/.nanobot/workspace/sessions/` (confirmed after failed attempts at root `.nanobot/sessions/`)
- User explicitly rejected unified/Mega session approach; prefers connecting to older existing sessions instead
- Telegram slash commands (e.g., `/skills`) are filtered out by `& ~filters.COMMAND` in telegram.py:384; workaround: invoke skills without slash prefix (e.g., `skills` not `/skills`); alternative fix: remove the filter from MessageHandler
- User wants deterministic command dispatch in nanobot (`!command text` → registered Python function/external app, no LLM involvement); expects native implementation from nanobot creators, considers existing workarounds unsatisfactory - User wants deterministic command dispatch in nanobot (`!command text` → registered Python function/external app, no LLM involvement); expects native implementation from nanobot creators, considers existing workarounds unsatisfactory
- User wants nanobot use-case analysis framed as personal project relevance, not generic use case lists
- User is interested in litellm proxy for Ollama - User is interested in litellm proxy for Ollama
- User considers Raspberry Pi good for testing - User considers Raspberry Pi good for testing
- User wants to try writing a nanobot extension in TypeScript - User wants to try writing a nanobot extension in TypeScript
- No existing `!` prefix handling in nanobot — all current commands use `/` prefix only - 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
- Note skill DB path is `db/note.sqlite`, not `skills/note/notes.db` (the latter is empty/wrong)
## Agent Model Selection ## Agent Model Selection
- Prioritizes agentic performance, correct tool calling, and overall result quality - Prioritizes agentic performance, correct tool calling, and overall result quality
@@ -58,58 +49,21 @@ This file stores important information that should persist across sessions.
- Gemini Flash via Google AI Studio Tier 1 (paid): 360+ RPM - Gemini Flash via Google AI Studio Tier 1 (paid): 360+ RPM
- Haiku (Claude) via OpenRouter: high rate limits, viable agent model alternative - Haiku (Claude) via OpenRouter: high rate limits, viable agent model alternative
- Gemini Flash Lite via OpenRouter: high rate limits, viable agent model alternative - Gemini Flash Lite via OpenRouter: high rate limits, viable agent model alternative
- Kimi K2.6 vs GLM-5.1 agent comparison: Kimi leads SWE-Bench (80.2% vs ~77.8%), tool-error recovery (91.8% vs 88.4%), code quality (Tier A vs Tier C); GLM-5.1 leads schema adherence (99.6% vs 98.9%), tool-call latency (+140ms vs +210ms); GLM-5.1 tends to hallucinate non-existent APIs
- Kimi K2.6 has known bug with random switching to Chinese output (reported by Cursor and Reddit users) — critical risk for Czech use - Kimi K2.6 has known bug with random switching to Chinese output (reported by Cursor and Reddit users) — critical risk for Czech use
- Both Kimi K2.6 and GLM-5.1 are Chinese-English models without specific Czech training data — both risky for Czech
- Kimi K2.6 supports `preserve_thinking` mode for multi-turn agent scenarios (retains reasoning content across turns)
- minimax-m3:cloud is blocked for nanobot agent deployment due to empty tool result responses (ollama/ollama #16389) - minimax-m3:cloud is blocked for nanobot agent deployment due to empty tool result responses (ollama/ollama #16389)
- deepseek-v4-pro:cloud is blocked for interactive nanobot agent use due to 15.4 tok/s and 57s TTFT - deepseek-v4-pro:cloud is blocked for interactive nanobot agent use due to 15.4 tok/s and 57s TTFT
- deepseek-v4-flash:cloud is a viable nanobot agent alternative with 1M ctx, MIT license, and ~30-50 tok/s speed - deepseek-v4-flash:cloud is a viable nanobot agent alternative with 1M ctx, MIT license, and ~30-50 tok/s speed
- qwen3.5:397b-cloud is a viable nanobot agent alternative with multimodal support, 1M ctx, 201 languages including Czech, but has speed and accuracy tradeoffs - qwen3.5:397b-cloud is a viable nanobot agent alternative with multimodal support, 1M ctx, 201 languages including Czech, but has speed and accuracy tradeoffs
- devstral-2:123b-cloud is a viable nanobot agent alternative with Terminal-Bench 77.3%, coding-only focus, and 128K ctx limit - devstral-2:123b-cloud is a viable nanobot agent alternative with Terminal-Bench 77.3%, coding-only focus, and 128K ctx limit
- User is interested in switching to GLM-5.2:cloud as primary nanobot agent model if/when it becomes available on Ollama Cloud - User is interested in switching to GLM-5.2:cloud as primary nanobot agent model if/when it becomes available on Ollama Cloud
- GLM-5.1:cloud achieves ~198 tok/s on Ollama Cloud
- Agent model comparison report saved to `results/2026-06-07_ollama-cloud-agent-model-comparison.md` - Agent model comparison report saved to `results/2026-06-07_ollama-cloud-agent-model-comparison.md`
- User prefers Qwen model for deep research tasks (not currently in presets) - 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 - 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 - Available model presets: gemini-flash, gemini-flash-lite, glm, haiku, kimi, minimax, sonnet
## Wiki ### NuGet package caching
- Wiki content is in Czech - Evaluating NuGet package hosting/caching on Linux
- Wiki compile rule: ambiguous/conflicting sources must NOT be force-compiled — leave in `cml/raw/` or move to `_hard/`, log reason to `log.md` - Preferred solution: BaGetter (bagetter/BaGetter) — active BaGet fork with multiple upstream mirror support (PR #269), solves original BaGet's single-upstream limitation
- 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
- Duplicate wiki sources (same URL as an already-compiled source) must be detected and moved to `_hard/`
- Every processed source must be moved out of `cml/raw/` to prevent cron reprocessing
- Wiki graph regeneration: run `wiki_graph_lint.py` + `wiki_graph_extract.py` after each ingest batch that adds graph metadata
- 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
- Wiki current state: ~21 nodes, ~130+ edges (was 17 nodes, 125 edges after initial build)
- Wiki source ingested: source-lego-mindstorms-continued-use (LEGO MINDSTORMS discontinuation, Pybricks alternative, SPIKE Prime successor)
- Wiki entities: product-lego-mindstorms, product-pybricks, product-spike-prime
- Wiki concepts: digital-preservation, alternative-firmware
## Reminder System
- Reminder check script: `/home/nanobot/.nanobot/workspace/skills/remind/scripts/remind_check.py`
- Execution: `exec` via `/home/nanobot/.local/bin/uv run <script>`
- Empty output → silent exit (no notification sent)
- Each non-empty output line → forwarded as separate Telegram notification
- `/remind` soft delete (deleted_at) for reminder removal instead of hard deletion
- `/remind` REMIND_DB env var configures SQLite database path
- Reminder #5 (koupit skleničky z lahví z vína): frequency 1× weekly random 09:0019:00 (changed from daily)
- Reminder #6 (mapování klíčů ve sklepě): frequency 1× weekly random 08:0021:00 (changed from daily)
- Reminder #7 (znovu rozchodit teplotní senzor ve chlívku): frequency 2× weekly random 08:0021:00 (changed from daily)
- Reminder #8 (zálohování wood.hell na pivo.hell): frequency 2× weekly random 08:0021:00 (changed from daily)
### NuGet package caching ← 17d
- Evaluating NuGet package hosting/caching on Linux ← 17d
- Preferred solution: BaGetter (bagetter/BaGetter) — active BaGet fork with multiple upstream mirror support (PR #269), solves original BaGet's single-upstream limitation ← 17d
## Deep Research ← 2d
- Deep-research use-cases task (2026-06-18) partial results saved to `results/2026-06-18_nanobot-use-cases-analysis.md`
- Deep-research task failure on 2026-06-18 caused by hitting 200 tool-call iteration limit (not a freeze/deadlock)
## Plans ## Plans
- Set up Claude Code for removing ads and cutting songs from Radio 1 stream - Set up Claude Code for removing ads and cutting songs from Radio 1 stream

View File

@@ -1,12 +1,12 @@
--- ---
name: memory-compact name: compact-memory
description: > description: >
Audit and compact memory/MEMORY.md by removing superseded, duplicated, overly detailed, Audit and compact memory/MEMORY.md by removing superseded, duplicated, overly detailed,
or ephemeral entries, and merging related items within a subsection. or ephemeral entries, and merging related items within a subsection.
Runs interactively by default; use auto mode for unattended execution. Runs interactively by default; use auto mode for unattended execution.
--- ---
# memory-compact # compact-memory
Compact `memory/MEMORY.md` when it grows too large or stale. The skill reads `memory/MEMORY.md` plus `USER.md`, `SOUL.md`, and `keep.md` (all three in the workspace root) to detect duplicates and outdated context, but only edits `memory/MEMORY.md`. Compact `memory/MEMORY.md` when it grows too large or stale. The skill reads `memory/MEMORY.md` plus `USER.md`, `SOUL.md`, and `keep.md` (all three in the workspace root) to detect duplicates and outdated context, but only edits `memory/MEMORY.md`.