58 lines
3.1 KiB
Markdown
58 lines
3.1 KiB
Markdown
---
|
||
title: "Bug: Kraken Obsidian Write"
|
||
aliases:
|
||
- "Kraken write bug"
|
||
- "obsidian write bug"
|
||
- "kraken-obsidian-write-bug"
|
||
created: '2026-05-14'
|
||
updated: '2026-05-31'
|
||
tags:
|
||
- personal-os
|
||
- kraken
|
||
- bug
|
||
- obsidian
|
||
- fixed
|
||
related:
|
||
- "[[family/how-to/kraken-access]]"
|
||
- "[[personal/projects/personal-os/executor-security-analysis]]"
|
||
---
|
||
# Bug: Kraken Cannot Write to Obsidian Vault
|
||
|
||
**Date**: 2026-05-14
|
||
**Status**: Fixed ✅ (2026-05-14)
|
||
|
||
## Root Cause (confirmed)
|
||
|
||
mcpvault возвращает `Permission denied` по двум причинам:
|
||
1. **Папка не существует** в sparse checkout — mcpvault не создаёт субдиректории
|
||
2. **Ownership mismatch** — Hermes/mcpvault внутри контейнера работает как `hermes` (uid=10000), vault принадлежит `kraken` (uid=1000), права `755` → запись запрещена
|
||
|
||
## Fix Applied
|
||
|
||
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
|
||
|
||
Отдельная проблема обнаружена при попытке сохранить фото из Telegram в inbox.
|
||
|
||
**Что произошло**: Gemini API кончились кредиты (HTTP 429) → fallback на OpenRouter (gpt-oss-120b, minimax-m2) → эти модели не умеют vision → ошибка "No endpoints found that support image input"
|
||
|
||
**Желаемое поведение**: агент должен уметь работать с изображениями на уровне ФС в зависимости от контекста:
|
||
- Если нужно распознать/проанализировать → пустить в vision-capable модель
|
||
- Если нужно просто сохранить → положить файл в `personal/inbox/` и записать заметку со ссылкой на путь
|
||
- Если модель не умеет vision → не падать, а сохранить файл и сообщить агенту путь
|
||
|
||
**Что нужно в Hermes**: при `image_routing` добавить режим `save_to_fs` — сохранить файл локально, передать агенту путь вместо байтов. Агент сам решает что делать по контексту.
|
||
|
||
**Текущий workaround**: пополнить Gemini API кредиты на Кракене.
|
||
|
||
---
|
||
|
||
## Связанные заметки
|
||
- [[family/how-to/kraken-access|Kraken Access]]
|
||
- [[personal/projects/personal-os/executor-security-analysis|Executor Security Analysis]]
|