From f4f3419bde1be000af8ffe4bed3a5bff6eeaf1e3 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Wed, 20 May 2026 04:09:44 +0600 Subject: [PATCH] Failed to authenticate. API Error: 401 Invalid authentication credentials [2026-05-20] vault sync --- wiki/tech/kraken-network.md | 19 ++++++++++++++-- wiki/tech/reflect-skip-fuse.md | 40 ++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 wiki/tech/reflect-skip-fuse.md diff --git a/wiki/tech/kraken-network.md b/wiki/tech/kraken-network.md index 9806046f..7ce662c0 100644 --- a/wiki/tech/kraken-network.md +++ b/wiki/tech/kraken-network.md @@ -18,8 +18,8 @@ confidence: high | Host | IP | Notes | |------|----|-------| -| Kraken | 192.168.1.14 | LAN (eth0, DHCP static lease). `ssh kraken` | -| Kraken WiFi | 192.168.1.15 | wlan0 (ASUS5), активен с 2026-05-19 | +| Kraken | 192.168.1.15 | wlan0 (ASUS5), основной. `ssh kraken`. eth0 отключён | +| Kraken eth0 | 192.168.1.14 | DHCP static lease, **неактивен** | | HTPC | 192.168.1.86 | Bazzite, LAN | ## Важные правила @@ -32,6 +32,21 @@ confidence: high Kraken имеет WireGuard адрес 10.99.1.2 (через VPS 91.207.28.205). Используется только как резервный путь при недоступности LAN. +### wg-auto.sh (Eagle-side, macOS) + +Авто-управление WireGuard-туннелем на Eagle (ноутбуке): +- Polling каждые 30 секунд +- `AbandonProcessGroup=true` в plist (корректное завершение) +- Проверка туннеля: `ifconfig | grep 10.99.0.2` +- Поднятие/опускание через `wg_up()` с очисткой старого интерфейса +- `wg0.conf`: **без `DNS=`** — вместо этого PostUp создаёт `/etc/resolver/kraken` (nameserver 10.99.0.1), PostDown удаляет. **Без `killall mDNSResponder`** — не нужно. + +### Сетевые интерфейсы Kraken + +- `wlan0` (192.168.1.15, MAC `2c:cf:67:64:03:f4`, ASUS5) — **основной**, static lease на роутере +- `eth0` — отключён +- `ssh kraken` резолвится в **192.168.1.15** (wlan0) + ## Kodi на HTPC - Library: `/run/media/bazzite/Data/kodi/{movies,series}` — симлинки на реальные файлы diff --git a/wiki/tech/reflect-skip-fuse.md b/wiki/tech/reflect-skip-fuse.md new file mode 100644 index 00000000..ef91c938 --- /dev/null +++ b/wiki/tech/reflect-skip-fuse.md @@ -0,0 +1,40 @@ +--- +title: reflect-skip Skip Fuse — New SwiftUI View Stub +created: '2026-05-20' +updated: '2026-05-20' +type: reference +tags: + - reflect + - skip + - swiftui + - kotlin + - pitfall +--- +# reflect-skip Skip Fuse — Adding a New SwiftUI View + +## Problem + +При добавлении нового SwiftUI View-файла в `Sources/ReflectApp/Views/` Skip Fuse **не создаёт Kotlin-стаб автоматически**. Приложение крашится с `ClassNotFoundException` при запуске. + +## Fix — создать Kotlin-стаб вручную + +Нужно создать стаб в **обоих** местах: + +1. `DerivedData/.../reflect-skip.output/ReflectApp/skipstone/ReflectApp/src/main/kotlin/reflect/app/` +2. `.build/plugins/outputs/reflect-skip/ReflectApp/destination/skipstone/ReflectApp/src/main/kotlin/reflect/app/` + +**Шаблон:** скопировать `OnboardingView.kt`, заменить: +- Имя класса +- `@State` vars + +Constructor принимает closure-параметры. + +После создания стабов: + +```bash +skip gradle assembleDebug +``` + +## Проект + +`~/Developer/reflect-skip`