[MEMORY] User prefers changes to be made in a temporary clone under `workspace/tmp/<repo-name>` for review before applying [MEMORY] `AgentLoop.__init__` does not accept a `config` parameter; custom command loading must happen in `from_config()` after instance creation, guarded by `_custom_commands_loaded` flag to prevent duplicate registration [MEMORY] Custom commands are dispatched inline before the session lock, same pattern as priority commands [MEMORY-REMOVE] "User requested patch study only with no actual code changes for nanobot IRC-bot command dispatch feature" — completed request, superseded by the proposed patch and implementation findings already captured [MEMORY-REMOVE] "User completed detached background research on the movie *Interstate 60*" — completed past event, no longer actionable [MEMORY-REMOVE] "User archived the completed detached task `interstate-60-movie-research` on 2026-06-02" — completed past event, no longer actionable
97 lines
7.2 KiB
Markdown
97 lines
7.2 KiB
Markdown
# Long-term Memory
|
|
|
|
This file stores important information that should persist across sessions.
|
|
|
|
## Preferences
|
|
|
|
### Report / result files
|
|
- Save important reports to `results/` directory with descriptive, date-prefixed filenames (e.g., `2026-06-02_remind-skill-analysis-and-improvements.md`)
|
|
|
|
### Script-writing convention
|
|
- Location: always save scripts in the `scripts/` directory.
|
|
- Language choice:
|
|
- Extremely short script (a few lines) -> bash.
|
|
- Longer / non-trivial script -> Python.
|
|
- Override: if the user explicitly specifies a language or location, their instruction always takes precedence.
|
|
|
|
### Temporary files
|
|
- All temporary files go to `tmp/` directory.
|
|
- Clean up after tests and one-off operations.
|
|
|
|
### Code changes
|
|
- User prefers changes to be made in a temporary clone under `workspace/tmp/<repo-name>` for review before applying
|
|
|
|
## 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)
|
|
- Both user and assistant run on the same nanobot Docker image
|
|
- Docker CLI is unavailable in the current runtime environment
|
|
- 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 storage uses SQLite (not markdown)
|
|
- `/note` skill: má být deterministický a logovat všechny provedené operace
|
|
- `/note` skill: má být rozdělený na kratší prompt + python skript, který provádí operace
|
|
- 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)
|
|
- 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/`)
|
|
- 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
|
|
- nanobot v0.2.1 available (current: v0.2.0)
|
|
- User wants deterministic IRC-bot-style command dispatch in nanobot where `!command text` invokes a registered Python function or external app and returns output without LLM agent involvement
|
|
- User expects nanobot creators to implement custom command registration natively and considers existing workaround solutions unsatisfactory
|
|
- Nanobot CommandRouter has priority/exact/prefix/interceptor tiers but lacks an extension point for custom command registration with all handlers hardcoded in builtin.py
|
|
- Proposed nanobot patch adds a custom command tier to CommandRouter dispatching before session lock configured via `commands` section in config.json supporting exec script and python module/function handler types
|
|
- `AgentLoop.__init__` does not accept a `config` parameter; custom command loading must happen in `from_config()` after instance creation, guarded by `_custom_commands_loaded` flag to prevent duplicate registration
|
|
- Custom commands are dispatched inline before the session lock, same pattern as priority commands
|
|
|
|
## Agent Model Selection
|
|
- Ollama subscription covers all discussed models; price/cost excluded from model comparison criteria
|
|
- Prioritizes agentic performance, correct tool calling, and overall result quality
|
|
- Primary nanobot agent model: GLM-5.1:cloud (best sustained productivity over long sessions/hundreds of rounds, strong real-world agent benchmarks)
|
|
- Alternative nanobot agent model for tool-heavy tasks: Qwen 3.5:cloud (397B variant)
|
|
- Conservative fallback nanobot agent model: DeepSeek V3.2:cloud
|
|
- OpenRouter is pay-per-token alternative to Ollama subscription for model access
|
|
- Gemini Flash via Google AI Studio Free Tier: 15 RPM limit — unusable for agent work; only viable for simple prompts without tool calls
|
|
- Gemini Flash via Google AI Studio Tier 1 (paid): 360+ RPM
|
|
- Haiku (Claude) 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
|
|
- Both Kimi K2.6 and GLM-5.1 are Chinese-English models without specific Czech training data — both risky for Czech
|
|
- For Czech use with Chinese-English models: always explicitly specify language in system prompt (critical for Kimi K2.6, recommended for GLM-5.1)
|
|
- Kimi K2.6 supports `preserve_thinking` mode for multi-turn agent scenarios (retains reasoning content across turns)
|
|
|
|
## 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` critical issues: one-time `at` reminders fire repeatedly (60s tolerance window), non-atomic YAML writes, fragile manual YAML string construction, missing `list` subcommand, no tests for edit/send scripts, race condition between edit and send without file locking
|
|
- `/remind` fix priorities: P0 = atomic writes + deduplicate one-time reminders; P1 = `list` command + proper YAML serialization + validation; P2 = add tests; P3 = SQLite state tracking + edit command + cron step syntax
|
|
- Daily reminder at 18:00 and 19:00 to fix the BRANO on entrance doors
|
|
- Daily reminder at 19:00 to install pigeon spikes on the window to the shed
|
|
- Weekday reminder at 9:30 to check notebook repair prices for Horáčková
|
|
- Daily reminder at 9:10 to order xshoes
|
|
- Daily reminder at 11:00 and 20:00 to supplement meeting minutes and send them to Přibyl
|
|
- Weekday reminder at 9:20 for an anti-smoking sign in the elevator
|
|
|
|
### NuGet package caching
|
|
- Evaluating NuGet package hosting/caching on Linux
|
|
- Preferred solution: BaGetter (bagetter/BaGetter) — active BaGet fork with multiple upstream mirror support (PR #269), solves original BaGet's single-upstream limitation
|
|
|
|
## Personal Notes
|
|
|
|
- Buy new merino shirt ("koupit nové merino triko")
|
|
- Koupit skleničky z lahví is vína — one-time 2026-06-05 13:30, recurring Sundays 20:30
|
|
- Reminder to write in travel diary: pants, pills, sprinkling ("kalhoty, prášky, sypani")
|
|
- Currently taking antibiotics (started 2026-06-04)
|
|
- Antibiotic reminder schedule confirmed: 23 reminders starting 2026-06-04 at 16:00 and 22:00, then every 8 hours until 2026-06-11 22:00
|
|
|
|
---
|
|
|
|
*This file is automatically updated by nanobot when important information should be remembered.*
|