Add TODO.md: verified remaining gaps (sleep/energy, cron, dead memory layers, tool-runtime, config, tests, Telegram SSL, Spark arch)

This commit is contained in:
n1kt4r committed 2026-09-23 14:06:46 +05:00
1 parent bae171d6b4
commit 288d05825f
2 files changed
+70 -4

No files matched your search

+7 -4
View File
@@ -94,10 +94,13 @@ const telegram = new TelegramMessenger({
## Roadmap (P6+) ## Roadmap (P6+)
- [ ] Sleep & energy (циркадный ритм) Полный список незакрытых задач — в [TODO.md](./TODO.md).
- [ ] Web UI (persona setup)
- [ ] Sleep & energy (циркадный ритм) Кратко:
- [ ] Web UI (persona setup) - P6: sleep & energy, cron-планировщик, рабочие слои памяти (notepads / core self) в цикле mind, tool-runtime для под-агентов
- P7: Web UI (persona setup), конфиг/.env, retry+timeout, тесты
- Каналы: Telegram — обход SSL-проблемы bot.qw4.ru
- Движок: Spark X2.5-4B (unknown architecture в Ollama)
## License ## License
+63
View File
@@ -0,0 +1,63 @@
# spark-mind — Оставшиеся TODO
Статус: **P0–P5 завершены** (heartbeat→mind, JSON output, embeddings, sub-agents,
SQLite, Telegram). Ниже — реально незакрытые пункты, проверенные по коду
(2026-09-15). Порядок — по приоритету.
## P6 — Функциональная полнота
- [ ] **Sleep & energy (циркадный ритм).** Сейчас heartbeat тикает всегда
с фиксированным интервалом 5 мин. Нужно: окна активности/сна, накопление
«энергии», снижение частоты тиков в пассивные периоды.
- [ ] **Планировщик задач (cron).** Тип триггера `{ type: 'task' }` объявлен
в `heartbeat.ts`, но **ничто его не эмитит** — планировщика нет
(`scheduleNext` — это idle-таймер, не cron). Нужен движок отложенных задач.
- [ ] **Рабочая память (notepads) в цикле mind.** Таблица `notepads` и методы
`updateNotepad()`/`getNotepad()` реализованы, но **вне memory.ts не
вызываются** — слой не участвует в `handleTick`.
- [ ] **Core self (self_observations) в цикле mind.** Аналогично: `addSelfObservation()` /
`getAllSelfObservations()` реализованы, но из mind не вызываются.
Самосознательность не накапливается автоматически.
- [ ] **Реальное исполнение инструментов под-агентов.** `subagent.ts` объявляет
список tools (web_search, terminal, file_write…), но это **строки-декларации** —
исполнения нет. Нужен tool-runtime для под-агентов.
## P7 — Инфраструктура
- [ ] **Web UI (persona setup).** Настройка 8 слоёв persona через интерфейс
вместо `DEFAULT_PERSONA` в коде.
- [ ] **Конфиг / .env.** URL-ы Ollama (`localhost:11434`), dbPath, Telegram
захардкожены в `index.ts`. Вынести в конфиг/`.env`.
- [ ] **Retry + timeout для LLM-запросов.** `fetch` в `mind.ts` и `embedding.ts`
без retry и без `AbortController` — один сетевой сбой роняет тик.
- [ ] **Тесты.** Их нет вообще. Минимум: unit на `parseSparkOutput` (nested JSON,
fences, fallback), на `Database` CRUD, на cosine-поиск.
## Каналы вывода
- [ ] **Telegram: обход SSL-проблемы bot.qw4.ru.** Сервер отдаёт
`tlsv1 unrecognized name` (SSL alert 112) при TLS-handshake — проблема
на стороне сервера, не клиента (проверено curl-ом и Node https).
Агент сейчас работает в console-only fallback. Варианты: починить
SNI/сертификат на qw4.ru, поднять локальный MAX-релей, или другой канал
(Telegram Bot API напрямую).
## Движок
- [ ] **Spark X2.5-4B.** Не грузится в текущей Ollama:
`error loading model: unknown model architecture: 'spark2_5'`.
Варианты: собрать совместимый GGUF, поднять через llama.cpp напрямую
(OpenAI-сервер на :8080), или оставить Ornith-1.5-9B как основной движок.
**Важно:** локальные модели пумолкают (пустой ответ), если `subAgent`
присутствует в JSON-схеме structured output — учитывать при правках промпта.
## Косметика
- [ ] Устаревший doc-комментарий в `mind.ts`: класс `SparkLLMClient` всё ещё
описан как «Реальный LLM-клиент для Spark X2.5-4B. В MVP — заглушка»,
хотя работает с Ornith-9B и без заглушки.
- [ ] Дефолтное имя модели в конструкторе `SparkLLMClient` = `'spark-x2.5-4b'`
(index.ts переопределяет на `ornith-1.5-9b:latest`, но дефолт вводит в заблуждение).
---
Проверено `grep`-ом по коду: dead-code слои, отсутствие cron/retry/tests/.env, SSL-ошибка Telegram.