diff --git a/work/plans/kraken-obsidian-write-bug.md b/work/plans/kraken-obsidian-write-bug.md index d3a2a81d..2edae6c6 100644 --- a/work/plans/kraken-obsidian-write-bug.md +++ b/work/plans/kraken-obsidian-write-bug.md @@ -3,52 +3,31 @@ **Date**: 2026-05-14 **Status**: Fixed ✅ (2026-05-14) -## Symptom +## Root Cause (confirmed) -Кракен (Hermes на RPi через Aide app) не может записывать заметки в Obsidian vault. При попытке создать файл в `family/how-to/` или `personal/how-to/` — получает `Permission denied`. +mcpvault возвращает `Permission denied` по двум причинам: +1. **Папка не существует** в sparse checkout — mcpvault не создаёт субдиректории +2. **Ownership mismatch** — Hermes/mcpvault внутри контейнера работает как `hermes` (uid=10000), vault принадлежит `kraken` (uid=1000), права `755` → запись запрещена -## Evidence +## Fix Applied -Из сессии Кракена 2026-05-14 05:20 (session_api-e59bba9a32fc9d52): -``` -Tool mcp_obsidian_write_note returned error: "Error: Permission denied: family/how-to/hermes-agent-cron-plans.md" -Tool mcp_obsidian_write_note returned error: "Error: Permission denied: personal/how-to/hermes-agent-cron-plans.md" -``` +1. Созданы все нужные папки в vault (Eagle → push на NAS → Кракен pull): + - `personal/inbox/`, `personal/plans/`, `personal/documents/`, `personal/instructions/`, `personal/projects/` +2. `chmod -R a+w ~/obsidian/personal ~/obsidian/family` на хосте Кракена +3. В `sync-vault.sh` добавлен `chmod -R a+w` после каждого pull — чтобы права восстанавливались на новых файлах +4. SOUL.md обновлён — явно перечислены все пути в `personal/` -Кракен остановился по правилу трёх попыток. **Задача не сохранена.** +## Open: Image Handling -## What Was Lost +Отдельная проблема обнаружена при попытке сохранить фото из Telegram в inbox. -Надиктованная задача (содержание): -> "Собирать планы из Obsidian в executor чтобы по крону запускались конкретные работы — не как сейчас что каждый агент по поставленной задаче, а чтобы автоматически спавнились если в папке Obsidian есть работа." +**Что произошло**: Gemini API кончились кредиты (HTTP 429) → fallback на OpenRouter (gpt-oss-120b, minimax-m2) → эти модели не умеют vision → ошибка "No endpoints found that support image input" -(Эта задача совпадает с п.3 текущего planning треда — уже записана в `executor-spawning-research.md`.) +**Желаемое поведение**: агент должен уметь работать с изображениями на уровне ФС в зависимости от контекста: +- Если нужно распознать/проанализировать → пустить в vision-capable модель +- Если нужно просто сохранить → положить файл в `personal/inbox/` и записать заметку со ссылкой на путь +- Если модель не умеет vision → не падать, а сохранить файл и сообщить агенту путь -## Likely Cause +**Что нужно в Hermes**: при `image_routing` добавить режим `save_to_fs` — сохранить файл локально, передать агенту путь вместо байтов. Агент сам решает что делать по контексту. -`mcpvault` MCP сервер возвращает `Permission denied` когда целевая субдиректория не существует в sparse checkout Кракена. В sparse checkout входит только `personal/` и `family/` — но не все поддиректории внутри них. - -Контейнер запускается как root (uid=0), vault принадлежит kraken (uid=1000) — возможно `mcpvault` отказывает из-за ownership mismatch при создании новых файлов. - -## Fix Required - -Два изменения: - -1. **SOUL.md Кракена** — добавить явный путь для задач/планов: - ``` - personal/plans/ — задачи, идеи, планы (надиктованные или записанные) - ``` - Сейчас в SOUL.md перечислены только `family/how-to/`, `family/documents/`, `family/contacts/`, `family/schedule/`, `personal/` — нет конкретного места для планов, поэтому агент придумывает пути сам. - -2. **Создать директорию** `personal/plans/` в vault (через Eagle, т.к. Кракен не может писать). - -## What Needs Investigation - -1. Какие директории реально существуют в `/vault/` на Кракене? -2. `mcpvault` создаёт субдиректории сам или требует их существования? -3. Ownership mismatch root vs kraken — влияет ли на write через MCP? - -## Related - -- Также в git log видны 401 ошибки при `git push` — отдельная проблема (нет SSH ключа в контейнере для auth на TrueNAS) -- Docker volume `/home/kraken/obsidian:/vault:rw` — маунт RW, значит проблема не в Docker +**Текущий workaround**: пополнить Gemini API кредиты на Кракене.