mirror of
https://gitverse.ru/kpa39l/memory-os.git
synced 2026-09-29 09:35:05 +00:00
Initial commit: Hermes skill memory-os
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# WebDAV Migration & Sync Pipeline Fix — 2026-07-16
|
||||
|
||||
## Change: s3fs → WebDAV as Obsidian Vault Source
|
||||
|
||||
**Problem:** The s3fs mount at `/opt/hermes/obsidian-vault/` (via Garage S3 `s3.nixg.ru`) was empty — only `.` and `..` in the directory, no actual files. sync_obsidian_to_wiki.py couldn't copy anything. C1 was blocked.
|
||||
|
||||
**Diagnosis:**
|
||||
- `/etc/fstab` had s3fs entry pointing at `s3.nixg.ru` (Garage)
|
||||
- `mount | grep s3fs` showed the mount was active but directory contained 0 files
|
||||
- `/mnt/yandex-disk/` (Yandex Disk via davfs2 WebDAV) had a working `obsidian/mozg/` vault with 65 .md files
|
||||
|
||||
**Fix:** Changed `OBSIDIAN_VAULT` from `/opt/hermes/obsidian-vault` to `/mnt/yandex-disk/obsidian/mozg/`.
|
||||
|
||||
**First run:** 74 files copied in 44 seconds, 0 errors.
|
||||
|
||||
## Blocker 2: sync → ingest chain broken
|
||||
|
||||
**Symptom:** The sync script finishes copying, then tries to call `wiki_continuous_ingest.py` with bare `python3` — crashes with `ModuleNotFoundError: No module named 'arq'`.
|
||||
|
||||
**Root cause:** `sync_obsidian_to_wiki.py` line 162 does `os.system(f"python3 {ingest_script}")`. System python3 does NOT have `arq` (only installed in project `.venv/`).
|
||||
|
||||
**Fix:** Changed to `/opt/hermes/memory-os/.venv/bin/python3 {ingest_script}`.
|
||||
|
||||
## Safety Guarantee
|
||||
|
||||
The user explicitly asked for protection against Hermes deleting files in their Obsidian vault. Confirmed:
|
||||
|
||||
- **Code-level:** sync_obsidian_to_wiki.py only reads source (via `os.walk()` + `copy2()`). All deletions (`unlink()`) target `WIKI_TARGET`, never `OBSIDIAN_VAULT`. This was true before the change and remains true after.
|
||||
- **Filesystem-level:** davfs2 mounts with `file_mode=600` — the user process itself can only write with explicit sudo. The sync script runs as user `estorozhenko`.
|
||||
- **Memory-level:** Added read-only guarantee to user profile.
|
||||
|
||||
**Lesson:** When the user expresses concern about data safety, (1) show code evidence that it's already safe, (2) add explicit protection in memory/skill, (3) explain trade-offs (read-only mount vs full POSIX) so they can make informed decisions.
|
||||
Reference in New Issue
Block a user