[2026-10-15] eagle: family/how-to/vault-git-sync.md personal/how-to/ipad-ios935-build-deploy.md personal/how-to/ipad-vault-sync.md personal/projects/virfield.md
This commit is contained in:
1 parent
abdaa69c49
commit
51738b096d
4 files changed
+26
-4
No files matched your search
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: Vault Git Sync — Architecture & Scripts
|
||||
updated: '2026-09-22'
|
||||
updated: '2026-10-15'
|
||||
type: tech
|
||||
tags:
|
||||
- vault
|
||||
@@ -127,7 +127,7 @@ Obsidian vault is a bare git repo on TrueNAS:
|
||||
`/mnt/RED_2TB/storage/git/obsidian-vault.git`
|
||||
Also mirrored in Gitea: `https://git.mallexxx.duckdns.org/git_admin/obsidian-vault`
|
||||
|
||||
Four clients sync to it: Eagle, Kraken, Taiga (vault), Taiga (syncthing/phone).
|
||||
Five clients sync to it: Eagle, Kraken, Taiga (vault), Taiga (syncthing/phone), iPad (Edhita Documents).
|
||||
|
||||
## Architecture
|
||||
|
||||
@@ -164,6 +164,7 @@ No stash. No GIT_DIR/GIT_WORK_TREE workarounds.
|
||||
| Eagle | `~/scripts/sync-vault.sh` | full clone | **launchd** `com.sync-vault` (⚠️ НЕ Hermes cron) `StartInterval=300` |
|
||||
| Kraken | `~/scripts/sync-vault.sh` | sparse clone | host crontab */5 |
|
||||
| Taiga | `/opt/data/sync-vault.sh` | 3-phase orch. | Hermes cron **`*/5 * * * *`** — job `29851c413903`. ⚠️ `hermes cron list` и поле `schedule_display` в `jobs.json` показывают устаревшее `0 * * * *` (см. поправку в STATE 2026-09-26 выше); фактические тики — каждые 5 мин |
|
||||
| iPad | `/var/mobile/Library/VaultSync/sync-vault.sh` | full working tree, initial shallow clone | **launchd** `local.ipad.obsidian-vault-sync`, mobile, StartInterval300 |
|
||||
|
||||
> **⭐ УТОЧНЕНО 2026-09-02 (Eagle/мак sync-механизм):** автосинка на маке запускается **НЕ Hermes cron, а launchd-агентом** `~/Library/LaunchAgents/com.sync-vault.plist`:
|
||||
> - Программа: `/Users/admin/scripts/sync-vault.sh`, `StartInterval = 300` сек (5 мин)
|
||||
@@ -343,3 +344,7 @@ payload = {
|
||||
- **2026-05-23**: Taiga deleted 32+ wiki files. Root cause: `git add -A` before merge staged deletions of files outside sparse cone. Fixed with scoped `git add`.
|
||||
- **2026-06-01**: "Керамика" lost from gift-ideas. Root cause: `git add $SPARSE_PATHS` failed silently when `.obsidian/` absent — patch+move not committed.
|
||||
- **2026-06-02**: Full architecture migration. Taiga `/vault` converted from `GIT_DIR=bare GIT_WORK_TREE` workaround to proper sparse clone. All clients unified on same `commit→fetch→merge→push` algorithm. Sync interval: every 5 min.
|
||||
|
||||
## iPad iOS9.3.5 — подключён 2026-10-15
|
||||
|
||||
Прямой SSH Git клиент того же TrueNAS bare main, Git2.8.1 от Saurik, отдельный restricted Ed25519 key (только этот repo), persisted TrueNAS user settings. Vault в Documents Edhita/ObsidianVault; task работает от mobile каждые300с и при load. Проверены actual iPad→NAS push и NAS→iPad automatic pull на двух последовательных ticks, Native fixture tests: offline сохранение/retry, conflict остановка без push. Script/last-success/last-result/error logs находятся вне Git vault; core.fileMode=false, auto gc отключён. При конфликте client сохраняет local commit и останавливается до разрешения. Скрипты прочих клиентов не менялись. Полные пути, source/evidence и обслуживание: [[personal/how-to/ipad-vault-sync]].
|
||||
@@ -216,3 +216,7 @@ Fake-sign verification проверил **49 Mach-O**: все armv7, minimum7.0
|
||||
Все оставшиеся worker diagnostics и exact x86_64 Gemfile.lock также экспортированы в `diagnostics-20261015.tar.gz` / `exported-diagnostics`. Процесс сборки/деплоя закончен для четырёх совместимых вариантов; full fork holzschu остаётся архитектурно несовместимым с mini1 в имеющемся бинарном dependency наборе.
|
||||
|
||||
После явного поручения пользователя «Monterrey релизь если больше не нужен» выполнен release только `lease-9c1a94ff2b56b396fee7f1bbd2e0dcea`, idempotency `ipad-editors-release-20261015-9c1a94ff`. Cleanup `job-efbdecc8f058d3b33ab55a2e03c2b448` succeeded в 2026-10-14T18:51:19.492842Z; lease released, runtime не содержит этой VM. Golden image-f8c888… остаётся image_ready. Final reproducible source payload `worker-input-final-20261015.tar.gz` содержит все compatibility patches; Flutter SDK архив хранится отдельно. Дополнительных release/recovery вне собственной Monterey VM не выполнялось.
|
||||
|
||||
## Обновление: vault sync настроен 2026-10-15
|
||||
|
||||
После отдельного поручения пользователя настроен native Git2.8.1→TrueNAS bare SSH→launchd300s клиент от mobile, vault в Documents Edhita/ObsidianVault. Dedicated Ed25519 key ограничен exact vault Git operations и persisted в TrueNAS user settings. Actual push iPad→NAS и automatic pull NAS→iPad подтверждены; два последовательных scheduled ticks прошли exit0, позднейший третий также ok. Isolated native tests подтвердили offline сохранение/retry, conflict остановку без push, stale empty lock recovery. Folder виден в Edhita. Это заменяет прежний build-only checkpoint о ненастроенном синке; собственного GitJournal remote эта настройка не касается. Полная актуальная инструкция: [[personal/how-to/ipad-vault-sync]].
|
||||
@@ -60,7 +60,7 @@ launchctl list local.ipad.obsidian-vault-sync
|
||||
launchctl start local.ipad.obsidian-vault-sync
|
||||
```
|
||||
|
||||
Изолированные тесты на настоящем Git2.8/Bash4 iPad прошли: push локальной заметки, pull peer-заметки, сохранение offline edits/retry, остановка на конфликте без изменения remote. Лог на Mac `test-results.log`; fixtures retained `/var/mobile/Library/VaultSync/test-20261014T192932Z-3600`. Первый production manual sync завершился успешно, local/NAS main совпали `9bc1a2847ef2fce0172ecf1f9f6ae87db7c68920`. Проверка production roundtrip и работающего scheduler записывается ниже после завершения.
|
||||
Изолированные тесты на настоящем Git2.8/Bash4 iPad прошли: push локальной заметки, pull peer-заметки, сохранение offline edits/retry, остановка на конфликте без изменения remote. Лог на Mac `test-results.log`; fixtures retained `/var/mobile/Library/VaultSync/test-20261014T192932Z-3600`. Первый production manual sync завершился успешно, local/NAS main совпали `9bc1a2847ef2fce0172ecf1f9f6ae87db7c68920`. Production roundtrip и автоматический scheduler проверены; результаты ниже.
|
||||
|
||||
См. [[personal/how-to/ipad-ios935-build-deploy]].
|
||||
|
||||
@@ -68,4 +68,8 @@ launchctl start local.ipad.obsidian-vault-sync
|
||||
|
||||
Первый запуск launchd от mobile завершился exit0; iPad создал эту заметку и отправил в NAS main commit `98b9dafcddf3dd6e4248619c25f434146c4035d5` (19:34:04 UTC 2026-10-14).
|
||||
|
||||
Контроль NAS→iPad: `ipad-vault-peer-check-20261015`. Эта строка добавлена через отдельный peer clone к NAS; доставка проверяется следующим автоматическим tick на iPad.
|
||||
Контроль NAS→iPad: `ipad-vault-peer-check-20261015`. Эта строка добавлена через отдельный peer clone к NAS и получена iPad автоматическим tick в19:39:11UTC 2026-10-14.
|
||||
|
||||
Итог: **синк настроен и включён**. Первое автоматическое выполнение стартовало19:33:58UTC, завершилось19:34:04UTC; следующий tick без ручного запуска завершился19:39:11UTC. После второго tick local/NAS main равны `68eb11d85c2f956cc33253a4a2eba2f542dcaf0d`, контрольная peer-строка присутствует на iPad, LastExitStatus0 /last-result ok. Edhita screenshot подтверждает видимость Documents/ObsidianVault и сохранение example. Последующие server commits получаются очередным tick; равенство SHA проверяется на каждом успешном запуске.
|
||||
|
||||
Диагностические ограничения: NAS push сообщает ignored hooks/post-receive (не executable); фактическое обновление bare main и доставка Mac/iPad проверены, Gitea mirror отдельно не проверялся. Базовый dpkg сообщил отсутствующие file lists для старых unrar/gzip/p7zip; установка выбранных новых packages и native Git запуск успешны, чужие packages не ремонтировались.
|
||||
@@ -197,3 +197,12 @@ Replacement `lease-9c1a94ff2b56b396fee7f1bbd2e0dcea` ready, actual macOS12.7.6/X
|
||||
Два новых disposable clones именно свежего `ipad-editors-monterey-xcode-1341-20261014` (`lease-ef13cff121fecbc93f3a43a12b915702`, `lease-990032a673fa5826a2efa6396c271294`) прошли native WhenUnlocked add/read/data comparison/delete отдельно в Aqua и новом SSH до/после настоящего reboot с новым boot UUID/nonce; actual GUI 1920×1080, exact OS/build/SIP, разные SSH host keys и cross-key rejection, artifact export, RFB desktop, подтверждённый release и отказ обоих tunnels после release. Оба own VM удалены, iPad golden сохранён. Private evidence `/private/tmp/virfield-installed-monterey-pixel-4a53b67-20261015/journal.json`.
|
||||
|
||||
Это закрывает воспроизведённый display-before-keychain defect свежего Monterey. Старый Samsung Monterey, Ventura, macOS 27 и HTPC native matrix ещё выполняются отдельно; current connected MCP по-прежнему возвращает исторический Lume runbook, owning-client reconnect не принят. Factory/private GHCR roundtrip ещё не запускался. Это не acceptance всей DDG UI-suite или всего v3 roadmap.
|
||||
|
||||
|
||||
## Installed Tart matrix — 2026-10-14 19:48 UTC
|
||||
|
||||
Все четыре configured Tart profiles приняты на installed `4a53b67`: fresh iPad Monterey, Samsung Monterey, Ventura/Xcode15.2 и macOS27. По два свежих клона на каждый профиль (8/8). Каждый прошёл native GUI/новый SSH WhenUnlocked I/O до/после реального reboot с новым boot UUID/nonce и сохранённым pinned host key; actual GUI1920×1080, exact OS/build/SIP, cross-key rejection, разные host keys, artifact export, RFB desktop, штатный release и SSH/desktop revocation. Все own VM отсутствуют; семь goldens сохранены. Journals `/private/tmp/virfield-installed-monterey-pixel-4a53b67-20261015` и `/private/tmp/virfield-installed-tart-native-4a53b67-20261015`.
|
||||
|
||||
Дополнительно найден native Apple browser defect: trustedOrigin требовал `state_dir == deployment`, что несовместимо с действующим separate state `~/.virfield-tart`. Исправление source `8e07015cde200a41fee6b490da97a44437803d7f` разрешает отдельный private owner state, проверяет владельца/права deployment/config/state, отвергает config/state symlink и не-loopback/подменённый origin. Реальный compiled Swift trust check на текущем config PASS; boundary regression tests, full make check (10 Python tests + Go race) PASS, source pushed. New exact package `virfield-v0.0.0-browser-state-darwin-arm64.tar.gz`, SHA256 `63c697126d63d3be3160ce57848d0338d2dfd1fe04a2ebbd267e105103b510e6`; установка выполняется после Tart cleanup. VM code/guest script этого коммита идентичны принятому `4a53b67`.
|
||||
|
||||
Lume повторно подтверждён disabled/unloaded, port7777closed. HTPC secured goldens всё ещё0444; отдельный permission question пользователю остаётся pending, chmod не выполнялся. Live HTPC native matrix, portable private GHCR roundtrip, current owning MCP reconnect и live restore/rollback остаются gates.
|
||||
Reference in new issue
Block a user