From 4e201d4ab707779bd9eeb4d88851eaa004ac3f6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=B0=D0=B9=D0=B3=D0=B0?= Date: Fri, 29 May 2026 08:02:10 +0000 Subject: [PATCH 1/3] taiga-local-1780041730 --- family/_index.md | 0 family/contacts/birthdays.md | 0 family/contacts/service-providers.md | 0 family/contacts/services.md | 0 family/documents/altai-electricity-meter.md | 0 family/documents/altai-house-inventory.md | 0 family/documents/altai-shopping.md | 0 family/documents/books-reading-list.md | 0 family/documents/books-wishlist.md | 0 family/documents/bring-to-russia.md | 0 family/documents/car-notes.md | 0 family/documents/fasteners-nomenclature.md | 0 family/documents/flea-market-shopping.md | 0 family/documents/gift-ideas.md | 0 family/documents/google-books-api-key.md | 0 family/documents/hiking-packing-list.md | 0 family/documents/holiday-food.md | 0 family/documents/home-access-codes.md | 0 family/documents/home-automation-wishlist.md | 0 family/documents/home-wishlist.md | 0 family/documents/karaoke-songs.md | 0 family/documents/kids-activities.md | 0 family/documents/kids-songs.md | 0 family/documents/lerua-shopping.md | 0 family/documents/loyalty-cards.md | 0 family/documents/party-games.md | 0 family/documents/places-to-visit.md | 0 family/documents/recipes-wishlist.md | 0 family/documents/shopping-lists.md | 0 family/documents/shopping-order.md | 0 family/documents/trip-packing-list.md | 0 .../documents/vault-sync-2026-05-13-08-01.md | 0 family/documents/vault-sync-2026-05-20.md | 0 family/documents/vault-sync-2026-05-21.md | 0 .../vault-sync-summary-2026-05-22.md | 0 .../documents/vault-sync/2026-05-13-sync.md | 0 .../documents/vault-sync/2026-05-15-sync.md | 0 .../vault-sync/2026-05-22-vault-sync.md | 0 family/documents/vault-sync/2026-05-23.md | 0 family/documents/vault-sync/20260514.md | 0 family/documents/книги-ребенку.md | 0 family/how-to/arduino-programming.md | 0 family/how-to/home-automation.md | 0 family/how-to/htpc-access.md | 0 family/how-to/htpc-emulators-setup.md | 0 family/how-to/htpc-gaming-plans.md | 0 family/how-to/htpc-magic4pc.md | 0 family/how-to/htpc-migration-plan.md | 0 .../how-to/htpc-steam-nonsteam-shortcuts.md | 0 family/how-to/htpc-system.md | 0 family/how-to/htpc-webos-luna.md | 0 family/how-to/htpc.md | 0 family/how-to/kraken-access.md | 0 family/how-to/kraken-portainer-access.md | 0 family/how-to/lg-remote-keys.md | 0 family/how-to/magic4pc-webos.md | 0 family/how-to/mesh-networks.md | 0 family/how-to/mp3-bluetooth-remote.md | 0 family/how-to/navidrome-truenas-android.md | 0 family/how-to/nodered-ventilation.md | 0 family/how-to/obsidian-android-sync.md | 0 family/how-to/obsidian-sync.md | 0 family/how-to/openmediavault-rpi5.md | 0 family/how-to/router-bishkek-asus.md | 0 family/how-to/samsung.md | 0 family/how-to/speaker-sd-card-music.md | 0 family/how-to/switch-emulation-rom-infra.md | 0 family/how-to/truenas-rclone-backup.md | 0 family/how-to/tv-luna-send.md | 0 family/how-to/vault-sync-log-2026-05-15.md | 0 family/how-to/vault-sync-logs/2026-05-14.md | 0 family/how-to/vault-sync-summary.md | 0 family/how-to/virtual-keyboard-bazzite.md | 0 family/how-to/wireguard-vpn.md | 0 family/how-to/xgimi-play6-setup.md | 0 family/how-to/xgimi-play6.md | 0 family/how-to/xiaomi-wifi-fix.md | 0 family/index.md | 0 family/logs/vault-sync-2026-05-22.md | 0 family/parenting/father-profile.md | 0 family/parenting/liza-profile.md | 0 family/parenting/natalia-profile.md | 0 family/projects/aide-kraken-backend.md | 0 family/projects/htpc-windows-games-fix.md | 0 family/projects/media-pipeline-agent.md | 0 family/projects/media-toolbox-kraken.md | 0 family/projects/media-toolbox-taiga.md | 0 family/projects/watchlist-discover.md | 0 family/projects/watchlist-sync.md | 0 family/schedule/reminders.md | 0 family/schedule/vacation-july-august-2026.md | 0 family/schedule/weekend-plans.md | 0 family/sort/duty-free-список.md | 0 family/sort/feedback-идеи.md | 0 family/sort/grohe-ключ-активации.md | 0 family/sort/keep-2023-09-13_15_03_43.md | 0 family/sort/keep-2023-09-24_14_40_48.md | 0 family/sort/keep-2023-10-10_11_15_25.md | 0 family/sort/keep-2023-11-12_18_59_50.md | 0 family/sort/keep-2023-11-14_00_41_19.md | 0 family/sort/keep-2023-11-14_00_41_20.md | 0 family/sort/keep-2023-11-14_00_41_21.md | 0 family/sort/keep-2023-11-14_00_41_22.md | 0 family/sort/keep-2023-11-14_00_41_23.md | 0 family/sort/keep-2023-11-14_00_41_25.md | 0 family/sort/keep-2023-11-14_00_41_26.md | 0 family/sort/keep-2023-11-14_00_41_27.md | 0 family/sort/keep-2023-11-14_00_41_28.md | 0 family/sort/keep-2023-11-14_00_41_29.md | 0 family/sort/keep-2023-11-14_00_41_30.md | 0 family/sort/keep-2023-11-14_00_41_31.md | 0 family/sort/keep-2023-11-14_00_41_32.md | 0 family/sort/keep-2023-11-14_00_41_34.md | 0 family/sort/keep-2023-11-14_00_41_35.md | 0 family/sort/keep-2023-11-14_00_41_37.md | 0 family/sort/keep-2023-11-14_00_41_38.md | 0 family/sort/keep-2023-11-14_00_41_39.md | 0 family/sort/keep-2023-11-14_00_41_40.md | 0 family/sort/keep-2023-11-14_00_41_41.md | 0 family/sort/keep-2023-11-14_00_41_43.md | 0 family/sort/keep-2023-11-14_00_41_44.md | 0 family/sort/keep-2023-11-14_00_41_45.md | 0 family/sort/keep-2023-11-14_00_41_46.md | 0 family/sort/keep-2023-11-14_00_41_47.md | 0 family/sort/keep-2023-11-14_00_41_48.md | 0 family/sort/keep-2023-11-14_00_41_49.md | 0 family/sort/keep-2023-11-14_00_41_50.md | 0 family/sort/keep-2023-11-14_00_41_51.md | 0 family/sort/keep-2023-11-14_00_41_52.md | 0 family/sort/keep-2023-11-14_00_41_53.md | 0 family/sort/keep-2023-11-14_00_41_54.md | 0 family/sort/keep-2023-11-14_00_41_55.md | 0 family/sort/keep-2023-11-14_00_41_56.md | 0 family/sort/keep-2023-11-14_00_41_57.md | 0 family/sort/keep-2023-11-14_00_41_59.md | 0 family/sort/keep-2023-11-14_00_42_00.md | 0 family/sort/keep-2023-11-14_00_42_01.md | 0 family/sort/keep-2023-11-14_00_42_02.md | 0 family/sort/keep-2023-11-14_00_42_03.md | 0 family/sort/keep-2023-11-14_00_42_05.md | 0 family/sort/keep-2023-11-14_00_42_06.md | 0 family/sort/keep-2023-11-14_00_42_07.md | 0 family/sort/keep-2023-11-14_00_42_08.md | 0 family/sort/keep-2023-11-14_00_42_10.md | 0 family/sort/keep-2023-11-14_00_42_11.md | 0 family/sort/keep-2023-11-14_00_42_12.md | 0 family/sort/keep-2023-11-14_00_42_13.md | 0 family/sort/keep-2023-11-28_22_23_01.md | 0 family/sort/keep-2024-03-03_11_57_34.md | 0 family/sort/keep-2024-05-17_22_10_53.md | 0 family/sort/keep-2024-07-04_10_51_13.md | 0 family/sort/keep-2024-08-31_13_54_16.md | 0 family/sort/keep-2024-09-28_11_04_08.md | 0 family/sort/keep-2024-10-12_05_39_05.md | 0 family/sort/keep-2024-11-02_00_03_55.md | 0 family/sort/keep-2024-12-06_22_30_09.md | 0 family/sort/keep-2025-01-20_16_59_24.md | 0 family/sort/keep-2025-02-04_12_19_41.md | 0 family/sort/keep-2025-02-07_12_04_37.md | 0 family/sort/keep-2025-02-13_00_29_53.md | 0 family/sort/keep-2025-03-08_23_14_38.md | 0 family/sort/keep-2025-03-21_22_52_16.md | 0 family/sort/keep-2025-06-16_10_36_48.md | 0 family/sort/keep-2025-07-27_15_41_12.md | 0 family/sort/keep-2025-09-14_11_59_05.md | 0 family/sort/keep-2025-12-05_17_53_00.md | 0 family/sort/keep-2025-12-10_15_45_54.md | 0 family/sort/keep-2026-02-04_14_44_55.md | 0 family/sort/keep-2026-03-23_12_14_12.md | 0 family/sort/performance-review-вопросы.md | 0 family/sort/pinduoduo-заказ.md | 0 family/sort/zoom-ссылка.md | 0 family/sort/алтай-счётчик-заявление.md | 0 family/sort/антирадар.md | 0 family/sort/взять-на-алтай-короткий.md | 0 family/sort/взять-на-алтай-стройматериалы.md | 0 family/sort/вино.md | 0 family/sort/витамины-и-таблетки.md | 0 family/sort/вопросы-по-погребу.md | 0 family/sort/генерация-идей-творчество.md | 0 family/sort/документы-военкомат.md | 0 family/sort/долги-и-расчёты.md | 0 family/sort/задачи-по-фасадам.md | 0 family/sort/идея-бренда.md | 0 family/sort/инн-второй.md | 0 family/sort/инн.md | 0 family/sort/код-котла-vaillant.md | 0 family/sort/код-от-лестницы.md | 0 family/sort/код-садика.md | 0 family/sort/код-чемодан.md | 0 family/sort/коды-сейфа.md | 0 family/sort/конкурсы-и-игры-на-вечеринке.md | 0 family/sort/контакт-андрей-исаев-ddg.md | 0 family/sort/кофр-размер.md | 0 family/sort/лдсп-размер-на-стиралку.md | 0 family/sort/лизе-на-день-рождения.md | 0 family/sort/лыжи-размеры.md | 0 family/sort/мтс-тариф-посекундный.md | 0 family/sort/музыкальные-жанры-рекомендации.md | 0 family/sort/настойки-рецепты.md | 0 family/sort/номера-строителей.md | 0 family/sort/ошибки-семинара.md | 0 family/sort/пин-налог-кг.md | 0 family/sort/пин.md | 0 family/sort/показания-счётчиков.md | 0 family/sort/праздничная-еда-список.md | 0 family/sort/продукты-на-новый-год.md | 0 family/sort/пылесос-haier-размер.md | 0 family/sort/расходы-на-бургер.md | 0 family/sort/расходы-на-плов.md | 0 family/sort/сало-на-ортосае-где-найти.md | 0 family/sort/склад-пароль.md | 0 family/sort/список-дел-замеры.md | 0 family/sort/список-дел-разное.md | 0 family/sort/стеллаж-в-кладовку-размеры.md | 0 family/sort/счётчик-каракол-показание.md | 0 family/sort/трек-номер-dhl.md | 0 family/sort/уроки-истории-номер.md | 0 family/sync/vault-sync-2026-05-13.md | 0 family/sync/vault-sync-2026-05-22.md | 0 personal/_index.md | 0 personal/books-wishlist.md | 0 personal/business/companies-history.md | 0 personal/business/ip-registration-guide.md | 0 personal/business/profile.md | 0 personal/business/sessions/2026-W20.md | 0 personal/business/sessions/2026-W21.md | 0 personal/creative/aphorisms.md | 0 personal/creative/arctic-poem.md | 0 personal/creative/ideas-generation.md | 0 personal/creative/notes/Фашизм определение.md | 0 personal/creative/poems/da-bud-ya-evreiem.md | 0 .../creative/poems/krematoriy-na-tanspole.md | 0 personal/creative/poems/not-mine/franshiza.md | 0 personal/creative/songs.md | 0 personal/creative/songs/antonoshe.md | 0 personal/creative/songs/bozhe-bozhe.md | 0 .../songs/i-mnogo-radosti-original.md | 0 personal/creative/songs/irlandskiy-pab.md | 0 personal/creative/songs/iskuplenie.md | 0 personal/creative/songs/malenkaya-strana.md | 0 .../creative/songs/minimalnaya-diaspora.md | 0 .../creative/songs/na-derevnyu-k-babushke.md | 0 personal/creative/songs/natashka.md | 0 .../creative/songs/ne-pokupayut-edy-covid.md | 0 personal/creative/songs/ptitsy-ragnareka.md | 0 personal/creative/songs/rasprodazha.md | 0 .../creative/songs/ya-khuyaryashiy-maket.md | 0 personal/creative/songs/zahodи-na-ugolyok.md | 0 personal/creative/toasts/toast-anton.md | 0 personal/creative/toasts/toast-obshiy.md | 0 personal/creative/toasts/toast-oleg.md | 0 personal/docs/Dyld dynamic interposing.md | 0 personal/docs/OpenRouter setup.md | 0 personal/docs/Swift cross-platform testing.md | 0 personal/docs/docker_colima_setup.md | 0 personal/docs/openclaw gmail setup.md | 0 .../docs/setup SSH macOS VM VirtualBuddy.md | 0 personal/documents/3d-print-wishlist.md | 0 .../accessibility-browser-20260524.md | 0 .../lifelogger-voice-diary-20260517.md | 0 .../local-rag-indexer-20260517.md | 0 .../mcp-permissions-activator-20260524.md | 0 .../robots-elves-time-paradox-20260524.md | 0 .../voice-assistant-aide-20260524.md | 0 personal/documents/app-ideas.md | 0 personal/documents/books-reading-list.md | 0 personal/documents/budget-app-features.md | 0 personal/documents/deferred-tasks.md | 0 personal/documents/fly-box.md | 0 personal/documents/russia-tasks.md | 0 personal/documents/subscription-gym.md | 0 personal/documents/todo-list.md | 0 personal/documents/workout.md | 0 personal/ideas/marx-theory-of-value.md | 0 personal/index.md | 0 personal/music-download-practices.md | 0 personal/plans/job-search.md | 0 personal/plans/kraken-voice-tasks.md | 0 personal/plans/llm-wiki-plan.md | 0 personal/projects/app-ideas.md | 0 personal/projects/library-app.md | 0 .../projects/media-pipeline-file-routing.md | 0 .../media-pipeline-tracker-parsers.md | 0 personal/projects/nolvu-reflect-skip.md | 0 personal/projects/orblab.md | 0 .../personal-os/agent-names-brainstorm.md | 0 .../personal-os/ai-psychologist-research.md | 0 .../enrichment-runs/cross-enrichment-last.md | 0 .../cross-enrichment-overflow-2026-05-24.md | 0 .../enrichment-runs/cross-enrichment-queue.md | 0 .../personal-os/enrichment-runs/last.md | 0 .../executor-orchestrator-redesign.md | 0 .../personal-os/executor-security-analysis.md | 0 .../personal-os/executor-skip-report.md | 0 .../personal-os/executor-spawning-research.md | 0 .../personal-os/executor-v2-redesign.md | 0 .../personal-os/hermes-calendar-access.md | 0 .../personal-os/kraken-obsidian-write-bug.md | 0 .../personal-os/obsidian-vault-strategy.md | 0 .../personal-os/time-machine-tunnel-backup.md | 0 .../unprejudiced-ai-psychologist.md | 0 .../wiki-curation-runs/2026-05-15.md | 0 .../wiki-curation-runs/2026-05-16-p2.md | 0 .../wiki-curation-runs/2026-05-16.md | 0 .../wiki-curation-runs/2026-05-17.md | 0 .../wiki-curation-runs/2026-05-18-02h.md | 0 .../wiki-curation-runs/2026-05-18.md | 0 .../wiki-curation-runs/2026-05-19.md | 0 .../wiki-curation-runs/2026-05-20.md | 0 .../wiki-curation-runs/2026-05-22.md | 0 .../wiki-curation-runs/2026-05-23.md | 0 .../wiki-curation-runs/2026-05-24.md | 0 .../wiki-curation-runs/2026-05-25.md | 0 .../wiki-curation-runs/2026-05-27.md | 0 .../wiki-curation-runs/2026-05-28.md | 0 .../wiki-curation-runs/2026-05-29.md | 0 .../wiki-curation-runs/research-2026-05-23.md | 0 .../personal-os/zoom-ai-transcript-export.md | 0 .../projects/psychologist-app/analytics.md | 0 .../psychologist-app/character-design.md | 0 .../psychologist-app/crisis-protocol.md | 0 .../projects/psychologist-app/dev-setup.md | 0 personal/projects/psychologist-app/landing.md | 0 .../psychologist-app/market-analysis.md | 0 .../projects/psychologist-app/market-focus.md | 0 .../psychologist-app/marketing-hooks.md | 0 .../psychologist-app/marketing-strategy.md | 0 .../monetization-revenuecat.md | 0 personal/projects/psychologist-app/naming.md | 0 .../psychologist-app/onboarding-archetypes.md | 0 .../psychologist-app/onboarding-ux.md | 0 .../projects/psychologist-app/overview.md | 0 .../psychologist-app/privacy-legal.md | 0 .../psychologist-app/session-design.md | 0 .../psychologist-app/skip-tools-poc.md | 0 .../psychologist-app/twitter-thread-draft.md | 0 personal/psychology/insights.md | 0 personal/psychology/observations/2026-W20.md | 0 personal/psychology/observations/2026-W21.md | 0 personal/psychology/observations/2026-W22.md | 0 personal/psychology/profile.md | 0 personal/psychology/prompts.md | 0 personal/psychology/reflect-skip-android.md | 0 personal/shopping-order.md | 0 personal/spotify-library.md | 0 personal/sync-test.md | 0 personal/test_taiga_access.md | 0 personal/test_taiga_access_obsidian.md | 0 work/briefs/inbox/2026-05-29.md | 24 ------------------- 350 files changed, 24 deletions(-) mode change 100644 => 100755 family/_index.md mode change 100644 => 100755 family/contacts/birthdays.md mode change 100644 => 100755 family/contacts/service-providers.md mode change 100644 => 100755 family/contacts/services.md mode change 100644 => 100755 family/documents/altai-electricity-meter.md mode change 100644 => 100755 family/documents/altai-house-inventory.md mode change 100644 => 100755 family/documents/altai-shopping.md mode change 100644 => 100755 family/documents/books-reading-list.md mode change 100644 => 100755 family/documents/books-wishlist.md mode change 100644 => 100755 family/documents/bring-to-russia.md mode change 100644 => 100755 family/documents/car-notes.md mode change 100644 => 100755 family/documents/fasteners-nomenclature.md mode change 100644 => 100755 family/documents/flea-market-shopping.md mode change 100644 => 100755 family/documents/gift-ideas.md mode change 100644 => 100755 family/documents/google-books-api-key.md mode change 100644 => 100755 family/documents/hiking-packing-list.md mode change 100644 => 100755 family/documents/holiday-food.md mode change 100644 => 100755 family/documents/home-access-codes.md mode change 100644 => 100755 family/documents/home-automation-wishlist.md mode change 100644 => 100755 family/documents/home-wishlist.md mode change 100644 => 100755 family/documents/karaoke-songs.md mode change 100644 => 100755 family/documents/kids-activities.md mode change 100644 => 100755 family/documents/kids-songs.md mode change 100644 => 100755 family/documents/lerua-shopping.md mode change 100644 => 100755 family/documents/loyalty-cards.md mode change 100644 => 100755 family/documents/party-games.md mode change 100644 => 100755 family/documents/places-to-visit.md mode change 100644 => 100755 family/documents/recipes-wishlist.md mode change 100644 => 100755 family/documents/shopping-lists.md mode change 100644 => 100755 family/documents/shopping-order.md mode change 100644 => 100755 family/documents/trip-packing-list.md mode change 100644 => 100755 family/documents/vault-sync-2026-05-13-08-01.md mode change 100644 => 100755 family/documents/vault-sync-2026-05-20.md mode change 100644 => 100755 family/documents/vault-sync-2026-05-21.md mode change 100644 => 100755 family/documents/vault-sync-summary-2026-05-22.md mode change 100644 => 100755 family/documents/vault-sync/2026-05-13-sync.md mode change 100644 => 100755 family/documents/vault-sync/2026-05-15-sync.md mode change 100644 => 100755 family/documents/vault-sync/2026-05-22-vault-sync.md mode change 100644 => 100755 family/documents/vault-sync/2026-05-23.md mode change 100644 => 100755 family/documents/vault-sync/20260514.md mode change 100644 => 100755 family/documents/книги-ребенку.md mode change 100644 => 100755 family/how-to/arduino-programming.md mode change 100644 => 100755 family/how-to/home-automation.md mode change 100644 => 100755 family/how-to/htpc-access.md mode change 100644 => 100755 family/how-to/htpc-emulators-setup.md mode change 100644 => 100755 family/how-to/htpc-gaming-plans.md mode change 100644 => 100755 family/how-to/htpc-magic4pc.md mode change 100644 => 100755 family/how-to/htpc-migration-plan.md mode change 100644 => 100755 family/how-to/htpc-steam-nonsteam-shortcuts.md mode change 100644 => 100755 family/how-to/htpc-system.md mode change 100644 => 100755 family/how-to/htpc-webos-luna.md mode change 100644 => 100755 family/how-to/htpc.md mode change 100644 => 100755 family/how-to/kraken-access.md mode change 100644 => 100755 family/how-to/kraken-portainer-access.md mode change 100644 => 100755 family/how-to/lg-remote-keys.md mode change 100644 => 100755 family/how-to/magic4pc-webos.md mode change 100644 => 100755 family/how-to/mesh-networks.md mode change 100644 => 100755 family/how-to/mp3-bluetooth-remote.md mode change 100644 => 100755 family/how-to/navidrome-truenas-android.md mode change 100644 => 100755 family/how-to/nodered-ventilation.md mode change 100644 => 100755 family/how-to/obsidian-android-sync.md mode change 100644 => 100755 family/how-to/obsidian-sync.md mode change 100644 => 100755 family/how-to/openmediavault-rpi5.md mode change 100644 => 100755 family/how-to/router-bishkek-asus.md mode change 100644 => 100755 family/how-to/samsung.md mode change 100644 => 100755 family/how-to/speaker-sd-card-music.md mode change 100644 => 100755 family/how-to/switch-emulation-rom-infra.md mode change 100644 => 100755 family/how-to/truenas-rclone-backup.md mode change 100644 => 100755 family/how-to/tv-luna-send.md mode change 100644 => 100755 family/how-to/vault-sync-log-2026-05-15.md mode change 100644 => 100755 family/how-to/vault-sync-logs/2026-05-14.md mode change 100644 => 100755 family/how-to/vault-sync-summary.md mode change 100644 => 100755 family/how-to/virtual-keyboard-bazzite.md mode change 100644 => 100755 family/how-to/wireguard-vpn.md mode change 100644 => 100755 family/how-to/xgimi-play6-setup.md mode change 100644 => 100755 family/how-to/xgimi-play6.md mode change 100644 => 100755 family/how-to/xiaomi-wifi-fix.md mode change 100644 => 100755 family/index.md mode change 100644 => 100755 family/logs/vault-sync-2026-05-22.md mode change 100644 => 100755 family/parenting/father-profile.md mode change 100644 => 100755 family/parenting/liza-profile.md mode change 100644 => 100755 family/parenting/natalia-profile.md mode change 100644 => 100755 family/projects/aide-kraken-backend.md mode change 100644 => 100755 family/projects/htpc-windows-games-fix.md mode change 100644 => 100755 family/projects/media-pipeline-agent.md mode change 100644 => 100755 family/projects/media-toolbox-kraken.md mode change 100644 => 100755 family/projects/media-toolbox-taiga.md mode change 100644 => 100755 family/projects/watchlist-discover.md mode change 100644 => 100755 family/projects/watchlist-sync.md mode change 100644 => 100755 family/schedule/reminders.md mode change 100644 => 100755 family/schedule/vacation-july-august-2026.md mode change 100644 => 100755 family/schedule/weekend-plans.md mode change 100644 => 100755 family/sort/duty-free-список.md mode change 100644 => 100755 family/sort/feedback-идеи.md mode change 100644 => 100755 family/sort/grohe-ключ-активации.md mode change 100644 => 100755 family/sort/keep-2023-09-13_15_03_43.md mode change 100644 => 100755 family/sort/keep-2023-09-24_14_40_48.md mode change 100644 => 100755 family/sort/keep-2023-10-10_11_15_25.md mode change 100644 => 100755 family/sort/keep-2023-11-12_18_59_50.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_19.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_20.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_21.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_22.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_23.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_25.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_26.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_27.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_28.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_29.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_30.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_31.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_32.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_34.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_35.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_37.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_38.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_39.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_40.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_41.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_43.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_44.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_45.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_46.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_47.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_48.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_49.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_50.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_51.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_52.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_53.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_54.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_55.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_56.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_57.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_59.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_00.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_01.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_02.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_03.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_05.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_06.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_07.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_08.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_10.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_11.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_12.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_13.md mode change 100644 => 100755 family/sort/keep-2023-11-28_22_23_01.md mode change 100644 => 100755 family/sort/keep-2024-03-03_11_57_34.md mode change 100644 => 100755 family/sort/keep-2024-05-17_22_10_53.md mode change 100644 => 100755 family/sort/keep-2024-07-04_10_51_13.md mode change 100644 => 100755 family/sort/keep-2024-08-31_13_54_16.md mode change 100644 => 100755 family/sort/keep-2024-09-28_11_04_08.md mode change 100644 => 100755 family/sort/keep-2024-10-12_05_39_05.md mode change 100644 => 100755 family/sort/keep-2024-11-02_00_03_55.md mode change 100644 => 100755 family/sort/keep-2024-12-06_22_30_09.md mode change 100644 => 100755 family/sort/keep-2025-01-20_16_59_24.md mode change 100644 => 100755 family/sort/keep-2025-02-04_12_19_41.md mode change 100644 => 100755 family/sort/keep-2025-02-07_12_04_37.md mode change 100644 => 100755 family/sort/keep-2025-02-13_00_29_53.md mode change 100644 => 100755 family/sort/keep-2025-03-08_23_14_38.md mode change 100644 => 100755 family/sort/keep-2025-03-21_22_52_16.md mode change 100644 => 100755 family/sort/keep-2025-06-16_10_36_48.md mode change 100644 => 100755 family/sort/keep-2025-07-27_15_41_12.md mode change 100644 => 100755 family/sort/keep-2025-09-14_11_59_05.md mode change 100644 => 100755 family/sort/keep-2025-12-05_17_53_00.md mode change 100644 => 100755 family/sort/keep-2025-12-10_15_45_54.md mode change 100644 => 100755 family/sort/keep-2026-02-04_14_44_55.md mode change 100644 => 100755 family/sort/keep-2026-03-23_12_14_12.md mode change 100644 => 100755 family/sort/performance-review-вопросы.md mode change 100644 => 100755 family/sort/pinduoduo-заказ.md mode change 100644 => 100755 family/sort/zoom-ссылка.md mode change 100644 => 100755 family/sort/алтай-счётчик-заявление.md mode change 100644 => 100755 family/sort/антирадар.md mode change 100644 => 100755 family/sort/взять-на-алтай-короткий.md mode change 100644 => 100755 family/sort/взять-на-алтай-стройматериалы.md mode change 100644 => 100755 family/sort/вино.md mode change 100644 => 100755 family/sort/витамины-и-таблетки.md mode change 100644 => 100755 family/sort/вопросы-по-погребу.md mode change 100644 => 100755 family/sort/генерация-идей-творчество.md mode change 100644 => 100755 family/sort/документы-военкомат.md mode change 100644 => 100755 family/sort/долги-и-расчёты.md mode change 100644 => 100755 family/sort/задачи-по-фасадам.md mode change 100644 => 100755 family/sort/идея-бренда.md mode change 100644 => 100755 family/sort/инн-второй.md mode change 100644 => 100755 family/sort/инн.md mode change 100644 => 100755 family/sort/код-котла-vaillant.md mode change 100644 => 100755 family/sort/код-от-лестницы.md mode change 100644 => 100755 family/sort/код-садика.md mode change 100644 => 100755 family/sort/код-чемодан.md mode change 100644 => 100755 family/sort/коды-сейфа.md mode change 100644 => 100755 family/sort/конкурсы-и-игры-на-вечеринке.md mode change 100644 => 100755 family/sort/контакт-андрей-исаев-ddg.md mode change 100644 => 100755 family/sort/кофр-размер.md mode change 100644 => 100755 family/sort/лдсп-размер-на-стиралку.md mode change 100644 => 100755 family/sort/лизе-на-день-рождения.md mode change 100644 => 100755 family/sort/лыжи-размеры.md mode change 100644 => 100755 family/sort/мтс-тариф-посекундный.md mode change 100644 => 100755 family/sort/музыкальные-жанры-рекомендации.md mode change 100644 => 100755 family/sort/настойки-рецепты.md mode change 100644 => 100755 family/sort/номера-строителей.md mode change 100644 => 100755 family/sort/ошибки-семинара.md mode change 100644 => 100755 family/sort/пин-налог-кг.md mode change 100644 => 100755 family/sort/пин.md mode change 100644 => 100755 family/sort/показания-счётчиков.md mode change 100644 => 100755 family/sort/праздничная-еда-список.md mode change 100644 => 100755 family/sort/продукты-на-новый-год.md mode change 100644 => 100755 family/sort/пылесос-haier-размер.md mode change 100644 => 100755 family/sort/расходы-на-бургер.md mode change 100644 => 100755 family/sort/расходы-на-плов.md mode change 100644 => 100755 family/sort/сало-на-ортосае-где-найти.md mode change 100644 => 100755 family/sort/склад-пароль.md mode change 100644 => 100755 family/sort/список-дел-замеры.md mode change 100644 => 100755 family/sort/список-дел-разное.md mode change 100644 => 100755 family/sort/стеллаж-в-кладовку-размеры.md mode change 100644 => 100755 family/sort/счётчик-каракол-показание.md mode change 100644 => 100755 family/sort/трек-номер-dhl.md mode change 100644 => 100755 family/sort/уроки-истории-номер.md mode change 100644 => 100755 family/sync/vault-sync-2026-05-13.md mode change 100644 => 100755 family/sync/vault-sync-2026-05-22.md mode change 100644 => 100755 personal/_index.md mode change 100644 => 100755 personal/books-wishlist.md mode change 100644 => 100755 personal/business/companies-history.md mode change 100644 => 100755 personal/business/ip-registration-guide.md mode change 100644 => 100755 personal/business/profile.md mode change 100644 => 100755 personal/business/sessions/2026-W20.md mode change 100644 => 100755 personal/business/sessions/2026-W21.md mode change 100644 => 100755 personal/creative/aphorisms.md mode change 100644 => 100755 personal/creative/arctic-poem.md mode change 100644 => 100755 personal/creative/ideas-generation.md mode change 100644 => 100755 personal/creative/notes/Фашизм определение.md mode change 100644 => 100755 personal/creative/poems/da-bud-ya-evreiem.md mode change 100644 => 100755 personal/creative/poems/krematoriy-na-tanspole.md mode change 100644 => 100755 personal/creative/poems/not-mine/franshiza.md mode change 100644 => 100755 personal/creative/songs.md mode change 100644 => 100755 personal/creative/songs/antonoshe.md mode change 100644 => 100755 personal/creative/songs/bozhe-bozhe.md mode change 100644 => 100755 personal/creative/songs/i-mnogo-radosti-original.md mode change 100644 => 100755 personal/creative/songs/irlandskiy-pab.md mode change 100644 => 100755 personal/creative/songs/iskuplenie.md mode change 100644 => 100755 personal/creative/songs/malenkaya-strana.md mode change 100644 => 100755 personal/creative/songs/minimalnaya-diaspora.md mode change 100644 => 100755 personal/creative/songs/na-derevnyu-k-babushke.md mode change 100644 => 100755 personal/creative/songs/natashka.md mode change 100644 => 100755 personal/creative/songs/ne-pokupayut-edy-covid.md mode change 100644 => 100755 personal/creative/songs/ptitsy-ragnareka.md mode change 100644 => 100755 personal/creative/songs/rasprodazha.md mode change 100644 => 100755 personal/creative/songs/ya-khuyaryashiy-maket.md mode change 100644 => 100755 personal/creative/songs/zahodи-na-ugolyok.md mode change 100644 => 100755 personal/creative/toasts/toast-anton.md mode change 100644 => 100755 personal/creative/toasts/toast-obshiy.md mode change 100644 => 100755 personal/creative/toasts/toast-oleg.md mode change 100644 => 100755 personal/docs/Dyld dynamic interposing.md mode change 100644 => 100755 personal/docs/OpenRouter setup.md mode change 100644 => 100755 personal/docs/Swift cross-platform testing.md mode change 100644 => 100755 personal/docs/docker_colima_setup.md mode change 100644 => 100755 personal/docs/openclaw gmail setup.md mode change 100644 => 100755 personal/docs/setup SSH macOS VM VirtualBuddy.md mode change 100644 => 100755 personal/documents/3d-print-wishlist.md mode change 100644 => 100755 personal/documents/app-ideas-enriched/accessibility-browser-20260524.md mode change 100644 => 100755 personal/documents/app-ideas-enriched/lifelogger-voice-diary-20260517.md mode change 100644 => 100755 personal/documents/app-ideas-enriched/local-rag-indexer-20260517.md mode change 100644 => 100755 personal/documents/app-ideas-enriched/mcp-permissions-activator-20260524.md mode change 100644 => 100755 personal/documents/app-ideas-enriched/robots-elves-time-paradox-20260524.md mode change 100644 => 100755 personal/documents/app-ideas-enriched/voice-assistant-aide-20260524.md mode change 100644 => 100755 personal/documents/app-ideas.md mode change 100644 => 100755 personal/documents/books-reading-list.md mode change 100644 => 100755 personal/documents/budget-app-features.md mode change 100644 => 100755 personal/documents/deferred-tasks.md mode change 100644 => 100755 personal/documents/fly-box.md mode change 100644 => 100755 personal/documents/russia-tasks.md mode change 100644 => 100755 personal/documents/subscription-gym.md mode change 100644 => 100755 personal/documents/todo-list.md mode change 100644 => 100755 personal/documents/workout.md mode change 100644 => 100755 personal/ideas/marx-theory-of-value.md mode change 100644 => 100755 personal/index.md mode change 100644 => 100755 personal/music-download-practices.md mode change 100644 => 100755 personal/plans/job-search.md mode change 100644 => 100755 personal/plans/kraken-voice-tasks.md mode change 100644 => 100755 personal/plans/llm-wiki-plan.md mode change 100644 => 100755 personal/projects/app-ideas.md mode change 100644 => 100755 personal/projects/library-app.md mode change 100644 => 100755 personal/projects/media-pipeline-file-routing.md mode change 100644 => 100755 personal/projects/media-pipeline-tracker-parsers.md mode change 100644 => 100755 personal/projects/nolvu-reflect-skip.md mode change 100644 => 100755 personal/projects/orblab.md mode change 100644 => 100755 personal/projects/personal-os/agent-names-brainstorm.md mode change 100644 => 100755 personal/projects/personal-os/ai-psychologist-research.md mode change 100644 => 100755 personal/projects/personal-os/enrichment-runs/cross-enrichment-last.md mode change 100644 => 100755 personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-24.md mode change 100644 => 100755 personal/projects/personal-os/enrichment-runs/cross-enrichment-queue.md mode change 100644 => 100755 personal/projects/personal-os/enrichment-runs/last.md mode change 100644 => 100755 personal/projects/personal-os/executor-orchestrator-redesign.md mode change 100644 => 100755 personal/projects/personal-os/executor-security-analysis.md mode change 100644 => 100755 personal/projects/personal-os/executor-skip-report.md mode change 100644 => 100755 personal/projects/personal-os/executor-spawning-research.md mode change 100644 => 100755 personal/projects/personal-os/executor-v2-redesign.md mode change 100644 => 100755 personal/projects/personal-os/hermes-calendar-access.md mode change 100644 => 100755 personal/projects/personal-os/kraken-obsidian-write-bug.md mode change 100644 => 100755 personal/projects/personal-os/obsidian-vault-strategy.md mode change 100644 => 100755 personal/projects/personal-os/time-machine-tunnel-backup.md mode change 100644 => 100755 personal/projects/personal-os/unprejudiced-ai-psychologist.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-15.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-16-p2.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-16.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-17.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-18-02h.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-18.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-19.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-20.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-22.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-23.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-24.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-25.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-27.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-28.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-29.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/research-2026-05-23.md mode change 100644 => 100755 personal/projects/personal-os/zoom-ai-transcript-export.md mode change 100644 => 100755 personal/projects/psychologist-app/analytics.md mode change 100644 => 100755 personal/projects/psychologist-app/character-design.md mode change 100644 => 100755 personal/projects/psychologist-app/crisis-protocol.md mode change 100644 => 100755 personal/projects/psychologist-app/dev-setup.md mode change 100644 => 100755 personal/projects/psychologist-app/landing.md mode change 100644 => 100755 personal/projects/psychologist-app/market-analysis.md mode change 100644 => 100755 personal/projects/psychologist-app/market-focus.md mode change 100644 => 100755 personal/projects/psychologist-app/marketing-hooks.md mode change 100644 => 100755 personal/projects/psychologist-app/marketing-strategy.md mode change 100644 => 100755 personal/projects/psychologist-app/monetization-revenuecat.md mode change 100644 => 100755 personal/projects/psychologist-app/naming.md mode change 100644 => 100755 personal/projects/psychologist-app/onboarding-archetypes.md mode change 100644 => 100755 personal/projects/psychologist-app/onboarding-ux.md mode change 100644 => 100755 personal/projects/psychologist-app/overview.md mode change 100644 => 100755 personal/projects/psychologist-app/privacy-legal.md mode change 100644 => 100755 personal/projects/psychologist-app/session-design.md mode change 100644 => 100755 personal/projects/psychologist-app/skip-tools-poc.md mode change 100644 => 100755 personal/projects/psychologist-app/twitter-thread-draft.md mode change 100644 => 100755 personal/psychology/insights.md mode change 100644 => 100755 personal/psychology/observations/2026-W20.md mode change 100644 => 100755 personal/psychology/observations/2026-W21.md mode change 100644 => 100755 personal/psychology/observations/2026-W22.md mode change 100644 => 100755 personal/psychology/profile.md mode change 100644 => 100755 personal/psychology/prompts.md mode change 100644 => 100755 personal/psychology/reflect-skip-android.md mode change 100644 => 100755 personal/shopping-order.md mode change 100644 => 100755 personal/spotify-library.md mode change 100644 => 100755 personal/sync-test.md mode change 100644 => 100755 personal/test_taiga_access.md mode change 100644 => 100755 personal/test_taiga_access_obsidian.md delete mode 100644 work/briefs/inbox/2026-05-29.md diff --git a/family/_index.md b/family/_index.md old mode 100644 new mode 100755 diff --git a/family/contacts/birthdays.md b/family/contacts/birthdays.md old mode 100644 new mode 100755 diff --git a/family/contacts/service-providers.md b/family/contacts/service-providers.md old mode 100644 new mode 100755 diff --git a/family/contacts/services.md b/family/contacts/services.md old mode 100644 new mode 100755 diff --git a/family/documents/altai-electricity-meter.md b/family/documents/altai-electricity-meter.md old mode 100644 new mode 100755 diff --git a/family/documents/altai-house-inventory.md b/family/documents/altai-house-inventory.md old mode 100644 new mode 100755 diff --git a/family/documents/altai-shopping.md b/family/documents/altai-shopping.md old mode 100644 new mode 100755 diff --git a/family/documents/books-reading-list.md b/family/documents/books-reading-list.md old mode 100644 new mode 100755 diff --git a/family/documents/books-wishlist.md b/family/documents/books-wishlist.md old mode 100644 new mode 100755 diff --git a/family/documents/bring-to-russia.md b/family/documents/bring-to-russia.md old mode 100644 new mode 100755 diff --git a/family/documents/car-notes.md b/family/documents/car-notes.md old mode 100644 new mode 100755 diff --git a/family/documents/fasteners-nomenclature.md b/family/documents/fasteners-nomenclature.md old mode 100644 new mode 100755 diff --git a/family/documents/flea-market-shopping.md b/family/documents/flea-market-shopping.md old mode 100644 new mode 100755 diff --git a/family/documents/gift-ideas.md b/family/documents/gift-ideas.md old mode 100644 new mode 100755 diff --git a/family/documents/google-books-api-key.md b/family/documents/google-books-api-key.md old mode 100644 new mode 100755 diff --git a/family/documents/hiking-packing-list.md b/family/documents/hiking-packing-list.md old mode 100644 new mode 100755 diff --git a/family/documents/holiday-food.md b/family/documents/holiday-food.md old mode 100644 new mode 100755 diff --git a/family/documents/home-access-codes.md b/family/documents/home-access-codes.md old mode 100644 new mode 100755 diff --git a/family/documents/home-automation-wishlist.md b/family/documents/home-automation-wishlist.md old mode 100644 new mode 100755 diff --git a/family/documents/home-wishlist.md b/family/documents/home-wishlist.md old mode 100644 new mode 100755 diff --git a/family/documents/karaoke-songs.md b/family/documents/karaoke-songs.md old mode 100644 new mode 100755 diff --git a/family/documents/kids-activities.md b/family/documents/kids-activities.md old mode 100644 new mode 100755 diff --git a/family/documents/kids-songs.md b/family/documents/kids-songs.md old mode 100644 new mode 100755 diff --git a/family/documents/lerua-shopping.md b/family/documents/lerua-shopping.md old mode 100644 new mode 100755 diff --git a/family/documents/loyalty-cards.md b/family/documents/loyalty-cards.md old mode 100644 new mode 100755 diff --git a/family/documents/party-games.md b/family/documents/party-games.md old mode 100644 new mode 100755 diff --git a/family/documents/places-to-visit.md b/family/documents/places-to-visit.md old mode 100644 new mode 100755 diff --git a/family/documents/recipes-wishlist.md b/family/documents/recipes-wishlist.md old mode 100644 new mode 100755 diff --git a/family/documents/shopping-lists.md b/family/documents/shopping-lists.md old mode 100644 new mode 100755 diff --git a/family/documents/shopping-order.md b/family/documents/shopping-order.md old mode 100644 new mode 100755 diff --git a/family/documents/trip-packing-list.md b/family/documents/trip-packing-list.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync-2026-05-13-08-01.md b/family/documents/vault-sync-2026-05-13-08-01.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync-2026-05-20.md b/family/documents/vault-sync-2026-05-20.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync-2026-05-21.md b/family/documents/vault-sync-2026-05-21.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync-summary-2026-05-22.md b/family/documents/vault-sync-summary-2026-05-22.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync/2026-05-13-sync.md b/family/documents/vault-sync/2026-05-13-sync.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync/2026-05-15-sync.md b/family/documents/vault-sync/2026-05-15-sync.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync/2026-05-22-vault-sync.md b/family/documents/vault-sync/2026-05-22-vault-sync.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync/2026-05-23.md b/family/documents/vault-sync/2026-05-23.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync/20260514.md b/family/documents/vault-sync/20260514.md old mode 100644 new mode 100755 diff --git a/family/documents/книги-ребенку.md b/family/documents/книги-ребенку.md old mode 100644 new mode 100755 diff --git a/family/how-to/arduino-programming.md b/family/how-to/arduino-programming.md old mode 100644 new mode 100755 diff --git a/family/how-to/home-automation.md b/family/how-to/home-automation.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc-access.md b/family/how-to/htpc-access.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc-emulators-setup.md b/family/how-to/htpc-emulators-setup.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc-gaming-plans.md b/family/how-to/htpc-gaming-plans.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc-magic4pc.md b/family/how-to/htpc-magic4pc.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc-migration-plan.md b/family/how-to/htpc-migration-plan.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc-steam-nonsteam-shortcuts.md b/family/how-to/htpc-steam-nonsteam-shortcuts.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc-system.md b/family/how-to/htpc-system.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc-webos-luna.md b/family/how-to/htpc-webos-luna.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc.md b/family/how-to/htpc.md old mode 100644 new mode 100755 diff --git a/family/how-to/kraken-access.md b/family/how-to/kraken-access.md old mode 100644 new mode 100755 diff --git a/family/how-to/kraken-portainer-access.md b/family/how-to/kraken-portainer-access.md old mode 100644 new mode 100755 diff --git a/family/how-to/lg-remote-keys.md b/family/how-to/lg-remote-keys.md old mode 100644 new mode 100755 diff --git a/family/how-to/magic4pc-webos.md b/family/how-to/magic4pc-webos.md old mode 100644 new mode 100755 diff --git a/family/how-to/mesh-networks.md b/family/how-to/mesh-networks.md old mode 100644 new mode 100755 diff --git a/family/how-to/mp3-bluetooth-remote.md b/family/how-to/mp3-bluetooth-remote.md old mode 100644 new mode 100755 diff --git a/family/how-to/navidrome-truenas-android.md b/family/how-to/navidrome-truenas-android.md old mode 100644 new mode 100755 diff --git a/family/how-to/nodered-ventilation.md b/family/how-to/nodered-ventilation.md old mode 100644 new mode 100755 diff --git a/family/how-to/obsidian-android-sync.md b/family/how-to/obsidian-android-sync.md old mode 100644 new mode 100755 diff --git a/family/how-to/obsidian-sync.md b/family/how-to/obsidian-sync.md old mode 100644 new mode 100755 diff --git a/family/how-to/openmediavault-rpi5.md b/family/how-to/openmediavault-rpi5.md old mode 100644 new mode 100755 diff --git a/family/how-to/router-bishkek-asus.md b/family/how-to/router-bishkek-asus.md old mode 100644 new mode 100755 diff --git a/family/how-to/samsung.md b/family/how-to/samsung.md old mode 100644 new mode 100755 diff --git a/family/how-to/speaker-sd-card-music.md b/family/how-to/speaker-sd-card-music.md old mode 100644 new mode 100755 diff --git a/family/how-to/switch-emulation-rom-infra.md b/family/how-to/switch-emulation-rom-infra.md old mode 100644 new mode 100755 diff --git a/family/how-to/truenas-rclone-backup.md b/family/how-to/truenas-rclone-backup.md old mode 100644 new mode 100755 diff --git a/family/how-to/tv-luna-send.md b/family/how-to/tv-luna-send.md old mode 100644 new mode 100755 diff --git a/family/how-to/vault-sync-log-2026-05-15.md b/family/how-to/vault-sync-log-2026-05-15.md old mode 100644 new mode 100755 diff --git a/family/how-to/vault-sync-logs/2026-05-14.md b/family/how-to/vault-sync-logs/2026-05-14.md old mode 100644 new mode 100755 diff --git a/family/how-to/vault-sync-summary.md b/family/how-to/vault-sync-summary.md old mode 100644 new mode 100755 diff --git a/family/how-to/virtual-keyboard-bazzite.md b/family/how-to/virtual-keyboard-bazzite.md old mode 100644 new mode 100755 diff --git a/family/how-to/wireguard-vpn.md b/family/how-to/wireguard-vpn.md old mode 100644 new mode 100755 diff --git a/family/how-to/xgimi-play6-setup.md b/family/how-to/xgimi-play6-setup.md old mode 100644 new mode 100755 diff --git a/family/how-to/xgimi-play6.md b/family/how-to/xgimi-play6.md old mode 100644 new mode 100755 diff --git a/family/how-to/xiaomi-wifi-fix.md b/family/how-to/xiaomi-wifi-fix.md old mode 100644 new mode 100755 diff --git a/family/index.md b/family/index.md old mode 100644 new mode 100755 diff --git a/family/logs/vault-sync-2026-05-22.md b/family/logs/vault-sync-2026-05-22.md old mode 100644 new mode 100755 diff --git a/family/parenting/father-profile.md b/family/parenting/father-profile.md old mode 100644 new mode 100755 diff --git a/family/parenting/liza-profile.md b/family/parenting/liza-profile.md old mode 100644 new mode 100755 diff --git a/family/parenting/natalia-profile.md b/family/parenting/natalia-profile.md old mode 100644 new mode 100755 diff --git a/family/projects/aide-kraken-backend.md b/family/projects/aide-kraken-backend.md old mode 100644 new mode 100755 diff --git a/family/projects/htpc-windows-games-fix.md b/family/projects/htpc-windows-games-fix.md old mode 100644 new mode 100755 diff --git a/family/projects/media-pipeline-agent.md b/family/projects/media-pipeline-agent.md old mode 100644 new mode 100755 diff --git a/family/projects/media-toolbox-kraken.md b/family/projects/media-toolbox-kraken.md old mode 100644 new mode 100755 diff --git a/family/projects/media-toolbox-taiga.md b/family/projects/media-toolbox-taiga.md old mode 100644 new mode 100755 diff --git a/family/projects/watchlist-discover.md b/family/projects/watchlist-discover.md old mode 100644 new mode 100755 diff --git a/family/projects/watchlist-sync.md b/family/projects/watchlist-sync.md old mode 100644 new mode 100755 diff --git a/family/schedule/reminders.md b/family/schedule/reminders.md old mode 100644 new mode 100755 diff --git a/family/schedule/vacation-july-august-2026.md b/family/schedule/vacation-july-august-2026.md old mode 100644 new mode 100755 diff --git a/family/schedule/weekend-plans.md b/family/schedule/weekend-plans.md old mode 100644 new mode 100755 diff --git a/family/sort/duty-free-список.md b/family/sort/duty-free-список.md old mode 100644 new mode 100755 diff --git a/family/sort/feedback-идеи.md b/family/sort/feedback-идеи.md old mode 100644 new mode 100755 diff --git a/family/sort/grohe-ключ-активации.md b/family/sort/grohe-ключ-активации.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-09-13_15_03_43.md b/family/sort/keep-2023-09-13_15_03_43.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-09-24_14_40_48.md b/family/sort/keep-2023-09-24_14_40_48.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-10-10_11_15_25.md b/family/sort/keep-2023-10-10_11_15_25.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-12_18_59_50.md b/family/sort/keep-2023-11-12_18_59_50.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_19.md b/family/sort/keep-2023-11-14_00_41_19.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_20.md b/family/sort/keep-2023-11-14_00_41_20.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_21.md b/family/sort/keep-2023-11-14_00_41_21.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_22.md b/family/sort/keep-2023-11-14_00_41_22.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_23.md b/family/sort/keep-2023-11-14_00_41_23.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_25.md b/family/sort/keep-2023-11-14_00_41_25.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_26.md b/family/sort/keep-2023-11-14_00_41_26.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_27.md b/family/sort/keep-2023-11-14_00_41_27.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_28.md b/family/sort/keep-2023-11-14_00_41_28.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_29.md b/family/sort/keep-2023-11-14_00_41_29.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_30.md b/family/sort/keep-2023-11-14_00_41_30.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_31.md b/family/sort/keep-2023-11-14_00_41_31.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_32.md b/family/sort/keep-2023-11-14_00_41_32.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_34.md b/family/sort/keep-2023-11-14_00_41_34.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_35.md b/family/sort/keep-2023-11-14_00_41_35.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_37.md b/family/sort/keep-2023-11-14_00_41_37.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_38.md b/family/sort/keep-2023-11-14_00_41_38.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_39.md b/family/sort/keep-2023-11-14_00_41_39.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_40.md b/family/sort/keep-2023-11-14_00_41_40.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_41.md b/family/sort/keep-2023-11-14_00_41_41.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_43.md b/family/sort/keep-2023-11-14_00_41_43.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_44.md b/family/sort/keep-2023-11-14_00_41_44.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_45.md b/family/sort/keep-2023-11-14_00_41_45.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_46.md b/family/sort/keep-2023-11-14_00_41_46.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_47.md b/family/sort/keep-2023-11-14_00_41_47.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_48.md b/family/sort/keep-2023-11-14_00_41_48.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_49.md b/family/sort/keep-2023-11-14_00_41_49.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_50.md b/family/sort/keep-2023-11-14_00_41_50.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_51.md b/family/sort/keep-2023-11-14_00_41_51.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_52.md b/family/sort/keep-2023-11-14_00_41_52.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_53.md b/family/sort/keep-2023-11-14_00_41_53.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_54.md b/family/sort/keep-2023-11-14_00_41_54.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_55.md b/family/sort/keep-2023-11-14_00_41_55.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_56.md b/family/sort/keep-2023-11-14_00_41_56.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_57.md b/family/sort/keep-2023-11-14_00_41_57.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_59.md b/family/sort/keep-2023-11-14_00_41_59.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_00.md b/family/sort/keep-2023-11-14_00_42_00.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_01.md b/family/sort/keep-2023-11-14_00_42_01.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_02.md b/family/sort/keep-2023-11-14_00_42_02.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_03.md b/family/sort/keep-2023-11-14_00_42_03.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_05.md b/family/sort/keep-2023-11-14_00_42_05.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_06.md b/family/sort/keep-2023-11-14_00_42_06.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_07.md b/family/sort/keep-2023-11-14_00_42_07.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_08.md b/family/sort/keep-2023-11-14_00_42_08.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_10.md b/family/sort/keep-2023-11-14_00_42_10.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_11.md b/family/sort/keep-2023-11-14_00_42_11.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_12.md b/family/sort/keep-2023-11-14_00_42_12.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_13.md b/family/sort/keep-2023-11-14_00_42_13.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-28_22_23_01.md b/family/sort/keep-2023-11-28_22_23_01.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2024-03-03_11_57_34.md b/family/sort/keep-2024-03-03_11_57_34.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2024-05-17_22_10_53.md b/family/sort/keep-2024-05-17_22_10_53.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2024-07-04_10_51_13.md b/family/sort/keep-2024-07-04_10_51_13.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2024-08-31_13_54_16.md b/family/sort/keep-2024-08-31_13_54_16.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2024-09-28_11_04_08.md b/family/sort/keep-2024-09-28_11_04_08.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2024-10-12_05_39_05.md b/family/sort/keep-2024-10-12_05_39_05.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2024-11-02_00_03_55.md b/family/sort/keep-2024-11-02_00_03_55.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2024-12-06_22_30_09.md b/family/sort/keep-2024-12-06_22_30_09.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-01-20_16_59_24.md b/family/sort/keep-2025-01-20_16_59_24.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-02-04_12_19_41.md b/family/sort/keep-2025-02-04_12_19_41.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-02-07_12_04_37.md b/family/sort/keep-2025-02-07_12_04_37.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-02-13_00_29_53.md b/family/sort/keep-2025-02-13_00_29_53.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-03-08_23_14_38.md b/family/sort/keep-2025-03-08_23_14_38.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-03-21_22_52_16.md b/family/sort/keep-2025-03-21_22_52_16.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-06-16_10_36_48.md b/family/sort/keep-2025-06-16_10_36_48.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-07-27_15_41_12.md b/family/sort/keep-2025-07-27_15_41_12.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-09-14_11_59_05.md b/family/sort/keep-2025-09-14_11_59_05.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-12-05_17_53_00.md b/family/sort/keep-2025-12-05_17_53_00.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-12-10_15_45_54.md b/family/sort/keep-2025-12-10_15_45_54.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2026-02-04_14_44_55.md b/family/sort/keep-2026-02-04_14_44_55.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2026-03-23_12_14_12.md b/family/sort/keep-2026-03-23_12_14_12.md old mode 100644 new mode 100755 diff --git a/family/sort/performance-review-вопросы.md b/family/sort/performance-review-вопросы.md old mode 100644 new mode 100755 diff --git a/family/sort/pinduoduo-заказ.md b/family/sort/pinduoduo-заказ.md old mode 100644 new mode 100755 diff --git a/family/sort/zoom-ссылка.md b/family/sort/zoom-ссылка.md old mode 100644 new mode 100755 diff --git a/family/sort/алтай-счётчик-заявление.md b/family/sort/алтай-счётчик-заявление.md old mode 100644 new mode 100755 diff --git a/family/sort/антирадар.md b/family/sort/антирадар.md old mode 100644 new mode 100755 diff --git a/family/sort/взять-на-алтай-короткий.md b/family/sort/взять-на-алтай-короткий.md old mode 100644 new mode 100755 diff --git a/family/sort/взять-на-алтай-стройматериалы.md b/family/sort/взять-на-алтай-стройматериалы.md old mode 100644 new mode 100755 diff --git a/family/sort/вино.md b/family/sort/вино.md old mode 100644 new mode 100755 diff --git a/family/sort/витамины-и-таблетки.md b/family/sort/витамины-и-таблетки.md old mode 100644 new mode 100755 diff --git a/family/sort/вопросы-по-погребу.md b/family/sort/вопросы-по-погребу.md old mode 100644 new mode 100755 diff --git a/family/sort/генерация-идей-творчество.md b/family/sort/генерация-идей-творчество.md old mode 100644 new mode 100755 diff --git a/family/sort/документы-военкомат.md b/family/sort/документы-военкомат.md old mode 100644 new mode 100755 diff --git a/family/sort/долги-и-расчёты.md b/family/sort/долги-и-расчёты.md old mode 100644 new mode 100755 diff --git a/family/sort/задачи-по-фасадам.md b/family/sort/задачи-по-фасадам.md old mode 100644 new mode 100755 diff --git a/family/sort/идея-бренда.md b/family/sort/идея-бренда.md old mode 100644 new mode 100755 diff --git a/family/sort/инн-второй.md b/family/sort/инн-второй.md old mode 100644 new mode 100755 diff --git a/family/sort/инн.md b/family/sort/инн.md old mode 100644 new mode 100755 diff --git a/family/sort/код-котла-vaillant.md b/family/sort/код-котла-vaillant.md old mode 100644 new mode 100755 diff --git a/family/sort/код-от-лестницы.md b/family/sort/код-от-лестницы.md old mode 100644 new mode 100755 diff --git a/family/sort/код-садика.md b/family/sort/код-садика.md old mode 100644 new mode 100755 diff --git a/family/sort/код-чемодан.md b/family/sort/код-чемодан.md old mode 100644 new mode 100755 diff --git a/family/sort/коды-сейфа.md b/family/sort/коды-сейфа.md old mode 100644 new mode 100755 diff --git a/family/sort/конкурсы-и-игры-на-вечеринке.md b/family/sort/конкурсы-и-игры-на-вечеринке.md old mode 100644 new mode 100755 diff --git a/family/sort/контакт-андрей-исаев-ddg.md b/family/sort/контакт-андрей-исаев-ddg.md old mode 100644 new mode 100755 diff --git a/family/sort/кофр-размер.md b/family/sort/кофр-размер.md old mode 100644 new mode 100755 diff --git a/family/sort/лдсп-размер-на-стиралку.md b/family/sort/лдсп-размер-на-стиралку.md old mode 100644 new mode 100755 diff --git a/family/sort/лизе-на-день-рождения.md b/family/sort/лизе-на-день-рождения.md old mode 100644 new mode 100755 diff --git a/family/sort/лыжи-размеры.md b/family/sort/лыжи-размеры.md old mode 100644 new mode 100755 diff --git a/family/sort/мтс-тариф-посекундный.md b/family/sort/мтс-тариф-посекундный.md old mode 100644 new mode 100755 diff --git a/family/sort/музыкальные-жанры-рекомендации.md b/family/sort/музыкальные-жанры-рекомендации.md old mode 100644 new mode 100755 diff --git a/family/sort/настойки-рецепты.md b/family/sort/настойки-рецепты.md old mode 100644 new mode 100755 diff --git a/family/sort/номера-строителей.md b/family/sort/номера-строителей.md old mode 100644 new mode 100755 diff --git a/family/sort/ошибки-семинара.md b/family/sort/ошибки-семинара.md old mode 100644 new mode 100755 diff --git a/family/sort/пин-налог-кг.md b/family/sort/пин-налог-кг.md old mode 100644 new mode 100755 diff --git a/family/sort/пин.md b/family/sort/пин.md old mode 100644 new mode 100755 diff --git a/family/sort/показания-счётчиков.md b/family/sort/показания-счётчиков.md old mode 100644 new mode 100755 diff --git a/family/sort/праздничная-еда-список.md b/family/sort/праздничная-еда-список.md old mode 100644 new mode 100755 diff --git a/family/sort/продукты-на-новый-год.md b/family/sort/продукты-на-новый-год.md old mode 100644 new mode 100755 diff --git a/family/sort/пылесос-haier-размер.md b/family/sort/пылесос-haier-размер.md old mode 100644 new mode 100755 diff --git a/family/sort/расходы-на-бургер.md b/family/sort/расходы-на-бургер.md old mode 100644 new mode 100755 diff --git a/family/sort/расходы-на-плов.md b/family/sort/расходы-на-плов.md old mode 100644 new mode 100755 diff --git a/family/sort/сало-на-ортосае-где-найти.md b/family/sort/сало-на-ортосае-где-найти.md old mode 100644 new mode 100755 diff --git a/family/sort/склад-пароль.md b/family/sort/склад-пароль.md old mode 100644 new mode 100755 diff --git a/family/sort/список-дел-замеры.md b/family/sort/список-дел-замеры.md old mode 100644 new mode 100755 diff --git a/family/sort/список-дел-разное.md b/family/sort/список-дел-разное.md old mode 100644 new mode 100755 diff --git a/family/sort/стеллаж-в-кладовку-размеры.md b/family/sort/стеллаж-в-кладовку-размеры.md old mode 100644 new mode 100755 diff --git a/family/sort/счётчик-каракол-показание.md b/family/sort/счётчик-каракол-показание.md old mode 100644 new mode 100755 diff --git a/family/sort/трек-номер-dhl.md b/family/sort/трек-номер-dhl.md old mode 100644 new mode 100755 diff --git a/family/sort/уроки-истории-номер.md b/family/sort/уроки-истории-номер.md old mode 100644 new mode 100755 diff --git a/family/sync/vault-sync-2026-05-13.md b/family/sync/vault-sync-2026-05-13.md old mode 100644 new mode 100755 diff --git a/family/sync/vault-sync-2026-05-22.md b/family/sync/vault-sync-2026-05-22.md old mode 100644 new mode 100755 diff --git a/personal/_index.md b/personal/_index.md old mode 100644 new mode 100755 diff --git a/personal/books-wishlist.md b/personal/books-wishlist.md old mode 100644 new mode 100755 diff --git a/personal/business/companies-history.md b/personal/business/companies-history.md old mode 100644 new mode 100755 diff --git a/personal/business/ip-registration-guide.md b/personal/business/ip-registration-guide.md old mode 100644 new mode 100755 diff --git a/personal/business/profile.md b/personal/business/profile.md old mode 100644 new mode 100755 diff --git a/personal/business/sessions/2026-W20.md b/personal/business/sessions/2026-W20.md old mode 100644 new mode 100755 diff --git a/personal/business/sessions/2026-W21.md b/personal/business/sessions/2026-W21.md old mode 100644 new mode 100755 diff --git a/personal/creative/aphorisms.md b/personal/creative/aphorisms.md old mode 100644 new mode 100755 diff --git a/personal/creative/arctic-poem.md b/personal/creative/arctic-poem.md old mode 100644 new mode 100755 diff --git a/personal/creative/ideas-generation.md b/personal/creative/ideas-generation.md old mode 100644 new mode 100755 diff --git a/personal/creative/notes/Фашизм определение.md b/personal/creative/notes/Фашизм определение.md old mode 100644 new mode 100755 diff --git a/personal/creative/poems/da-bud-ya-evreiem.md b/personal/creative/poems/da-bud-ya-evreiem.md old mode 100644 new mode 100755 diff --git a/personal/creative/poems/krematoriy-na-tanspole.md b/personal/creative/poems/krematoriy-na-tanspole.md old mode 100644 new mode 100755 diff --git a/personal/creative/poems/not-mine/franshiza.md b/personal/creative/poems/not-mine/franshiza.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs.md b/personal/creative/songs.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/antonoshe.md b/personal/creative/songs/antonoshe.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/bozhe-bozhe.md b/personal/creative/songs/bozhe-bozhe.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/i-mnogo-radosti-original.md b/personal/creative/songs/i-mnogo-radosti-original.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/irlandskiy-pab.md b/personal/creative/songs/irlandskiy-pab.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/iskuplenie.md b/personal/creative/songs/iskuplenie.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/malenkaya-strana.md b/personal/creative/songs/malenkaya-strana.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/minimalnaya-diaspora.md b/personal/creative/songs/minimalnaya-diaspora.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/na-derevnyu-k-babushke.md b/personal/creative/songs/na-derevnyu-k-babushke.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/natashka.md b/personal/creative/songs/natashka.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/ne-pokupayut-edy-covid.md b/personal/creative/songs/ne-pokupayut-edy-covid.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/ptitsy-ragnareka.md b/personal/creative/songs/ptitsy-ragnareka.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/rasprodazha.md b/personal/creative/songs/rasprodazha.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/ya-khuyaryashiy-maket.md b/personal/creative/songs/ya-khuyaryashiy-maket.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/zahodи-na-ugolyok.md b/personal/creative/songs/zahodи-na-ugolyok.md old mode 100644 new mode 100755 diff --git a/personal/creative/toasts/toast-anton.md b/personal/creative/toasts/toast-anton.md old mode 100644 new mode 100755 diff --git a/personal/creative/toasts/toast-obshiy.md b/personal/creative/toasts/toast-obshiy.md old mode 100644 new mode 100755 diff --git a/personal/creative/toasts/toast-oleg.md b/personal/creative/toasts/toast-oleg.md old mode 100644 new mode 100755 diff --git a/personal/docs/Dyld dynamic interposing.md b/personal/docs/Dyld dynamic interposing.md old mode 100644 new mode 100755 diff --git a/personal/docs/OpenRouter setup.md b/personal/docs/OpenRouter setup.md old mode 100644 new mode 100755 diff --git a/personal/docs/Swift cross-platform testing.md b/personal/docs/Swift cross-platform testing.md old mode 100644 new mode 100755 diff --git a/personal/docs/docker_colima_setup.md b/personal/docs/docker_colima_setup.md old mode 100644 new mode 100755 diff --git a/personal/docs/openclaw gmail setup.md b/personal/docs/openclaw gmail setup.md old mode 100644 new mode 100755 diff --git a/personal/docs/setup SSH macOS VM VirtualBuddy.md b/personal/docs/setup SSH macOS VM VirtualBuddy.md old mode 100644 new mode 100755 diff --git a/personal/documents/3d-print-wishlist.md b/personal/documents/3d-print-wishlist.md old mode 100644 new mode 100755 diff --git a/personal/documents/app-ideas-enriched/accessibility-browser-20260524.md b/personal/documents/app-ideas-enriched/accessibility-browser-20260524.md old mode 100644 new mode 100755 diff --git a/personal/documents/app-ideas-enriched/lifelogger-voice-diary-20260517.md b/personal/documents/app-ideas-enriched/lifelogger-voice-diary-20260517.md old mode 100644 new mode 100755 diff --git a/personal/documents/app-ideas-enriched/local-rag-indexer-20260517.md b/personal/documents/app-ideas-enriched/local-rag-indexer-20260517.md old mode 100644 new mode 100755 diff --git a/personal/documents/app-ideas-enriched/mcp-permissions-activator-20260524.md b/personal/documents/app-ideas-enriched/mcp-permissions-activator-20260524.md old mode 100644 new mode 100755 diff --git a/personal/documents/app-ideas-enriched/robots-elves-time-paradox-20260524.md b/personal/documents/app-ideas-enriched/robots-elves-time-paradox-20260524.md old mode 100644 new mode 100755 diff --git a/personal/documents/app-ideas-enriched/voice-assistant-aide-20260524.md b/personal/documents/app-ideas-enriched/voice-assistant-aide-20260524.md old mode 100644 new mode 100755 diff --git a/personal/documents/app-ideas.md b/personal/documents/app-ideas.md old mode 100644 new mode 100755 diff --git a/personal/documents/books-reading-list.md b/personal/documents/books-reading-list.md old mode 100644 new mode 100755 diff --git a/personal/documents/budget-app-features.md b/personal/documents/budget-app-features.md old mode 100644 new mode 100755 diff --git a/personal/documents/deferred-tasks.md b/personal/documents/deferred-tasks.md old mode 100644 new mode 100755 diff --git a/personal/documents/fly-box.md b/personal/documents/fly-box.md old mode 100644 new mode 100755 diff --git a/personal/documents/russia-tasks.md b/personal/documents/russia-tasks.md old mode 100644 new mode 100755 diff --git a/personal/documents/subscription-gym.md b/personal/documents/subscription-gym.md old mode 100644 new mode 100755 diff --git a/personal/documents/todo-list.md b/personal/documents/todo-list.md old mode 100644 new mode 100755 diff --git a/personal/documents/workout.md b/personal/documents/workout.md old mode 100644 new mode 100755 diff --git a/personal/ideas/marx-theory-of-value.md b/personal/ideas/marx-theory-of-value.md old mode 100644 new mode 100755 diff --git a/personal/index.md b/personal/index.md old mode 100644 new mode 100755 diff --git a/personal/music-download-practices.md b/personal/music-download-practices.md old mode 100644 new mode 100755 diff --git a/personal/plans/job-search.md b/personal/plans/job-search.md old mode 100644 new mode 100755 diff --git a/personal/plans/kraken-voice-tasks.md b/personal/plans/kraken-voice-tasks.md old mode 100644 new mode 100755 diff --git a/personal/plans/llm-wiki-plan.md b/personal/plans/llm-wiki-plan.md old mode 100644 new mode 100755 diff --git a/personal/projects/app-ideas.md b/personal/projects/app-ideas.md old mode 100644 new mode 100755 diff --git a/personal/projects/library-app.md b/personal/projects/library-app.md old mode 100644 new mode 100755 diff --git a/personal/projects/media-pipeline-file-routing.md b/personal/projects/media-pipeline-file-routing.md old mode 100644 new mode 100755 diff --git a/personal/projects/media-pipeline-tracker-parsers.md b/personal/projects/media-pipeline-tracker-parsers.md old mode 100644 new mode 100755 diff --git a/personal/projects/nolvu-reflect-skip.md b/personal/projects/nolvu-reflect-skip.md old mode 100644 new mode 100755 diff --git a/personal/projects/orblab.md b/personal/projects/orblab.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/agent-names-brainstorm.md b/personal/projects/personal-os/agent-names-brainstorm.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/ai-psychologist-research.md b/personal/projects/personal-os/ai-psychologist-research.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/enrichment-runs/cross-enrichment-last.md b/personal/projects/personal-os/enrichment-runs/cross-enrichment-last.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-24.md b/personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-24.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/enrichment-runs/cross-enrichment-queue.md b/personal/projects/personal-os/enrichment-runs/cross-enrichment-queue.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/enrichment-runs/last.md b/personal/projects/personal-os/enrichment-runs/last.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/executor-orchestrator-redesign.md b/personal/projects/personal-os/executor-orchestrator-redesign.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/executor-security-analysis.md b/personal/projects/personal-os/executor-security-analysis.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/executor-skip-report.md b/personal/projects/personal-os/executor-skip-report.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/executor-spawning-research.md b/personal/projects/personal-os/executor-spawning-research.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/executor-v2-redesign.md b/personal/projects/personal-os/executor-v2-redesign.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/hermes-calendar-access.md b/personal/projects/personal-os/hermes-calendar-access.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/kraken-obsidian-write-bug.md b/personal/projects/personal-os/kraken-obsidian-write-bug.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/obsidian-vault-strategy.md b/personal/projects/personal-os/obsidian-vault-strategy.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/time-machine-tunnel-backup.md b/personal/projects/personal-os/time-machine-tunnel-backup.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/unprejudiced-ai-psychologist.md b/personal/projects/personal-os/unprejudiced-ai-psychologist.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-15.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-15.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-16-p2.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-16-p2.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-16.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-16.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-17.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-17.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-18-02h.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-18-02h.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-18.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-18.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-19.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-19.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-20.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-20.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-22.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-22.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-23.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-23.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-24.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-24.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-25.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-25.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-27.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-27.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-28.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-28.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-29.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-29.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/research-2026-05-23.md b/personal/projects/personal-os/wiki-curation-runs/research-2026-05-23.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/zoom-ai-transcript-export.md b/personal/projects/personal-os/zoom-ai-transcript-export.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/analytics.md b/personal/projects/psychologist-app/analytics.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/character-design.md b/personal/projects/psychologist-app/character-design.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/crisis-protocol.md b/personal/projects/psychologist-app/crisis-protocol.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/dev-setup.md b/personal/projects/psychologist-app/dev-setup.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/landing.md b/personal/projects/psychologist-app/landing.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/market-analysis.md b/personal/projects/psychologist-app/market-analysis.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/market-focus.md b/personal/projects/psychologist-app/market-focus.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/marketing-hooks.md b/personal/projects/psychologist-app/marketing-hooks.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/marketing-strategy.md b/personal/projects/psychologist-app/marketing-strategy.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/monetization-revenuecat.md b/personal/projects/psychologist-app/monetization-revenuecat.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/naming.md b/personal/projects/psychologist-app/naming.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/onboarding-archetypes.md b/personal/projects/psychologist-app/onboarding-archetypes.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/onboarding-ux.md b/personal/projects/psychologist-app/onboarding-ux.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/overview.md b/personal/projects/psychologist-app/overview.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/privacy-legal.md b/personal/projects/psychologist-app/privacy-legal.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/session-design.md b/personal/projects/psychologist-app/session-design.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/skip-tools-poc.md b/personal/projects/psychologist-app/skip-tools-poc.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/twitter-thread-draft.md b/personal/projects/psychologist-app/twitter-thread-draft.md old mode 100644 new mode 100755 diff --git a/personal/psychology/insights.md b/personal/psychology/insights.md old mode 100644 new mode 100755 diff --git a/personal/psychology/observations/2026-W20.md b/personal/psychology/observations/2026-W20.md old mode 100644 new mode 100755 diff --git a/personal/psychology/observations/2026-W21.md b/personal/psychology/observations/2026-W21.md old mode 100644 new mode 100755 diff --git a/personal/psychology/observations/2026-W22.md b/personal/psychology/observations/2026-W22.md old mode 100644 new mode 100755 diff --git a/personal/psychology/profile.md b/personal/psychology/profile.md old mode 100644 new mode 100755 diff --git a/personal/psychology/prompts.md b/personal/psychology/prompts.md old mode 100644 new mode 100755 diff --git a/personal/psychology/reflect-skip-android.md b/personal/psychology/reflect-skip-android.md old mode 100644 new mode 100755 diff --git a/personal/shopping-order.md b/personal/shopping-order.md old mode 100644 new mode 100755 diff --git a/personal/spotify-library.md b/personal/spotify-library.md old mode 100644 new mode 100755 diff --git a/personal/sync-test.md b/personal/sync-test.md old mode 100644 new mode 100755 diff --git a/personal/test_taiga_access.md b/personal/test_taiga_access.md old mode 100644 new mode 100755 diff --git a/personal/test_taiga_access_obsidian.md b/personal/test_taiga_access_obsidian.md old mode 100644 new mode 100755 diff --git a/work/briefs/inbox/2026-05-29.md b/work/briefs/inbox/2026-05-29.md deleted file mode 100644 index c447652c..00000000 --- a/work/briefs/inbox/2026-05-29.md +++ /dev/null @@ -1,24 +0,0 @@ -## Inbox Triage — 2026-05-29 (since 2026-05-29 00:00) - -### New / Changed — Action Required - -**[Ship blocker]** — [Ship AI onboarding winner (Treatment B) [0.5d]](https://app.asana.com/0/0/1215009192158955) — Alessandro at 06:11, Costas at 05:12 -Alessandro flagged that shipping Treatment B *while the tracker-blocker demo experiment is still running* would change the onboarding control flow mid-experiment and compromise data. He laid out two options (1) wait until min sample size then flip remote config to assign new enrollees to New Treatment B; (2) [comment was cut off in snapshot — read the rest in Asana]. Separately Costas confirmed sticking with iPhone-only for now and proposed an iPad-specific project next week. -**Action:** Read full Alessandro comment, pick option 1 vs 2 (or counter-propose), reply by EOD. Ack Costas on iPhone-only + add iPad spin-up as agenda item for O-N weekly. This is on your top-priority list and was due May 28 — already 1d overdue. - -**[Close-out check]** — [Disable back button during duck.ai onboarding [1d]](https://app.asana.com/0/0/1215009192158960) — Costas at 06:13 -Costas says the back button doesn't display in your build and is disabled in Mariia's — proposes closing the task. Your own May 28 comment already asked whether this was still actual. -**Action:** Confirm Costas's read, close the task, or reply if you want to keep it open for the debug-menu corner case you raised yesterday. Due today. - -### New / Changed — Monitoring - -- **[NA Analysis: iOS Duck.ai Onboarding Tracker Demo Experiment](https://app.asana.com/0/0/1215186850972358)** — Dax posted enrollment numbers May 28 09:46 (control 7034 / a 7191 / b 7126). No d5-7 app_use conversions yet — flagged as possibly a metric-name issue. Worth checking the metric name when you next look at the experiment, no immediate action. -- **[iOS Address onboarding conflicts with unified input…](https://app.asana.com/0/0/1214592943696234)** — Dax auto-applied "Discovery" 3Ds tag (May 28 20:44). Automated, no action. -- **[DRI <> Project Advisor async for Demo tracker blocking…](https://app.asana.com/0/0/1213551072611261)** — Alessandro created this for you while OOO (May 28 23:30). FYI; pick it up when you start the async. -- **[What is your 1 Must today?](https://app.asana.com/0/0/1215228074847031)** — daily template auto-assigned (due today). Fill when you set priorities. -- **Delegated — [Pinned tab activates in other window unpinning](https://app.asana.com/0/0/1210705465887828)** → Juan Pereira pushed due to "Tomorrow" overnight. No action — keep watching. - -### Notes - -- **STEP 1b/1c skipped**: postgres / envdir not available on this machine, so the cross-scope @mention DB sweep didn't run. Any @mentions on tasks outside `my_tasks` (e.g. tasks where you're a follower-only @mention recipient) are not captured here. The two snapshot comments above (Alessandro, Costas) both @-mention you and are covered. -- **Reminder**: Treatment-B Ship Review (gid 1215009192158961) is still open in your delegated list with no movement since May 22 — once you decide on Alessandro's option 1 vs 2, that review will probably need a new request. From 023fe00d5bd525f09d7e287d4c278b7011c43f39 Mon Sep 17 00:00:00 2001 From: Taiga Date: Fri, 29 May 2026 08:57:18 +0000 Subject: [PATCH 2/3] syncthing-1780045038 --- .gitignore | 2 ++ family/_index.md | 0 family/contacts/birthdays.md | 0 family/contacts/service-providers.md | 0 family/contacts/services.md | 0 family/documents/altai-electricity-meter.md | 0 family/documents/altai-house-inventory.md | 0 family/documents/altai-shopping.md | 0 family/documents/books-reading-list.md | 0 family/documents/books-wishlist.md | 0 family/documents/bring-to-russia.md | 0 family/documents/car-notes.md | 0 family/documents/fasteners-nomenclature.md | 0 family/documents/flea-market-shopping.md | 0 family/documents/games-wishlist.md | 0 family/documents/gift-ideas.md | 0 family/documents/google-books-api-key.md | 0 family/documents/hiking-packing-list.md | 0 family/documents/holiday-food.md | 0 family/documents/home-access-codes.md | 0 family/documents/home-automation-wishlist.md | 0 family/documents/home-wishlist.md | 0 family/documents/karaoke-songs.md | 0 family/documents/kids-activities.md | 0 family/documents/kids-songs.md | 0 family/documents/lerua-shopping.md | 0 family/documents/loyalty-cards.md | 0 family/documents/movies-watchlist.md | 0 family/documents/party-games.md | 0 family/documents/places-to-visit.md | 0 family/documents/recipes-wishlist.md | 0 family/documents/shopping-lists.md | 0 family/documents/shopping-order.md | 0 family/documents/trip-packing-list.md | 0 family/documents/vault-sync-2026-05-13-08-01.md | 0 family/documents/vault-sync-2026-05-20.md | 0 family/documents/vault-sync-2026-05-21.md | 0 family/documents/vault-sync-summary-2026-05-22.md | 0 family/documents/vault-sync/2026-05-13-sync.md | 0 family/documents/vault-sync/2026-05-15-sync.md | 0 family/documents/vault-sync/2026-05-22-vault-sync.md | 0 family/documents/vault-sync/2026-05-23.md | 0 family/documents/vault-sync/20260514.md | 0 family/documents/книги-ребенку.md | 0 family/how-to/arduino-programming.md | 0 family/how-to/home-automation.md | 0 family/how-to/htpc-access.md | 0 family/how-to/htpc-emulators-setup.md | 0 family/how-to/htpc-gaming-plans.md | 0 family/how-to/htpc-magic4pc.md | 0 family/how-to/htpc-migration-plan.md | 0 family/how-to/htpc-steam-nonsteam-shortcuts.md | 0 family/how-to/htpc-system.md | 0 family/how-to/htpc-webos-luna.md | 0 family/how-to/htpc.md | 0 family/how-to/kraken-access.md | 0 family/how-to/kraken-portainer-access.md | 0 family/how-to/lg-remote-keys.md | 0 family/how-to/magic4pc-webos.md | 0 family/how-to/mesh-networks.md | 0 family/how-to/mp3-bluetooth-remote.md | 0 family/how-to/navidrome-truenas-android.md | 0 family/how-to/nodered-ventilation.md | 0 family/how-to/obsidian-android-sync.md | 0 family/how-to/obsidian-sync.md | 0 family/how-to/openmediavault-rpi5.md | 0 family/how-to/router-bishkek-asus.md | 0 family/how-to/samsung.md | 0 family/how-to/speaker-sd-card-music.md | 0 family/how-to/switch-emulation-rom-infra.md | 0 family/how-to/syncthing-truenas-android.md | 0 family/how-to/truenas-access.md | 0 family/how-to/truenas-infrastructure.md | 0 family/how-to/truenas-rclone-backup.md | 0 family/how-to/tv-luna-send.md | 0 family/how-to/vault-sync-log-2026-05-15.md | 0 family/how-to/vault-sync-logs/2026-05-14.md | 0 family/how-to/vault-sync-summary.md | 0 family/how-to/virtual-keyboard-bazzite.md | 0 family/how-to/wireguard-vpn.md | 0 family/how-to/xgimi-play6-setup.md | 0 family/how-to/xgimi-play6.md | 0 family/how-to/xiaomi-wifi-fix.md | 0 family/index.md | 0 family/logs/vault-sync-2026-05-22.md | 0 family/parenting/father-profile.md | 0 family/parenting/liza-profile.md | 0 family/parenting/natalia-profile.md | 0 family/projects/aide-kraken-backend.md | 0 family/projects/htpc-windows-games-fix.md | 0 family/projects/media-pipeline-agent.md | 0 family/projects/media-toolbox-kraken.md | 0 family/projects/media-toolbox-taiga.md | 0 family/projects/watchlist-discover.md | 0 family/projects/watchlist-sync.md | 0 family/schedule/reminders.md | 0 family/schedule/vacation-july-august-2026.md | 0 family/schedule/weekend-plans.md | 0 family/sort/duty-free-список.md | 0 family/sort/feedback-идеи.md | 0 family/sort/grohe-ключ-активации.md | 0 family/sort/keep-2023-09-13_15_03_43.md | 0 family/sort/keep-2023-09-24_14_40_48.md | 0 family/sort/keep-2023-10-10_11_15_25.md | 0 family/sort/keep-2023-11-12_18_59_50.md | 0 family/sort/keep-2023-11-14_00_41_19.md | 0 family/sort/keep-2023-11-14_00_41_20.md | 0 family/sort/keep-2023-11-14_00_41_21.md | 0 family/sort/keep-2023-11-14_00_41_22.md | 0 family/sort/keep-2023-11-14_00_41_23.md | 0 family/sort/keep-2023-11-14_00_41_25.md | 0 family/sort/keep-2023-11-14_00_41_26.md | 0 family/sort/keep-2023-11-14_00_41_27.md | 0 family/sort/keep-2023-11-14_00_41_28.md | 0 family/sort/keep-2023-11-14_00_41_29.md | 0 family/sort/keep-2023-11-14_00_41_30.md | 0 family/sort/keep-2023-11-14_00_41_31.md | 0 family/sort/keep-2023-11-14_00_41_32.md | 0 family/sort/keep-2023-11-14_00_41_34.md | 0 family/sort/keep-2023-11-14_00_41_35.md | 0 family/sort/keep-2023-11-14_00_41_37.md | 0 family/sort/keep-2023-11-14_00_41_38.md | 0 family/sort/keep-2023-11-14_00_41_39.md | 0 family/sort/keep-2023-11-14_00_41_40.md | 0 family/sort/keep-2023-11-14_00_41_41.md | 0 family/sort/keep-2023-11-14_00_41_43.md | 0 family/sort/keep-2023-11-14_00_41_44.md | 0 family/sort/keep-2023-11-14_00_41_45.md | 0 family/sort/keep-2023-11-14_00_41_46.md | 0 family/sort/keep-2023-11-14_00_41_47.md | 0 family/sort/keep-2023-11-14_00_41_48.md | 0 family/sort/keep-2023-11-14_00_41_49.md | 0 family/sort/keep-2023-11-14_00_41_50.md | 0 family/sort/keep-2023-11-14_00_41_51.md | 0 family/sort/keep-2023-11-14_00_41_52.md | 0 family/sort/keep-2023-11-14_00_41_53.md | 0 family/sort/keep-2023-11-14_00_41_54.md | 0 family/sort/keep-2023-11-14_00_41_55.md | 0 family/sort/keep-2023-11-14_00_41_56.md | 0 family/sort/keep-2023-11-14_00_41_57.md | 0 family/sort/keep-2023-11-14_00_41_59.md | 0 family/sort/keep-2023-11-14_00_42_00.md | 0 family/sort/keep-2023-11-14_00_42_01.md | 0 family/sort/keep-2023-11-14_00_42_02.md | 0 family/sort/keep-2023-11-14_00_42_03.md | 0 family/sort/keep-2023-11-14_00_42_05.md | 0 family/sort/keep-2023-11-14_00_42_06.md | 0 family/sort/keep-2023-11-14_00_42_07.md | 0 family/sort/keep-2023-11-14_00_42_08.md | 0 family/sort/keep-2023-11-14_00_42_10.md | 0 family/sort/keep-2023-11-14_00_42_11.md | 0 family/sort/keep-2023-11-14_00_42_12.md | 0 family/sort/keep-2023-11-14_00_42_13.md | 0 family/sort/keep-2023-11-28_22_23_01.md | 0 family/sort/keep-2024-03-03_11_57_34.md | 0 family/sort/keep-2024-05-17_22_10_53.md | 0 family/sort/keep-2024-07-04_10_51_13.md | 0 family/sort/keep-2024-08-31_13_54_16.md | 0 family/sort/keep-2024-09-28_11_04_08.md | 0 family/sort/keep-2024-10-12_05_39_05.md | 0 family/sort/keep-2024-11-02_00_03_55.md | 0 family/sort/keep-2024-12-06_22_30_09.md | 0 family/sort/keep-2025-01-20_16_59_24.md | 0 family/sort/keep-2025-02-04_12_19_41.md | 0 family/sort/keep-2025-02-07_12_04_37.md | 0 family/sort/keep-2025-02-13_00_29_53.md | 0 family/sort/keep-2025-03-08_23_14_38.md | 0 family/sort/keep-2025-03-21_22_52_16.md | 0 family/sort/keep-2025-06-16_10_36_48.md | 0 family/sort/keep-2025-07-27_15_41_12.md | 0 family/sort/keep-2025-09-14_11_59_05.md | 0 family/sort/keep-2025-12-05_17_53_00.md | 0 family/sort/keep-2025-12-10_15_45_54.md | 0 family/sort/keep-2026-02-04_14_44_55.md | 0 family/sort/keep-2026-03-23_12_14_12.md | 0 family/sort/performance-review-вопросы.md | 0 family/sort/pinduoduo-заказ.md | 0 family/sort/zoom-ссылка.md | 0 family/sort/алтай-счётчик-заявление.md | 0 family/sort/антирадар.md | 0 family/sort/взять-на-алтай-короткий.md | 0 family/sort/взять-на-алтай-стройматериалы.md | 0 family/sort/вино.md | 0 family/sort/витамины-и-таблетки.md | 0 family/sort/вопросы-по-погребу.md | 0 family/sort/генерация-идей-творчество.md | 0 family/sort/документы-военкомат.md | 0 family/sort/долги-и-расчёты.md | 0 family/sort/задачи-по-фасадам.md | 0 family/sort/идея-бренда.md | 0 family/sort/инн-второй.md | 0 family/sort/инн.md | 0 family/sort/код-котла-vaillant.md | 0 family/sort/код-от-лестницы.md | 0 family/sort/код-садика.md | 0 family/sort/код-чемодан.md | 0 family/sort/коды-сейфа.md | 0 family/sort/конкурсы-и-игры-на-вечеринке.md | 0 family/sort/контакт-андрей-исаев-ddg.md | 0 family/sort/кофр-размер.md | 0 family/sort/лдсп-размер-на-стиралку.md | 0 family/sort/лизе-на-день-рождения.md | 0 family/sort/лыжи-размеры.md | 0 family/sort/мтс-тариф-посекундный.md | 0 family/sort/музыкальные-жанры-рекомендации.md | 0 family/sort/настойки-рецепты.md | 0 family/sort/номера-строителей.md | 0 family/sort/ошибки-семинара.md | 0 family/sort/пин-налог-кг.md | 0 family/sort/пин.md | 0 family/sort/показания-счётчиков.md | 0 family/sort/праздничная-еда-список.md | 0 family/sort/продукты-на-новый-год.md | 0 family/sort/пылесос-haier-размер.md | 0 family/sort/расходы-на-бургер.md | 0 family/sort/расходы-на-плов.md | 0 family/sort/сало-на-ортосае-где-найти.md | 0 family/sort/склад-пароль.md | 0 family/sort/список-дел-замеры.md | 0 family/sort/список-дел-разное.md | 0 family/sort/стеллаж-в-кладовку-размеры.md | 0 family/sort/счётчик-каракол-показание.md | 0 family/sort/трек-номер-dhl.md | 0 family/sort/уроки-истории-номер.md | 0 family/sync/vault-sync-2026-05-13.md | 0 family/sync/vault-sync-2026-05-22.md | 0 personal/_index.md | 0 personal/books-wishlist.md | 0 personal/business/companies-history.md | 0 personal/business/ip-registration-guide.md | 0 personal/business/profile.md | 0 personal/business/sessions/2026-W20.md | 0 personal/business/sessions/2026-W21.md | 0 personal/creative/aphorisms.md | 0 personal/creative/arctic-poem.md | 0 personal/creative/ideas-generation.md | 0 personal/creative/notes/Фашизм определение.md | 0 personal/creative/poems/da-bud-ya-evreiem.md | 0 personal/creative/poems/krematoriy-na-tanspole.md | 0 personal/creative/poems/not-mine/franshiza.md | 0 personal/creative/songs.md | 0 personal/creative/songs/antonoshe.md | 0 personal/creative/songs/bozhe-bozhe.md | 0 personal/creative/songs/i-mnogo-radosti-original.md | 0 personal/creative/songs/irlandskiy-pab.md | 0 personal/creative/songs/iskuplenie.md | 0 personal/creative/songs/malenkaya-strana.md | 0 personal/creative/songs/minimalnaya-diaspora.md | 0 personal/creative/songs/na-derevnyu-k-babushke.md | 0 personal/creative/songs/natashka.md | 0 personal/creative/songs/ne-pokupayut-edy-covid.md | 0 personal/creative/songs/ptitsy-ragnareka.md | 0 personal/creative/songs/rasprodazha.md | 0 personal/creative/songs/ya-khuyaryashiy-maket.md | 0 personal/creative/songs/zahodи-na-ugolyok.md | 0 personal/creative/toasts/toast-anton.md | 0 personal/creative/toasts/toast-obshiy.md | 0 personal/creative/toasts/toast-oleg.md | 0 personal/docs/Dyld dynamic interposing.md | 0 personal/docs/OpenRouter setup.md | 0 personal/docs/Swift cross-platform testing.md | 0 personal/docs/docker_colima_setup.md | 0 personal/docs/openclaw gmail setup.md | 0 personal/docs/setup SSH macOS VM VirtualBuddy.md | 0 personal/docs/truenas-remote-access-reverse-proxy.md | 0 personal/documents/3d-print-wishlist.md | 0 .../app-ideas-enriched/accessibility-browser-20260524.md | 0 .../app-ideas-enriched/lifelogger-voice-diary-20260517.md | 0 .../documents/app-ideas-enriched/local-rag-indexer-20260517.md | 0 .../app-ideas-enriched/mcp-permissions-activator-20260524.md | 0 .../app-ideas-enriched/robots-elves-time-paradox-20260524.md | 0 .../app-ideas-enriched/voice-assistant-aide-20260524.md | 0 personal/documents/app-ideas.md | 0 personal/documents/books-reading-list.md | 0 personal/documents/budget-app-features.md | 0 personal/documents/deferred-tasks.md | 0 personal/documents/fly-box.md | 0 personal/documents/russia-tasks.md | 0 personal/documents/subscription-gym.md | 0 personal/documents/todo-list.md | 0 personal/documents/workout.md | 0 personal/ideas/marx-theory-of-value.md | 0 personal/index.md | 0 personal/music-download-practices.md | 0 personal/plans/job-search.md | 0 personal/plans/kraken-voice-tasks.md | 0 personal/plans/llm-wiki-plan.md | 0 personal/projects/app-ideas.md | 0 personal/projects/library-app.md | 0 personal/projects/media-pipeline-file-routing.md | 0 personal/projects/media-pipeline-tracker-parsers.md | 0 personal/projects/nolvu-reflect-skip.md | 0 personal/projects/orblab.md | 0 personal/projects/personal-os/agent-names-brainstorm.md | 0 personal/projects/personal-os/ai-psychologist-research.md | 0 .../personal-os/enrichment-runs/cross-enrichment-last.md | 0 .../enrichment-runs/cross-enrichment-overflow-2026-05-24.md | 0 .../personal-os/enrichment-runs/cross-enrichment-queue.md | 0 personal/projects/personal-os/enrichment-runs/last.md | 0 personal/projects/personal-os/executor-orchestrator-redesign.md | 0 personal/projects/personal-os/executor-security-analysis.md | 0 personal/projects/personal-os/executor-skip-report.md | 0 personal/projects/personal-os/executor-spawning-research.md | 0 personal/projects/personal-os/executor-v2-redesign.md | 0 personal/projects/personal-os/hermes-calendar-access.md | 0 personal/projects/personal-os/kraken-obsidian-write-bug.md | 0 personal/projects/personal-os/obsidian-vault-strategy.md | 0 personal/projects/personal-os/time-machine-tunnel-backup.md | 0 personal/projects/personal-os/unprejudiced-ai-psychologist.md | 0 personal/projects/personal-os/wiki-curation-runs/2026-05-15.md | 0 .../projects/personal-os/wiki-curation-runs/2026-05-16-p2.md | 0 personal/projects/personal-os/wiki-curation-runs/2026-05-16.md | 0 personal/projects/personal-os/wiki-curation-runs/2026-05-17.md | 0 .../projects/personal-os/wiki-curation-runs/2026-05-18-02h.md | 0 personal/projects/personal-os/wiki-curation-runs/2026-05-18.md | 0 personal/projects/personal-os/wiki-curation-runs/2026-05-19.md | 0 personal/projects/personal-os/wiki-curation-runs/2026-05-20.md | 0 personal/projects/personal-os/wiki-curation-runs/2026-05-22.md | 0 personal/projects/personal-os/wiki-curation-runs/2026-05-23.md | 0 personal/projects/personal-os/wiki-curation-runs/2026-05-24.md | 0 personal/projects/personal-os/wiki-curation-runs/2026-05-25.md | 0 personal/projects/personal-os/wiki-curation-runs/2026-05-27.md | 0 personal/projects/personal-os/wiki-curation-runs/2026-05-28.md | 0 personal/projects/personal-os/wiki-curation-runs/2026-05-29.md | 0 .../personal-os/wiki-curation-runs/research-2026-05-23.md | 0 personal/projects/personal-os/zoom-ai-transcript-export.md | 0 personal/projects/psychologist-app/analytics.md | 0 personal/projects/psychologist-app/character-design.md | 0 personal/projects/psychologist-app/crisis-protocol.md | 0 personal/projects/psychologist-app/dev-setup.md | 0 personal/projects/psychologist-app/landing.md | 0 personal/projects/psychologist-app/market-analysis.md | 0 personal/projects/psychologist-app/market-focus.md | 0 personal/projects/psychologist-app/marketing-hooks.md | 0 personal/projects/psychologist-app/marketing-strategy.md | 0 personal/projects/psychologist-app/monetization-revenuecat.md | 0 personal/projects/psychologist-app/naming.md | 0 personal/projects/psychologist-app/onboarding-archetypes.md | 0 personal/projects/psychologist-app/onboarding-ux.md | 0 personal/projects/psychologist-app/overview.md | 0 personal/projects/psychologist-app/privacy-legal.md | 0 personal/projects/psychologist-app/session-design.md | 0 personal/projects/psychologist-app/skip-tools-poc.md | 0 personal/projects/psychologist-app/twitter-thread-draft.md | 0 personal/psychology/insights.md | 0 personal/psychology/observations/2026-W20.md | 0 personal/psychology/observations/2026-W21.md | 0 personal/psychology/observations/2026-W22.md | 0 personal/psychology/profile.md | 0 personal/psychology/prompts.md | 0 personal/psychology/reflect-skip-android.md | 0 personal/shopping-order.md | 0 personal/spotify-library.md | 0 personal/sync-test.md | 0 personal/test_taiga_access.md | 0 personal/test_taiga_access_obsidian.md | 0 sync-test.md | 1 + 357 files changed, 3 insertions(+) mode change 100755 => 100644 family/_index.md mode change 100755 => 100644 family/contacts/birthdays.md mode change 100755 => 100644 family/contacts/service-providers.md mode change 100755 => 100644 family/contacts/services.md mode change 100755 => 100644 family/documents/altai-electricity-meter.md mode change 100755 => 100644 family/documents/altai-house-inventory.md mode change 100755 => 100644 family/documents/altai-shopping.md mode change 100755 => 100644 family/documents/books-reading-list.md mode change 100755 => 100644 family/documents/books-wishlist.md mode change 100755 => 100644 family/documents/bring-to-russia.md mode change 100755 => 100644 family/documents/car-notes.md mode change 100755 => 100644 family/documents/fasteners-nomenclature.md mode change 100755 => 100644 family/documents/flea-market-shopping.md mode change 100755 => 100644 family/documents/games-wishlist.md mode change 100755 => 100644 family/documents/gift-ideas.md mode change 100755 => 100644 family/documents/google-books-api-key.md mode change 100755 => 100644 family/documents/hiking-packing-list.md mode change 100755 => 100644 family/documents/holiday-food.md mode change 100755 => 100644 family/documents/home-access-codes.md mode change 100755 => 100644 family/documents/home-automation-wishlist.md mode change 100755 => 100644 family/documents/home-wishlist.md mode change 100755 => 100644 family/documents/karaoke-songs.md mode change 100755 => 100644 family/documents/kids-activities.md mode change 100755 => 100644 family/documents/kids-songs.md mode change 100755 => 100644 family/documents/lerua-shopping.md mode change 100755 => 100644 family/documents/loyalty-cards.md mode change 100755 => 100644 family/documents/movies-watchlist.md mode change 100755 => 100644 family/documents/party-games.md mode change 100755 => 100644 family/documents/places-to-visit.md mode change 100755 => 100644 family/documents/recipes-wishlist.md mode change 100755 => 100644 family/documents/shopping-lists.md mode change 100755 => 100644 family/documents/shopping-order.md mode change 100755 => 100644 family/documents/trip-packing-list.md mode change 100755 => 100644 family/documents/vault-sync-2026-05-13-08-01.md mode change 100755 => 100644 family/documents/vault-sync-2026-05-20.md mode change 100755 => 100644 family/documents/vault-sync-2026-05-21.md mode change 100755 => 100644 family/documents/vault-sync-summary-2026-05-22.md mode change 100755 => 100644 family/documents/vault-sync/2026-05-13-sync.md mode change 100755 => 100644 family/documents/vault-sync/2026-05-15-sync.md mode change 100755 => 100644 family/documents/vault-sync/2026-05-22-vault-sync.md mode change 100755 => 100644 family/documents/vault-sync/2026-05-23.md mode change 100755 => 100644 family/documents/vault-sync/20260514.md mode change 100755 => 100644 family/documents/книги-ребенку.md mode change 100755 => 100644 family/how-to/arduino-programming.md mode change 100755 => 100644 family/how-to/home-automation.md mode change 100755 => 100644 family/how-to/htpc-access.md mode change 100755 => 100644 family/how-to/htpc-emulators-setup.md mode change 100755 => 100644 family/how-to/htpc-gaming-plans.md mode change 100755 => 100644 family/how-to/htpc-magic4pc.md mode change 100755 => 100644 family/how-to/htpc-migration-plan.md mode change 100755 => 100644 family/how-to/htpc-steam-nonsteam-shortcuts.md mode change 100755 => 100644 family/how-to/htpc-system.md mode change 100755 => 100644 family/how-to/htpc-webos-luna.md mode change 100755 => 100644 family/how-to/htpc.md mode change 100755 => 100644 family/how-to/kraken-access.md mode change 100755 => 100644 family/how-to/kraken-portainer-access.md mode change 100755 => 100644 family/how-to/lg-remote-keys.md mode change 100755 => 100644 family/how-to/magic4pc-webos.md mode change 100755 => 100644 family/how-to/mesh-networks.md mode change 100755 => 100644 family/how-to/mp3-bluetooth-remote.md mode change 100755 => 100644 family/how-to/navidrome-truenas-android.md mode change 100755 => 100644 family/how-to/nodered-ventilation.md mode change 100755 => 100644 family/how-to/obsidian-android-sync.md mode change 100755 => 100644 family/how-to/obsidian-sync.md mode change 100755 => 100644 family/how-to/openmediavault-rpi5.md mode change 100755 => 100644 family/how-to/router-bishkek-asus.md mode change 100755 => 100644 family/how-to/samsung.md mode change 100755 => 100644 family/how-to/speaker-sd-card-music.md mode change 100755 => 100644 family/how-to/switch-emulation-rom-infra.md mode change 100755 => 100644 family/how-to/syncthing-truenas-android.md mode change 100755 => 100644 family/how-to/truenas-access.md mode change 100755 => 100644 family/how-to/truenas-infrastructure.md mode change 100755 => 100644 family/how-to/truenas-rclone-backup.md mode change 100755 => 100644 family/how-to/tv-luna-send.md mode change 100755 => 100644 family/how-to/vault-sync-log-2026-05-15.md mode change 100755 => 100644 family/how-to/vault-sync-logs/2026-05-14.md mode change 100755 => 100644 family/how-to/vault-sync-summary.md mode change 100755 => 100644 family/how-to/virtual-keyboard-bazzite.md mode change 100755 => 100644 family/how-to/wireguard-vpn.md mode change 100755 => 100644 family/how-to/xgimi-play6-setup.md mode change 100755 => 100644 family/how-to/xgimi-play6.md mode change 100755 => 100644 family/how-to/xiaomi-wifi-fix.md mode change 100755 => 100644 family/index.md mode change 100755 => 100644 family/logs/vault-sync-2026-05-22.md mode change 100755 => 100644 family/parenting/father-profile.md mode change 100755 => 100644 family/parenting/liza-profile.md mode change 100755 => 100644 family/parenting/natalia-profile.md mode change 100755 => 100644 family/projects/aide-kraken-backend.md mode change 100755 => 100644 family/projects/htpc-windows-games-fix.md mode change 100755 => 100644 family/projects/media-pipeline-agent.md mode change 100755 => 100644 family/projects/media-toolbox-kraken.md mode change 100755 => 100644 family/projects/media-toolbox-taiga.md mode change 100755 => 100644 family/projects/watchlist-discover.md mode change 100755 => 100644 family/projects/watchlist-sync.md mode change 100755 => 100644 family/schedule/reminders.md mode change 100755 => 100644 family/schedule/vacation-july-august-2026.md mode change 100755 => 100644 family/schedule/weekend-plans.md mode change 100755 => 100644 family/sort/duty-free-список.md mode change 100755 => 100644 family/sort/feedback-идеи.md mode change 100755 => 100644 family/sort/grohe-ключ-активации.md mode change 100755 => 100644 family/sort/keep-2023-09-13_15_03_43.md mode change 100755 => 100644 family/sort/keep-2023-09-24_14_40_48.md mode change 100755 => 100644 family/sort/keep-2023-10-10_11_15_25.md mode change 100755 => 100644 family/sort/keep-2023-11-12_18_59_50.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_19.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_20.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_21.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_22.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_23.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_25.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_26.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_27.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_28.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_29.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_30.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_31.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_32.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_34.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_35.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_37.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_38.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_39.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_40.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_41.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_43.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_44.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_45.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_46.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_47.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_48.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_49.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_50.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_51.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_52.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_53.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_54.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_55.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_56.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_57.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_41_59.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_42_00.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_42_01.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_42_02.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_42_03.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_42_05.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_42_06.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_42_07.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_42_08.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_42_10.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_42_11.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_42_12.md mode change 100755 => 100644 family/sort/keep-2023-11-14_00_42_13.md mode change 100755 => 100644 family/sort/keep-2023-11-28_22_23_01.md mode change 100755 => 100644 family/sort/keep-2024-03-03_11_57_34.md mode change 100755 => 100644 family/sort/keep-2024-05-17_22_10_53.md mode change 100755 => 100644 family/sort/keep-2024-07-04_10_51_13.md mode change 100755 => 100644 family/sort/keep-2024-08-31_13_54_16.md mode change 100755 => 100644 family/sort/keep-2024-09-28_11_04_08.md mode change 100755 => 100644 family/sort/keep-2024-10-12_05_39_05.md mode change 100755 => 100644 family/sort/keep-2024-11-02_00_03_55.md mode change 100755 => 100644 family/sort/keep-2024-12-06_22_30_09.md mode change 100755 => 100644 family/sort/keep-2025-01-20_16_59_24.md mode change 100755 => 100644 family/sort/keep-2025-02-04_12_19_41.md mode change 100755 => 100644 family/sort/keep-2025-02-07_12_04_37.md mode change 100755 => 100644 family/sort/keep-2025-02-13_00_29_53.md mode change 100755 => 100644 family/sort/keep-2025-03-08_23_14_38.md mode change 100755 => 100644 family/sort/keep-2025-03-21_22_52_16.md mode change 100755 => 100644 family/sort/keep-2025-06-16_10_36_48.md mode change 100755 => 100644 family/sort/keep-2025-07-27_15_41_12.md mode change 100755 => 100644 family/sort/keep-2025-09-14_11_59_05.md mode change 100755 => 100644 family/sort/keep-2025-12-05_17_53_00.md mode change 100755 => 100644 family/sort/keep-2025-12-10_15_45_54.md mode change 100755 => 100644 family/sort/keep-2026-02-04_14_44_55.md mode change 100755 => 100644 family/sort/keep-2026-03-23_12_14_12.md mode change 100755 => 100644 family/sort/performance-review-вопросы.md mode change 100755 => 100644 family/sort/pinduoduo-заказ.md mode change 100755 => 100644 family/sort/zoom-ссылка.md mode change 100755 => 100644 family/sort/алтай-счётчик-заявление.md mode change 100755 => 100644 family/sort/антирадар.md mode change 100755 => 100644 family/sort/взять-на-алтай-короткий.md mode change 100755 => 100644 family/sort/взять-на-алтай-стройматериалы.md mode change 100755 => 100644 family/sort/вино.md mode change 100755 => 100644 family/sort/витамины-и-таблетки.md mode change 100755 => 100644 family/sort/вопросы-по-погребу.md mode change 100755 => 100644 family/sort/генерация-идей-творчество.md mode change 100755 => 100644 family/sort/документы-военкомат.md mode change 100755 => 100644 family/sort/долги-и-расчёты.md mode change 100755 => 100644 family/sort/задачи-по-фасадам.md mode change 100755 => 100644 family/sort/идея-бренда.md mode change 100755 => 100644 family/sort/инн-второй.md mode change 100755 => 100644 family/sort/инн.md mode change 100755 => 100644 family/sort/код-котла-vaillant.md mode change 100755 => 100644 family/sort/код-от-лестницы.md mode change 100755 => 100644 family/sort/код-садика.md mode change 100755 => 100644 family/sort/код-чемодан.md mode change 100755 => 100644 family/sort/коды-сейфа.md mode change 100755 => 100644 family/sort/конкурсы-и-игры-на-вечеринке.md mode change 100755 => 100644 family/sort/контакт-андрей-исаев-ddg.md mode change 100755 => 100644 family/sort/кофр-размер.md mode change 100755 => 100644 family/sort/лдсп-размер-на-стиралку.md mode change 100755 => 100644 family/sort/лизе-на-день-рождения.md mode change 100755 => 100644 family/sort/лыжи-размеры.md mode change 100755 => 100644 family/sort/мтс-тариф-посекундный.md mode change 100755 => 100644 family/sort/музыкальные-жанры-рекомендации.md mode change 100755 => 100644 family/sort/настойки-рецепты.md mode change 100755 => 100644 family/sort/номера-строителей.md mode change 100755 => 100644 family/sort/ошибки-семинара.md mode change 100755 => 100644 family/sort/пин-налог-кг.md mode change 100755 => 100644 family/sort/пин.md mode change 100755 => 100644 family/sort/показания-счётчиков.md mode change 100755 => 100644 family/sort/праздничная-еда-список.md mode change 100755 => 100644 family/sort/продукты-на-новый-год.md mode change 100755 => 100644 family/sort/пылесос-haier-размер.md mode change 100755 => 100644 family/sort/расходы-на-бургер.md mode change 100755 => 100644 family/sort/расходы-на-плов.md mode change 100755 => 100644 family/sort/сало-на-ортосае-где-найти.md mode change 100755 => 100644 family/sort/склад-пароль.md mode change 100755 => 100644 family/sort/список-дел-замеры.md mode change 100755 => 100644 family/sort/список-дел-разное.md mode change 100755 => 100644 family/sort/стеллаж-в-кладовку-размеры.md mode change 100755 => 100644 family/sort/счётчик-каракол-показание.md mode change 100755 => 100644 family/sort/трек-номер-dhl.md mode change 100755 => 100644 family/sort/уроки-истории-номер.md mode change 100755 => 100644 family/sync/vault-sync-2026-05-13.md mode change 100755 => 100644 family/sync/vault-sync-2026-05-22.md mode change 100755 => 100644 personal/_index.md mode change 100755 => 100644 personal/books-wishlist.md mode change 100755 => 100644 personal/business/companies-history.md mode change 100755 => 100644 personal/business/ip-registration-guide.md mode change 100755 => 100644 personal/business/profile.md mode change 100755 => 100644 personal/business/sessions/2026-W20.md mode change 100755 => 100644 personal/business/sessions/2026-W21.md mode change 100755 => 100644 personal/creative/aphorisms.md mode change 100755 => 100644 personal/creative/arctic-poem.md mode change 100755 => 100644 personal/creative/ideas-generation.md mode change 100755 => 100644 personal/creative/notes/Фашизм определение.md mode change 100755 => 100644 personal/creative/poems/da-bud-ya-evreiem.md mode change 100755 => 100644 personal/creative/poems/krematoriy-na-tanspole.md mode change 100755 => 100644 personal/creative/poems/not-mine/franshiza.md mode change 100755 => 100644 personal/creative/songs.md mode change 100755 => 100644 personal/creative/songs/antonoshe.md mode change 100755 => 100644 personal/creative/songs/bozhe-bozhe.md mode change 100755 => 100644 personal/creative/songs/i-mnogo-radosti-original.md mode change 100755 => 100644 personal/creative/songs/irlandskiy-pab.md mode change 100755 => 100644 personal/creative/songs/iskuplenie.md mode change 100755 => 100644 personal/creative/songs/malenkaya-strana.md mode change 100755 => 100644 personal/creative/songs/minimalnaya-diaspora.md mode change 100755 => 100644 personal/creative/songs/na-derevnyu-k-babushke.md mode change 100755 => 100644 personal/creative/songs/natashka.md mode change 100755 => 100644 personal/creative/songs/ne-pokupayut-edy-covid.md mode change 100755 => 100644 personal/creative/songs/ptitsy-ragnareka.md mode change 100755 => 100644 personal/creative/songs/rasprodazha.md mode change 100755 => 100644 personal/creative/songs/ya-khuyaryashiy-maket.md mode change 100755 => 100644 personal/creative/songs/zahodи-na-ugolyok.md mode change 100755 => 100644 personal/creative/toasts/toast-anton.md mode change 100755 => 100644 personal/creative/toasts/toast-obshiy.md mode change 100755 => 100644 personal/creative/toasts/toast-oleg.md mode change 100755 => 100644 personal/docs/Dyld dynamic interposing.md mode change 100755 => 100644 personal/docs/OpenRouter setup.md mode change 100755 => 100644 personal/docs/Swift cross-platform testing.md mode change 100755 => 100644 personal/docs/docker_colima_setup.md mode change 100755 => 100644 personal/docs/openclaw gmail setup.md mode change 100755 => 100644 personal/docs/setup SSH macOS VM VirtualBuddy.md mode change 100755 => 100644 personal/docs/truenas-remote-access-reverse-proxy.md mode change 100755 => 100644 personal/documents/3d-print-wishlist.md mode change 100755 => 100644 personal/documents/app-ideas-enriched/accessibility-browser-20260524.md mode change 100755 => 100644 personal/documents/app-ideas-enriched/lifelogger-voice-diary-20260517.md mode change 100755 => 100644 personal/documents/app-ideas-enriched/local-rag-indexer-20260517.md mode change 100755 => 100644 personal/documents/app-ideas-enriched/mcp-permissions-activator-20260524.md mode change 100755 => 100644 personal/documents/app-ideas-enriched/robots-elves-time-paradox-20260524.md mode change 100755 => 100644 personal/documents/app-ideas-enriched/voice-assistant-aide-20260524.md mode change 100755 => 100644 personal/documents/app-ideas.md mode change 100755 => 100644 personal/documents/books-reading-list.md mode change 100755 => 100644 personal/documents/budget-app-features.md mode change 100755 => 100644 personal/documents/deferred-tasks.md mode change 100755 => 100644 personal/documents/fly-box.md mode change 100755 => 100644 personal/documents/russia-tasks.md mode change 100755 => 100644 personal/documents/subscription-gym.md mode change 100755 => 100644 personal/documents/todo-list.md mode change 100755 => 100644 personal/documents/workout.md mode change 100755 => 100644 personal/ideas/marx-theory-of-value.md mode change 100755 => 100644 personal/index.md mode change 100755 => 100644 personal/music-download-practices.md mode change 100755 => 100644 personal/plans/job-search.md mode change 100755 => 100644 personal/plans/kraken-voice-tasks.md mode change 100755 => 100644 personal/plans/llm-wiki-plan.md mode change 100755 => 100644 personal/projects/app-ideas.md mode change 100755 => 100644 personal/projects/library-app.md mode change 100755 => 100644 personal/projects/media-pipeline-file-routing.md mode change 100755 => 100644 personal/projects/media-pipeline-tracker-parsers.md mode change 100755 => 100644 personal/projects/nolvu-reflect-skip.md mode change 100755 => 100644 personal/projects/orblab.md mode change 100755 => 100644 personal/projects/personal-os/agent-names-brainstorm.md mode change 100755 => 100644 personal/projects/personal-os/ai-psychologist-research.md mode change 100755 => 100644 personal/projects/personal-os/enrichment-runs/cross-enrichment-last.md mode change 100755 => 100644 personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-24.md mode change 100755 => 100644 personal/projects/personal-os/enrichment-runs/cross-enrichment-queue.md mode change 100755 => 100644 personal/projects/personal-os/enrichment-runs/last.md mode change 100755 => 100644 personal/projects/personal-os/executor-orchestrator-redesign.md mode change 100755 => 100644 personal/projects/personal-os/executor-security-analysis.md mode change 100755 => 100644 personal/projects/personal-os/executor-skip-report.md mode change 100755 => 100644 personal/projects/personal-os/executor-spawning-research.md mode change 100755 => 100644 personal/projects/personal-os/executor-v2-redesign.md mode change 100755 => 100644 personal/projects/personal-os/hermes-calendar-access.md mode change 100755 => 100644 personal/projects/personal-os/kraken-obsidian-write-bug.md mode change 100755 => 100644 personal/projects/personal-os/obsidian-vault-strategy.md mode change 100755 => 100644 personal/projects/personal-os/time-machine-tunnel-backup.md mode change 100755 => 100644 personal/projects/personal-os/unprejudiced-ai-psychologist.md mode change 100755 => 100644 personal/projects/personal-os/wiki-curation-runs/2026-05-15.md mode change 100755 => 100644 personal/projects/personal-os/wiki-curation-runs/2026-05-16-p2.md mode change 100755 => 100644 personal/projects/personal-os/wiki-curation-runs/2026-05-16.md mode change 100755 => 100644 personal/projects/personal-os/wiki-curation-runs/2026-05-17.md mode change 100755 => 100644 personal/projects/personal-os/wiki-curation-runs/2026-05-18-02h.md mode change 100755 => 100644 personal/projects/personal-os/wiki-curation-runs/2026-05-18.md mode change 100755 => 100644 personal/projects/personal-os/wiki-curation-runs/2026-05-19.md mode change 100755 => 100644 personal/projects/personal-os/wiki-curation-runs/2026-05-20.md mode change 100755 => 100644 personal/projects/personal-os/wiki-curation-runs/2026-05-22.md mode change 100755 => 100644 personal/projects/personal-os/wiki-curation-runs/2026-05-23.md mode change 100755 => 100644 personal/projects/personal-os/wiki-curation-runs/2026-05-24.md mode change 100755 => 100644 personal/projects/personal-os/wiki-curation-runs/2026-05-25.md mode change 100755 => 100644 personal/projects/personal-os/wiki-curation-runs/2026-05-27.md mode change 100755 => 100644 personal/projects/personal-os/wiki-curation-runs/2026-05-28.md mode change 100755 => 100644 personal/projects/personal-os/wiki-curation-runs/2026-05-29.md mode change 100755 => 100644 personal/projects/personal-os/wiki-curation-runs/research-2026-05-23.md mode change 100755 => 100644 personal/projects/personal-os/zoom-ai-transcript-export.md mode change 100755 => 100644 personal/projects/psychologist-app/analytics.md mode change 100755 => 100644 personal/projects/psychologist-app/character-design.md mode change 100755 => 100644 personal/projects/psychologist-app/crisis-protocol.md mode change 100755 => 100644 personal/projects/psychologist-app/dev-setup.md mode change 100755 => 100644 personal/projects/psychologist-app/landing.md mode change 100755 => 100644 personal/projects/psychologist-app/market-analysis.md mode change 100755 => 100644 personal/projects/psychologist-app/market-focus.md mode change 100755 => 100644 personal/projects/psychologist-app/marketing-hooks.md mode change 100755 => 100644 personal/projects/psychologist-app/marketing-strategy.md mode change 100755 => 100644 personal/projects/psychologist-app/monetization-revenuecat.md mode change 100755 => 100644 personal/projects/psychologist-app/naming.md mode change 100755 => 100644 personal/projects/psychologist-app/onboarding-archetypes.md mode change 100755 => 100644 personal/projects/psychologist-app/onboarding-ux.md mode change 100755 => 100644 personal/projects/psychologist-app/overview.md mode change 100755 => 100644 personal/projects/psychologist-app/privacy-legal.md mode change 100755 => 100644 personal/projects/psychologist-app/session-design.md mode change 100755 => 100644 personal/projects/psychologist-app/skip-tools-poc.md mode change 100755 => 100644 personal/projects/psychologist-app/twitter-thread-draft.md mode change 100755 => 100644 personal/psychology/insights.md mode change 100755 => 100644 personal/psychology/observations/2026-W20.md mode change 100755 => 100644 personal/psychology/observations/2026-W21.md mode change 100755 => 100644 personal/psychology/observations/2026-W22.md mode change 100755 => 100644 personal/psychology/profile.md mode change 100755 => 100644 personal/psychology/prompts.md mode change 100755 => 100644 personal/psychology/reflect-skip-android.md mode change 100755 => 100644 personal/shopping-order.md mode change 100755 => 100644 personal/spotify-library.md mode change 100755 => 100644 personal/sync-test.md mode change 100755 => 100644 personal/test_taiga_access.md mode change 100755 => 100644 personal/test_taiga_access_obsidian.md create mode 100644 sync-test.md diff --git a/.gitignore b/.gitignore index 6b00b531..1498a7e2 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ .obsidian/plugins/obsidian-git/main.js .obsidian/plugins/obsidian-git/styles.css .obsidian/plugins/obsidian-git/manifest.json +.stignore +.stversions diff --git a/family/_index.md b/family/_index.md old mode 100755 new mode 100644 diff --git a/family/contacts/birthdays.md b/family/contacts/birthdays.md old mode 100755 new mode 100644 diff --git a/family/contacts/service-providers.md b/family/contacts/service-providers.md old mode 100755 new mode 100644 diff --git a/family/contacts/services.md b/family/contacts/services.md old mode 100755 new mode 100644 diff --git a/family/documents/altai-electricity-meter.md b/family/documents/altai-electricity-meter.md old mode 100755 new mode 100644 diff --git a/family/documents/altai-house-inventory.md b/family/documents/altai-house-inventory.md old mode 100755 new mode 100644 diff --git a/family/documents/altai-shopping.md b/family/documents/altai-shopping.md old mode 100755 new mode 100644 diff --git a/family/documents/books-reading-list.md b/family/documents/books-reading-list.md old mode 100755 new mode 100644 diff --git a/family/documents/books-wishlist.md b/family/documents/books-wishlist.md old mode 100755 new mode 100644 diff --git a/family/documents/bring-to-russia.md b/family/documents/bring-to-russia.md old mode 100755 new mode 100644 diff --git a/family/documents/car-notes.md b/family/documents/car-notes.md old mode 100755 new mode 100644 diff --git a/family/documents/fasteners-nomenclature.md b/family/documents/fasteners-nomenclature.md old mode 100755 new mode 100644 diff --git a/family/documents/flea-market-shopping.md b/family/documents/flea-market-shopping.md old mode 100755 new mode 100644 diff --git a/family/documents/games-wishlist.md b/family/documents/games-wishlist.md old mode 100755 new mode 100644 diff --git a/family/documents/gift-ideas.md b/family/documents/gift-ideas.md old mode 100755 new mode 100644 diff --git a/family/documents/google-books-api-key.md b/family/documents/google-books-api-key.md old mode 100755 new mode 100644 diff --git a/family/documents/hiking-packing-list.md b/family/documents/hiking-packing-list.md old mode 100755 new mode 100644 diff --git a/family/documents/holiday-food.md b/family/documents/holiday-food.md old mode 100755 new mode 100644 diff --git a/family/documents/home-access-codes.md b/family/documents/home-access-codes.md old mode 100755 new mode 100644 diff --git a/family/documents/home-automation-wishlist.md b/family/documents/home-automation-wishlist.md old mode 100755 new mode 100644 diff --git a/family/documents/home-wishlist.md b/family/documents/home-wishlist.md old mode 100755 new mode 100644 diff --git a/family/documents/karaoke-songs.md b/family/documents/karaoke-songs.md old mode 100755 new mode 100644 diff --git a/family/documents/kids-activities.md b/family/documents/kids-activities.md old mode 100755 new mode 100644 diff --git a/family/documents/kids-songs.md b/family/documents/kids-songs.md old mode 100755 new mode 100644 diff --git a/family/documents/lerua-shopping.md b/family/documents/lerua-shopping.md old mode 100755 new mode 100644 diff --git a/family/documents/loyalty-cards.md b/family/documents/loyalty-cards.md old mode 100755 new mode 100644 diff --git a/family/documents/movies-watchlist.md b/family/documents/movies-watchlist.md old mode 100755 new mode 100644 diff --git a/family/documents/party-games.md b/family/documents/party-games.md old mode 100755 new mode 100644 diff --git a/family/documents/places-to-visit.md b/family/documents/places-to-visit.md old mode 100755 new mode 100644 diff --git a/family/documents/recipes-wishlist.md b/family/documents/recipes-wishlist.md old mode 100755 new mode 100644 diff --git a/family/documents/shopping-lists.md b/family/documents/shopping-lists.md old mode 100755 new mode 100644 diff --git a/family/documents/shopping-order.md b/family/documents/shopping-order.md old mode 100755 new mode 100644 diff --git a/family/documents/trip-packing-list.md b/family/documents/trip-packing-list.md old mode 100755 new mode 100644 diff --git a/family/documents/vault-sync-2026-05-13-08-01.md b/family/documents/vault-sync-2026-05-13-08-01.md old mode 100755 new mode 100644 diff --git a/family/documents/vault-sync-2026-05-20.md b/family/documents/vault-sync-2026-05-20.md old mode 100755 new mode 100644 diff --git a/family/documents/vault-sync-2026-05-21.md b/family/documents/vault-sync-2026-05-21.md old mode 100755 new mode 100644 diff --git a/family/documents/vault-sync-summary-2026-05-22.md b/family/documents/vault-sync-summary-2026-05-22.md old mode 100755 new mode 100644 diff --git a/family/documents/vault-sync/2026-05-13-sync.md b/family/documents/vault-sync/2026-05-13-sync.md old mode 100755 new mode 100644 diff --git a/family/documents/vault-sync/2026-05-15-sync.md b/family/documents/vault-sync/2026-05-15-sync.md old mode 100755 new mode 100644 diff --git a/family/documents/vault-sync/2026-05-22-vault-sync.md b/family/documents/vault-sync/2026-05-22-vault-sync.md old mode 100755 new mode 100644 diff --git a/family/documents/vault-sync/2026-05-23.md b/family/documents/vault-sync/2026-05-23.md old mode 100755 new mode 100644 diff --git a/family/documents/vault-sync/20260514.md b/family/documents/vault-sync/20260514.md old mode 100755 new mode 100644 diff --git a/family/documents/книги-ребенку.md b/family/documents/книги-ребенку.md old mode 100755 new mode 100644 diff --git a/family/how-to/arduino-programming.md b/family/how-to/arduino-programming.md old mode 100755 new mode 100644 diff --git a/family/how-to/home-automation.md b/family/how-to/home-automation.md old mode 100755 new mode 100644 diff --git a/family/how-to/htpc-access.md b/family/how-to/htpc-access.md old mode 100755 new mode 100644 diff --git a/family/how-to/htpc-emulators-setup.md b/family/how-to/htpc-emulators-setup.md old mode 100755 new mode 100644 diff --git a/family/how-to/htpc-gaming-plans.md b/family/how-to/htpc-gaming-plans.md old mode 100755 new mode 100644 diff --git a/family/how-to/htpc-magic4pc.md b/family/how-to/htpc-magic4pc.md old mode 100755 new mode 100644 diff --git a/family/how-to/htpc-migration-plan.md b/family/how-to/htpc-migration-plan.md old mode 100755 new mode 100644 diff --git a/family/how-to/htpc-steam-nonsteam-shortcuts.md b/family/how-to/htpc-steam-nonsteam-shortcuts.md old mode 100755 new mode 100644 diff --git a/family/how-to/htpc-system.md b/family/how-to/htpc-system.md old mode 100755 new mode 100644 diff --git a/family/how-to/htpc-webos-luna.md b/family/how-to/htpc-webos-luna.md old mode 100755 new mode 100644 diff --git a/family/how-to/htpc.md b/family/how-to/htpc.md old mode 100755 new mode 100644 diff --git a/family/how-to/kraken-access.md b/family/how-to/kraken-access.md old mode 100755 new mode 100644 diff --git a/family/how-to/kraken-portainer-access.md b/family/how-to/kraken-portainer-access.md old mode 100755 new mode 100644 diff --git a/family/how-to/lg-remote-keys.md b/family/how-to/lg-remote-keys.md old mode 100755 new mode 100644 diff --git a/family/how-to/magic4pc-webos.md b/family/how-to/magic4pc-webos.md old mode 100755 new mode 100644 diff --git a/family/how-to/mesh-networks.md b/family/how-to/mesh-networks.md old mode 100755 new mode 100644 diff --git a/family/how-to/mp3-bluetooth-remote.md b/family/how-to/mp3-bluetooth-remote.md old mode 100755 new mode 100644 diff --git a/family/how-to/navidrome-truenas-android.md b/family/how-to/navidrome-truenas-android.md old mode 100755 new mode 100644 diff --git a/family/how-to/nodered-ventilation.md b/family/how-to/nodered-ventilation.md old mode 100755 new mode 100644 diff --git a/family/how-to/obsidian-android-sync.md b/family/how-to/obsidian-android-sync.md old mode 100755 new mode 100644 diff --git a/family/how-to/obsidian-sync.md b/family/how-to/obsidian-sync.md old mode 100755 new mode 100644 diff --git a/family/how-to/openmediavault-rpi5.md b/family/how-to/openmediavault-rpi5.md old mode 100755 new mode 100644 diff --git a/family/how-to/router-bishkek-asus.md b/family/how-to/router-bishkek-asus.md old mode 100755 new mode 100644 diff --git a/family/how-to/samsung.md b/family/how-to/samsung.md old mode 100755 new mode 100644 diff --git a/family/how-to/speaker-sd-card-music.md b/family/how-to/speaker-sd-card-music.md old mode 100755 new mode 100644 diff --git a/family/how-to/switch-emulation-rom-infra.md b/family/how-to/switch-emulation-rom-infra.md old mode 100755 new mode 100644 diff --git a/family/how-to/syncthing-truenas-android.md b/family/how-to/syncthing-truenas-android.md old mode 100755 new mode 100644 diff --git a/family/how-to/truenas-access.md b/family/how-to/truenas-access.md old mode 100755 new mode 100644 diff --git a/family/how-to/truenas-infrastructure.md b/family/how-to/truenas-infrastructure.md old mode 100755 new mode 100644 diff --git a/family/how-to/truenas-rclone-backup.md b/family/how-to/truenas-rclone-backup.md old mode 100755 new mode 100644 diff --git a/family/how-to/tv-luna-send.md b/family/how-to/tv-luna-send.md old mode 100755 new mode 100644 diff --git a/family/how-to/vault-sync-log-2026-05-15.md b/family/how-to/vault-sync-log-2026-05-15.md old mode 100755 new mode 100644 diff --git a/family/how-to/vault-sync-logs/2026-05-14.md b/family/how-to/vault-sync-logs/2026-05-14.md old mode 100755 new mode 100644 diff --git a/family/how-to/vault-sync-summary.md b/family/how-to/vault-sync-summary.md old mode 100755 new mode 100644 diff --git a/family/how-to/virtual-keyboard-bazzite.md b/family/how-to/virtual-keyboard-bazzite.md old mode 100755 new mode 100644 diff --git a/family/how-to/wireguard-vpn.md b/family/how-to/wireguard-vpn.md old mode 100755 new mode 100644 diff --git a/family/how-to/xgimi-play6-setup.md b/family/how-to/xgimi-play6-setup.md old mode 100755 new mode 100644 diff --git a/family/how-to/xgimi-play6.md b/family/how-to/xgimi-play6.md old mode 100755 new mode 100644 diff --git a/family/how-to/xiaomi-wifi-fix.md b/family/how-to/xiaomi-wifi-fix.md old mode 100755 new mode 100644 diff --git a/family/index.md b/family/index.md old mode 100755 new mode 100644 diff --git a/family/logs/vault-sync-2026-05-22.md b/family/logs/vault-sync-2026-05-22.md old mode 100755 new mode 100644 diff --git a/family/parenting/father-profile.md b/family/parenting/father-profile.md old mode 100755 new mode 100644 diff --git a/family/parenting/liza-profile.md b/family/parenting/liza-profile.md old mode 100755 new mode 100644 diff --git a/family/parenting/natalia-profile.md b/family/parenting/natalia-profile.md old mode 100755 new mode 100644 diff --git a/family/projects/aide-kraken-backend.md b/family/projects/aide-kraken-backend.md old mode 100755 new mode 100644 diff --git a/family/projects/htpc-windows-games-fix.md b/family/projects/htpc-windows-games-fix.md old mode 100755 new mode 100644 diff --git a/family/projects/media-pipeline-agent.md b/family/projects/media-pipeline-agent.md old mode 100755 new mode 100644 diff --git a/family/projects/media-toolbox-kraken.md b/family/projects/media-toolbox-kraken.md old mode 100755 new mode 100644 diff --git a/family/projects/media-toolbox-taiga.md b/family/projects/media-toolbox-taiga.md old mode 100755 new mode 100644 diff --git a/family/projects/watchlist-discover.md b/family/projects/watchlist-discover.md old mode 100755 new mode 100644 diff --git a/family/projects/watchlist-sync.md b/family/projects/watchlist-sync.md old mode 100755 new mode 100644 diff --git a/family/schedule/reminders.md b/family/schedule/reminders.md old mode 100755 new mode 100644 diff --git a/family/schedule/vacation-july-august-2026.md b/family/schedule/vacation-july-august-2026.md old mode 100755 new mode 100644 diff --git a/family/schedule/weekend-plans.md b/family/schedule/weekend-plans.md old mode 100755 new mode 100644 diff --git a/family/sort/duty-free-список.md b/family/sort/duty-free-список.md old mode 100755 new mode 100644 diff --git a/family/sort/feedback-идеи.md b/family/sort/feedback-идеи.md old mode 100755 new mode 100644 diff --git a/family/sort/grohe-ключ-активации.md b/family/sort/grohe-ключ-активации.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-09-13_15_03_43.md b/family/sort/keep-2023-09-13_15_03_43.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-09-24_14_40_48.md b/family/sort/keep-2023-09-24_14_40_48.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-10-10_11_15_25.md b/family/sort/keep-2023-10-10_11_15_25.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-12_18_59_50.md b/family/sort/keep-2023-11-12_18_59_50.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_19.md b/family/sort/keep-2023-11-14_00_41_19.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_20.md b/family/sort/keep-2023-11-14_00_41_20.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_21.md b/family/sort/keep-2023-11-14_00_41_21.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_22.md b/family/sort/keep-2023-11-14_00_41_22.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_23.md b/family/sort/keep-2023-11-14_00_41_23.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_25.md b/family/sort/keep-2023-11-14_00_41_25.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_26.md b/family/sort/keep-2023-11-14_00_41_26.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_27.md b/family/sort/keep-2023-11-14_00_41_27.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_28.md b/family/sort/keep-2023-11-14_00_41_28.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_29.md b/family/sort/keep-2023-11-14_00_41_29.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_30.md b/family/sort/keep-2023-11-14_00_41_30.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_31.md b/family/sort/keep-2023-11-14_00_41_31.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_32.md b/family/sort/keep-2023-11-14_00_41_32.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_34.md b/family/sort/keep-2023-11-14_00_41_34.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_35.md b/family/sort/keep-2023-11-14_00_41_35.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_37.md b/family/sort/keep-2023-11-14_00_41_37.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_38.md b/family/sort/keep-2023-11-14_00_41_38.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_39.md b/family/sort/keep-2023-11-14_00_41_39.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_40.md b/family/sort/keep-2023-11-14_00_41_40.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_41.md b/family/sort/keep-2023-11-14_00_41_41.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_43.md b/family/sort/keep-2023-11-14_00_41_43.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_44.md b/family/sort/keep-2023-11-14_00_41_44.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_45.md b/family/sort/keep-2023-11-14_00_41_45.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_46.md b/family/sort/keep-2023-11-14_00_41_46.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_47.md b/family/sort/keep-2023-11-14_00_41_47.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_48.md b/family/sort/keep-2023-11-14_00_41_48.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_49.md b/family/sort/keep-2023-11-14_00_41_49.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_50.md b/family/sort/keep-2023-11-14_00_41_50.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_51.md b/family/sort/keep-2023-11-14_00_41_51.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_52.md b/family/sort/keep-2023-11-14_00_41_52.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_53.md b/family/sort/keep-2023-11-14_00_41_53.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_54.md b/family/sort/keep-2023-11-14_00_41_54.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_55.md b/family/sort/keep-2023-11-14_00_41_55.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_56.md b/family/sort/keep-2023-11-14_00_41_56.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_57.md b/family/sort/keep-2023-11-14_00_41_57.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_41_59.md b/family/sort/keep-2023-11-14_00_41_59.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_42_00.md b/family/sort/keep-2023-11-14_00_42_00.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_42_01.md b/family/sort/keep-2023-11-14_00_42_01.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_42_02.md b/family/sort/keep-2023-11-14_00_42_02.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_42_03.md b/family/sort/keep-2023-11-14_00_42_03.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_42_05.md b/family/sort/keep-2023-11-14_00_42_05.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_42_06.md b/family/sort/keep-2023-11-14_00_42_06.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_42_07.md b/family/sort/keep-2023-11-14_00_42_07.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_42_08.md b/family/sort/keep-2023-11-14_00_42_08.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_42_10.md b/family/sort/keep-2023-11-14_00_42_10.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_42_11.md b/family/sort/keep-2023-11-14_00_42_11.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_42_12.md b/family/sort/keep-2023-11-14_00_42_12.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-14_00_42_13.md b/family/sort/keep-2023-11-14_00_42_13.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2023-11-28_22_23_01.md b/family/sort/keep-2023-11-28_22_23_01.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2024-03-03_11_57_34.md b/family/sort/keep-2024-03-03_11_57_34.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2024-05-17_22_10_53.md b/family/sort/keep-2024-05-17_22_10_53.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2024-07-04_10_51_13.md b/family/sort/keep-2024-07-04_10_51_13.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2024-08-31_13_54_16.md b/family/sort/keep-2024-08-31_13_54_16.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2024-09-28_11_04_08.md b/family/sort/keep-2024-09-28_11_04_08.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2024-10-12_05_39_05.md b/family/sort/keep-2024-10-12_05_39_05.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2024-11-02_00_03_55.md b/family/sort/keep-2024-11-02_00_03_55.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2024-12-06_22_30_09.md b/family/sort/keep-2024-12-06_22_30_09.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2025-01-20_16_59_24.md b/family/sort/keep-2025-01-20_16_59_24.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2025-02-04_12_19_41.md b/family/sort/keep-2025-02-04_12_19_41.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2025-02-07_12_04_37.md b/family/sort/keep-2025-02-07_12_04_37.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2025-02-13_00_29_53.md b/family/sort/keep-2025-02-13_00_29_53.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2025-03-08_23_14_38.md b/family/sort/keep-2025-03-08_23_14_38.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2025-03-21_22_52_16.md b/family/sort/keep-2025-03-21_22_52_16.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2025-06-16_10_36_48.md b/family/sort/keep-2025-06-16_10_36_48.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2025-07-27_15_41_12.md b/family/sort/keep-2025-07-27_15_41_12.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2025-09-14_11_59_05.md b/family/sort/keep-2025-09-14_11_59_05.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2025-12-05_17_53_00.md b/family/sort/keep-2025-12-05_17_53_00.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2025-12-10_15_45_54.md b/family/sort/keep-2025-12-10_15_45_54.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2026-02-04_14_44_55.md b/family/sort/keep-2026-02-04_14_44_55.md old mode 100755 new mode 100644 diff --git a/family/sort/keep-2026-03-23_12_14_12.md b/family/sort/keep-2026-03-23_12_14_12.md old mode 100755 new mode 100644 diff --git a/family/sort/performance-review-вопросы.md b/family/sort/performance-review-вопросы.md old mode 100755 new mode 100644 diff --git a/family/sort/pinduoduo-заказ.md b/family/sort/pinduoduo-заказ.md old mode 100755 new mode 100644 diff --git a/family/sort/zoom-ссылка.md b/family/sort/zoom-ссылка.md old mode 100755 new mode 100644 diff --git a/family/sort/алтай-счётчик-заявление.md b/family/sort/алтай-счётчик-заявление.md old mode 100755 new mode 100644 diff --git a/family/sort/антирадар.md b/family/sort/антирадар.md old mode 100755 new mode 100644 diff --git a/family/sort/взять-на-алтай-короткий.md b/family/sort/взять-на-алтай-короткий.md old mode 100755 new mode 100644 diff --git a/family/sort/взять-на-алтай-стройматериалы.md b/family/sort/взять-на-алтай-стройматериалы.md old mode 100755 new mode 100644 diff --git a/family/sort/вино.md b/family/sort/вино.md old mode 100755 new mode 100644 diff --git a/family/sort/витамины-и-таблетки.md b/family/sort/витамины-и-таблетки.md old mode 100755 new mode 100644 diff --git a/family/sort/вопросы-по-погребу.md b/family/sort/вопросы-по-погребу.md old mode 100755 new mode 100644 diff --git a/family/sort/генерация-идей-творчество.md b/family/sort/генерация-идей-творчество.md old mode 100755 new mode 100644 diff --git a/family/sort/документы-военкомат.md b/family/sort/документы-военкомат.md old mode 100755 new mode 100644 diff --git a/family/sort/долги-и-расчёты.md b/family/sort/долги-и-расчёты.md old mode 100755 new mode 100644 diff --git a/family/sort/задачи-по-фасадам.md b/family/sort/задачи-по-фасадам.md old mode 100755 new mode 100644 diff --git a/family/sort/идея-бренда.md b/family/sort/идея-бренда.md old mode 100755 new mode 100644 diff --git a/family/sort/инн-второй.md b/family/sort/инн-второй.md old mode 100755 new mode 100644 diff --git a/family/sort/инн.md b/family/sort/инн.md old mode 100755 new mode 100644 diff --git a/family/sort/код-котла-vaillant.md b/family/sort/код-котла-vaillant.md old mode 100755 new mode 100644 diff --git a/family/sort/код-от-лестницы.md b/family/sort/код-от-лестницы.md old mode 100755 new mode 100644 diff --git a/family/sort/код-садика.md b/family/sort/код-садика.md old mode 100755 new mode 100644 diff --git a/family/sort/код-чемодан.md b/family/sort/код-чемодан.md old mode 100755 new mode 100644 diff --git a/family/sort/коды-сейфа.md b/family/sort/коды-сейфа.md old mode 100755 new mode 100644 diff --git a/family/sort/конкурсы-и-игры-на-вечеринке.md b/family/sort/конкурсы-и-игры-на-вечеринке.md old mode 100755 new mode 100644 diff --git a/family/sort/контакт-андрей-исаев-ddg.md b/family/sort/контакт-андрей-исаев-ddg.md old mode 100755 new mode 100644 diff --git a/family/sort/кофр-размер.md b/family/sort/кофр-размер.md old mode 100755 new mode 100644 diff --git a/family/sort/лдсп-размер-на-стиралку.md b/family/sort/лдсп-размер-на-стиралку.md old mode 100755 new mode 100644 diff --git a/family/sort/лизе-на-день-рождения.md b/family/sort/лизе-на-день-рождения.md old mode 100755 new mode 100644 diff --git a/family/sort/лыжи-размеры.md b/family/sort/лыжи-размеры.md old mode 100755 new mode 100644 diff --git a/family/sort/мтс-тариф-посекундный.md b/family/sort/мтс-тариф-посекундный.md old mode 100755 new mode 100644 diff --git a/family/sort/музыкальные-жанры-рекомендации.md b/family/sort/музыкальные-жанры-рекомендации.md old mode 100755 new mode 100644 diff --git a/family/sort/настойки-рецепты.md b/family/sort/настойки-рецепты.md old mode 100755 new mode 100644 diff --git a/family/sort/номера-строителей.md b/family/sort/номера-строителей.md old mode 100755 new mode 100644 diff --git a/family/sort/ошибки-семинара.md b/family/sort/ошибки-семинара.md old mode 100755 new mode 100644 diff --git a/family/sort/пин-налог-кг.md b/family/sort/пин-налог-кг.md old mode 100755 new mode 100644 diff --git a/family/sort/пин.md b/family/sort/пин.md old mode 100755 new mode 100644 diff --git a/family/sort/показания-счётчиков.md b/family/sort/показания-счётчиков.md old mode 100755 new mode 100644 diff --git a/family/sort/праздничная-еда-список.md b/family/sort/праздничная-еда-список.md old mode 100755 new mode 100644 diff --git a/family/sort/продукты-на-новый-год.md b/family/sort/продукты-на-новый-год.md old mode 100755 new mode 100644 diff --git a/family/sort/пылесос-haier-размер.md b/family/sort/пылесос-haier-размер.md old mode 100755 new mode 100644 diff --git a/family/sort/расходы-на-бургер.md b/family/sort/расходы-на-бургер.md old mode 100755 new mode 100644 diff --git a/family/sort/расходы-на-плов.md b/family/sort/расходы-на-плов.md old mode 100755 new mode 100644 diff --git a/family/sort/сало-на-ортосае-где-найти.md b/family/sort/сало-на-ортосае-где-найти.md old mode 100755 new mode 100644 diff --git a/family/sort/склад-пароль.md b/family/sort/склад-пароль.md old mode 100755 new mode 100644 diff --git a/family/sort/список-дел-замеры.md b/family/sort/список-дел-замеры.md old mode 100755 new mode 100644 diff --git a/family/sort/список-дел-разное.md b/family/sort/список-дел-разное.md old mode 100755 new mode 100644 diff --git a/family/sort/стеллаж-в-кладовку-размеры.md b/family/sort/стеллаж-в-кладовку-размеры.md old mode 100755 new mode 100644 diff --git a/family/sort/счётчик-каракол-показание.md b/family/sort/счётчик-каракол-показание.md old mode 100755 new mode 100644 diff --git a/family/sort/трек-номер-dhl.md b/family/sort/трек-номер-dhl.md old mode 100755 new mode 100644 diff --git a/family/sort/уроки-истории-номер.md b/family/sort/уроки-истории-номер.md old mode 100755 new mode 100644 diff --git a/family/sync/vault-sync-2026-05-13.md b/family/sync/vault-sync-2026-05-13.md old mode 100755 new mode 100644 diff --git a/family/sync/vault-sync-2026-05-22.md b/family/sync/vault-sync-2026-05-22.md old mode 100755 new mode 100644 diff --git a/personal/_index.md b/personal/_index.md old mode 100755 new mode 100644 diff --git a/personal/books-wishlist.md b/personal/books-wishlist.md old mode 100755 new mode 100644 diff --git a/personal/business/companies-history.md b/personal/business/companies-history.md old mode 100755 new mode 100644 diff --git a/personal/business/ip-registration-guide.md b/personal/business/ip-registration-guide.md old mode 100755 new mode 100644 diff --git a/personal/business/profile.md b/personal/business/profile.md old mode 100755 new mode 100644 diff --git a/personal/business/sessions/2026-W20.md b/personal/business/sessions/2026-W20.md old mode 100755 new mode 100644 diff --git a/personal/business/sessions/2026-W21.md b/personal/business/sessions/2026-W21.md old mode 100755 new mode 100644 diff --git a/personal/creative/aphorisms.md b/personal/creative/aphorisms.md old mode 100755 new mode 100644 diff --git a/personal/creative/arctic-poem.md b/personal/creative/arctic-poem.md old mode 100755 new mode 100644 diff --git a/personal/creative/ideas-generation.md b/personal/creative/ideas-generation.md old mode 100755 new mode 100644 diff --git a/personal/creative/notes/Фашизм определение.md b/personal/creative/notes/Фашизм определение.md old mode 100755 new mode 100644 diff --git a/personal/creative/poems/da-bud-ya-evreiem.md b/personal/creative/poems/da-bud-ya-evreiem.md old mode 100755 new mode 100644 diff --git a/personal/creative/poems/krematoriy-na-tanspole.md b/personal/creative/poems/krematoriy-na-tanspole.md old mode 100755 new mode 100644 diff --git a/personal/creative/poems/not-mine/franshiza.md b/personal/creative/poems/not-mine/franshiza.md old mode 100755 new mode 100644 diff --git a/personal/creative/songs.md b/personal/creative/songs.md old mode 100755 new mode 100644 diff --git a/personal/creative/songs/antonoshe.md b/personal/creative/songs/antonoshe.md old mode 100755 new mode 100644 diff --git a/personal/creative/songs/bozhe-bozhe.md b/personal/creative/songs/bozhe-bozhe.md old mode 100755 new mode 100644 diff --git a/personal/creative/songs/i-mnogo-radosti-original.md b/personal/creative/songs/i-mnogo-radosti-original.md old mode 100755 new mode 100644 diff --git a/personal/creative/songs/irlandskiy-pab.md b/personal/creative/songs/irlandskiy-pab.md old mode 100755 new mode 100644 diff --git a/personal/creative/songs/iskuplenie.md b/personal/creative/songs/iskuplenie.md old mode 100755 new mode 100644 diff --git a/personal/creative/songs/malenkaya-strana.md b/personal/creative/songs/malenkaya-strana.md old mode 100755 new mode 100644 diff --git a/personal/creative/songs/minimalnaya-diaspora.md b/personal/creative/songs/minimalnaya-diaspora.md old mode 100755 new mode 100644 diff --git a/personal/creative/songs/na-derevnyu-k-babushke.md b/personal/creative/songs/na-derevnyu-k-babushke.md old mode 100755 new mode 100644 diff --git a/personal/creative/songs/natashka.md b/personal/creative/songs/natashka.md old mode 100755 new mode 100644 diff --git a/personal/creative/songs/ne-pokupayut-edy-covid.md b/personal/creative/songs/ne-pokupayut-edy-covid.md old mode 100755 new mode 100644 diff --git a/personal/creative/songs/ptitsy-ragnareka.md b/personal/creative/songs/ptitsy-ragnareka.md old mode 100755 new mode 100644 diff --git a/personal/creative/songs/rasprodazha.md b/personal/creative/songs/rasprodazha.md old mode 100755 new mode 100644 diff --git a/personal/creative/songs/ya-khuyaryashiy-maket.md b/personal/creative/songs/ya-khuyaryashiy-maket.md old mode 100755 new mode 100644 diff --git a/personal/creative/songs/zahodи-na-ugolyok.md b/personal/creative/songs/zahodи-na-ugolyok.md old mode 100755 new mode 100644 diff --git a/personal/creative/toasts/toast-anton.md b/personal/creative/toasts/toast-anton.md old mode 100755 new mode 100644 diff --git a/personal/creative/toasts/toast-obshiy.md b/personal/creative/toasts/toast-obshiy.md old mode 100755 new mode 100644 diff --git a/personal/creative/toasts/toast-oleg.md b/personal/creative/toasts/toast-oleg.md old mode 100755 new mode 100644 diff --git a/personal/docs/Dyld dynamic interposing.md b/personal/docs/Dyld dynamic interposing.md old mode 100755 new mode 100644 diff --git a/personal/docs/OpenRouter setup.md b/personal/docs/OpenRouter setup.md old mode 100755 new mode 100644 diff --git a/personal/docs/Swift cross-platform testing.md b/personal/docs/Swift cross-platform testing.md old mode 100755 new mode 100644 diff --git a/personal/docs/docker_colima_setup.md b/personal/docs/docker_colima_setup.md old mode 100755 new mode 100644 diff --git a/personal/docs/openclaw gmail setup.md b/personal/docs/openclaw gmail setup.md old mode 100755 new mode 100644 diff --git a/personal/docs/setup SSH macOS VM VirtualBuddy.md b/personal/docs/setup SSH macOS VM VirtualBuddy.md old mode 100755 new mode 100644 diff --git a/personal/docs/truenas-remote-access-reverse-proxy.md b/personal/docs/truenas-remote-access-reverse-proxy.md old mode 100755 new mode 100644 diff --git a/personal/documents/3d-print-wishlist.md b/personal/documents/3d-print-wishlist.md old mode 100755 new mode 100644 diff --git a/personal/documents/app-ideas-enriched/accessibility-browser-20260524.md b/personal/documents/app-ideas-enriched/accessibility-browser-20260524.md old mode 100755 new mode 100644 diff --git a/personal/documents/app-ideas-enriched/lifelogger-voice-diary-20260517.md b/personal/documents/app-ideas-enriched/lifelogger-voice-diary-20260517.md old mode 100755 new mode 100644 diff --git a/personal/documents/app-ideas-enriched/local-rag-indexer-20260517.md b/personal/documents/app-ideas-enriched/local-rag-indexer-20260517.md old mode 100755 new mode 100644 diff --git a/personal/documents/app-ideas-enriched/mcp-permissions-activator-20260524.md b/personal/documents/app-ideas-enriched/mcp-permissions-activator-20260524.md old mode 100755 new mode 100644 diff --git a/personal/documents/app-ideas-enriched/robots-elves-time-paradox-20260524.md b/personal/documents/app-ideas-enriched/robots-elves-time-paradox-20260524.md old mode 100755 new mode 100644 diff --git a/personal/documents/app-ideas-enriched/voice-assistant-aide-20260524.md b/personal/documents/app-ideas-enriched/voice-assistant-aide-20260524.md old mode 100755 new mode 100644 diff --git a/personal/documents/app-ideas.md b/personal/documents/app-ideas.md old mode 100755 new mode 100644 diff --git a/personal/documents/books-reading-list.md b/personal/documents/books-reading-list.md old mode 100755 new mode 100644 diff --git a/personal/documents/budget-app-features.md b/personal/documents/budget-app-features.md old mode 100755 new mode 100644 diff --git a/personal/documents/deferred-tasks.md b/personal/documents/deferred-tasks.md old mode 100755 new mode 100644 diff --git a/personal/documents/fly-box.md b/personal/documents/fly-box.md old mode 100755 new mode 100644 diff --git a/personal/documents/russia-tasks.md b/personal/documents/russia-tasks.md old mode 100755 new mode 100644 diff --git a/personal/documents/subscription-gym.md b/personal/documents/subscription-gym.md old mode 100755 new mode 100644 diff --git a/personal/documents/todo-list.md b/personal/documents/todo-list.md old mode 100755 new mode 100644 diff --git a/personal/documents/workout.md b/personal/documents/workout.md old mode 100755 new mode 100644 diff --git a/personal/ideas/marx-theory-of-value.md b/personal/ideas/marx-theory-of-value.md old mode 100755 new mode 100644 diff --git a/personal/index.md b/personal/index.md old mode 100755 new mode 100644 diff --git a/personal/music-download-practices.md b/personal/music-download-practices.md old mode 100755 new mode 100644 diff --git a/personal/plans/job-search.md b/personal/plans/job-search.md old mode 100755 new mode 100644 diff --git a/personal/plans/kraken-voice-tasks.md b/personal/plans/kraken-voice-tasks.md old mode 100755 new mode 100644 diff --git a/personal/plans/llm-wiki-plan.md b/personal/plans/llm-wiki-plan.md old mode 100755 new mode 100644 diff --git a/personal/projects/app-ideas.md b/personal/projects/app-ideas.md old mode 100755 new mode 100644 diff --git a/personal/projects/library-app.md b/personal/projects/library-app.md old mode 100755 new mode 100644 diff --git a/personal/projects/media-pipeline-file-routing.md b/personal/projects/media-pipeline-file-routing.md old mode 100755 new mode 100644 diff --git a/personal/projects/media-pipeline-tracker-parsers.md b/personal/projects/media-pipeline-tracker-parsers.md old mode 100755 new mode 100644 diff --git a/personal/projects/nolvu-reflect-skip.md b/personal/projects/nolvu-reflect-skip.md old mode 100755 new mode 100644 diff --git a/personal/projects/orblab.md b/personal/projects/orblab.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/agent-names-brainstorm.md b/personal/projects/personal-os/agent-names-brainstorm.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/ai-psychologist-research.md b/personal/projects/personal-os/ai-psychologist-research.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/enrichment-runs/cross-enrichment-last.md b/personal/projects/personal-os/enrichment-runs/cross-enrichment-last.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-24.md b/personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-24.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/enrichment-runs/cross-enrichment-queue.md b/personal/projects/personal-os/enrichment-runs/cross-enrichment-queue.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/enrichment-runs/last.md b/personal/projects/personal-os/enrichment-runs/last.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/executor-orchestrator-redesign.md b/personal/projects/personal-os/executor-orchestrator-redesign.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/executor-security-analysis.md b/personal/projects/personal-os/executor-security-analysis.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/executor-skip-report.md b/personal/projects/personal-os/executor-skip-report.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/executor-spawning-research.md b/personal/projects/personal-os/executor-spawning-research.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/executor-v2-redesign.md b/personal/projects/personal-os/executor-v2-redesign.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/hermes-calendar-access.md b/personal/projects/personal-os/hermes-calendar-access.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/kraken-obsidian-write-bug.md b/personal/projects/personal-os/kraken-obsidian-write-bug.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/obsidian-vault-strategy.md b/personal/projects/personal-os/obsidian-vault-strategy.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/time-machine-tunnel-backup.md b/personal/projects/personal-os/time-machine-tunnel-backup.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/unprejudiced-ai-psychologist.md b/personal/projects/personal-os/unprejudiced-ai-psychologist.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-15.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-15.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-16-p2.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-16-p2.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-16.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-16.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-17.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-17.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-18-02h.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-18-02h.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-18.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-18.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-19.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-19.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-20.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-20.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-22.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-22.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-23.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-23.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-24.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-24.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-25.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-25.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-27.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-27.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-28.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-28.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-29.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-29.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/wiki-curation-runs/research-2026-05-23.md b/personal/projects/personal-os/wiki-curation-runs/research-2026-05-23.md old mode 100755 new mode 100644 diff --git a/personal/projects/personal-os/zoom-ai-transcript-export.md b/personal/projects/personal-os/zoom-ai-transcript-export.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/analytics.md b/personal/projects/psychologist-app/analytics.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/character-design.md b/personal/projects/psychologist-app/character-design.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/crisis-protocol.md b/personal/projects/psychologist-app/crisis-protocol.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/dev-setup.md b/personal/projects/psychologist-app/dev-setup.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/landing.md b/personal/projects/psychologist-app/landing.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/market-analysis.md b/personal/projects/psychologist-app/market-analysis.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/market-focus.md b/personal/projects/psychologist-app/market-focus.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/marketing-hooks.md b/personal/projects/psychologist-app/marketing-hooks.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/marketing-strategy.md b/personal/projects/psychologist-app/marketing-strategy.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/monetization-revenuecat.md b/personal/projects/psychologist-app/monetization-revenuecat.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/naming.md b/personal/projects/psychologist-app/naming.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/onboarding-archetypes.md b/personal/projects/psychologist-app/onboarding-archetypes.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/onboarding-ux.md b/personal/projects/psychologist-app/onboarding-ux.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/overview.md b/personal/projects/psychologist-app/overview.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/privacy-legal.md b/personal/projects/psychologist-app/privacy-legal.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/session-design.md b/personal/projects/psychologist-app/session-design.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/skip-tools-poc.md b/personal/projects/psychologist-app/skip-tools-poc.md old mode 100755 new mode 100644 diff --git a/personal/projects/psychologist-app/twitter-thread-draft.md b/personal/projects/psychologist-app/twitter-thread-draft.md old mode 100755 new mode 100644 diff --git a/personal/psychology/insights.md b/personal/psychology/insights.md old mode 100755 new mode 100644 diff --git a/personal/psychology/observations/2026-W20.md b/personal/psychology/observations/2026-W20.md old mode 100755 new mode 100644 diff --git a/personal/psychology/observations/2026-W21.md b/personal/psychology/observations/2026-W21.md old mode 100755 new mode 100644 diff --git a/personal/psychology/observations/2026-W22.md b/personal/psychology/observations/2026-W22.md old mode 100755 new mode 100644 diff --git a/personal/psychology/profile.md b/personal/psychology/profile.md old mode 100755 new mode 100644 diff --git a/personal/psychology/prompts.md b/personal/psychology/prompts.md old mode 100755 new mode 100644 diff --git a/personal/psychology/reflect-skip-android.md b/personal/psychology/reflect-skip-android.md old mode 100755 new mode 100644 diff --git a/personal/shopping-order.md b/personal/shopping-order.md old mode 100755 new mode 100644 diff --git a/personal/spotify-library.md b/personal/spotify-library.md old mode 100755 new mode 100644 diff --git a/personal/sync-test.md b/personal/sync-test.md old mode 100755 new mode 100644 diff --git a/personal/test_taiga_access.md b/personal/test_taiga_access.md old mode 100755 new mode 100644 diff --git a/personal/test_taiga_access_obsidian.md b/personal/test_taiga_access_obsidian.md old mode 100755 new mode 100644 diff --git a/sync-test.md b/sync-test.md new file mode 100644 index 00000000..a6cb28f0 --- /dev/null +++ b/sync-test.md @@ -0,0 +1 @@ +test-ok From 71c58e239921cfb5c8a2ec0c02207ecc66582c35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=B0=D0=B9=D0=B3=D0=B0?= Date: Fri, 29 May 2026 09:01:25 +0000 Subject: [PATCH 3/3] taiga-local-1780045285 --- .gitignore | 7 - .stfolder/syncthing-folder-940f59.txt | 5 + Untitled.md | 0 _index.md | 3 - family/_index.md | 0 family/contacts/birthdays.md | 0 family/contacts/service-providers.md | 0 family/contacts/services.md | 0 family/documents/altai-electricity-meter.md | 0 family/documents/altai-house-inventory.md | 0 family/documents/altai-shopping.md | 0 family/documents/books-reading-list.md | 0 family/documents/books-wishlist.md | 0 family/documents/bring-to-russia.md | 0 family/documents/car-notes.md | 0 family/documents/fasteners-nomenclature.md | 0 family/documents/flea-market-shopping.md | 0 family/documents/games-wishlist.md | 0 family/documents/gift-ideas.md | 0 family/documents/google-books-api-key.md | 0 family/documents/hiking-packing-list.md | 0 family/documents/holiday-food.md | 0 family/documents/home-access-codes.md | 0 family/documents/home-automation-wishlist.md | 0 family/documents/home-wishlist.md | 0 family/documents/karaoke-songs.md | 0 family/documents/kids-activities.md | 0 family/documents/kids-songs.md | 0 family/documents/lerua-shopping.md | 0 family/documents/loyalty-cards.md | 0 family/documents/movies-watchlist.md | 0 family/documents/party-games.md | 0 family/documents/places-to-visit.md | 0 family/documents/recipes-wishlist.md | 0 family/documents/shopping-lists.md | 0 family/documents/shopping-order.md | 0 family/documents/trip-packing-list.md | 0 .../documents/vault-sync-2026-05-13-08-01.md | 0 family/documents/vault-sync-2026-05-20.md | 0 family/documents/vault-sync-2026-05-21.md | 0 .../vault-sync-summary-2026-05-22.md | 0 .../documents/vault-sync/2026-05-13-sync.md | 0 .../documents/vault-sync/2026-05-15-sync.md | 0 .../vault-sync/2026-05-22-vault-sync.md | 0 family/documents/vault-sync/2026-05-23.md | 0 family/documents/vault-sync/20260514.md | 0 family/documents/книги-ребенку.md | 0 family/how-to/arduino-programming.md | 0 family/how-to/home-automation.md | 0 family/how-to/htpc-access.md | 0 family/how-to/htpc-emulators-setup.md | 0 family/how-to/htpc-gaming-plans.md | 0 family/how-to/htpc-magic4pc.md | 0 family/how-to/htpc-migration-plan.md | 0 .../how-to/htpc-steam-nonsteam-shortcuts.md | 0 family/how-to/htpc-system.md | 0 family/how-to/htpc-webos-luna.md | 0 family/how-to/htpc.md | 0 family/how-to/kraken-access.md | 0 family/how-to/kraken-portainer-access.md | 0 family/how-to/lg-remote-keys.md | 0 family/how-to/magic4pc-webos.md | 0 family/how-to/mesh-networks.md | 0 family/how-to/mp3-bluetooth-remote.md | 0 family/how-to/navidrome-truenas-android.md | 0 family/how-to/nodered-ventilation.md | 0 family/how-to/obsidian-android-sync.md | 0 family/how-to/obsidian-sync.md | 0 family/how-to/openmediavault-rpi5.md | 0 family/how-to/router-bishkek-asus.md | 0 family/how-to/samsung.md | 0 family/how-to/speaker-sd-card-music.md | 0 family/how-to/switch-emulation-rom-infra.md | 0 family/how-to/syncthing-truenas-android.md | 0 family/how-to/truenas-access.md | 0 family/how-to/truenas-infrastructure.md | 0 family/how-to/truenas-rclone-backup.md | 0 family/how-to/tv-luna-send.md | 0 family/how-to/vault-sync-log-2026-05-15.md | 0 family/how-to/vault-sync-logs/2026-05-14.md | 0 family/how-to/vault-sync-summary.md | 0 family/how-to/virtual-keyboard-bazzite.md | 0 family/how-to/wireguard-vpn.md | 0 family/how-to/xgimi-play6-setup.md | 0 family/how-to/xgimi-play6.md | 0 family/how-to/xiaomi-wifi-fix.md | 0 family/index.md | 0 family/logs/vault-sync-2026-05-22.md | 0 family/parenting/father-profile.md | 0 family/parenting/liza-profile.md | 0 family/parenting/natalia-profile.md | 0 family/projects/aide-kraken-backend.md | 0 family/projects/htpc-windows-games-fix.md | 0 family/projects/media-pipeline-agent.md | 0 family/projects/media-toolbox-kraken.md | 0 family/projects/media-toolbox-taiga.md | 0 family/projects/watchlist-discover.md | 0 family/projects/watchlist-sync.md | 0 family/schedule/reminders.md | 0 family/schedule/vacation-july-august-2026.md | 0 family/schedule/weekend-plans.md | 0 family/sort/duty-free-список.md | 0 family/sort/feedback-идеи.md | 0 family/sort/grohe-ключ-активации.md | 0 family/sort/keep-2023-09-13_15_03_43.md | 0 family/sort/keep-2023-09-24_14_40_48.md | 0 family/sort/keep-2023-10-10_11_15_25.md | 0 family/sort/keep-2023-11-12_18_59_50.md | 0 family/sort/keep-2023-11-14_00_41_19.md | 0 family/sort/keep-2023-11-14_00_41_20.md | 0 family/sort/keep-2023-11-14_00_41_21.md | 0 family/sort/keep-2023-11-14_00_41_22.md | 0 family/sort/keep-2023-11-14_00_41_23.md | 0 family/sort/keep-2023-11-14_00_41_25.md | 0 family/sort/keep-2023-11-14_00_41_26.md | 0 family/sort/keep-2023-11-14_00_41_27.md | 0 family/sort/keep-2023-11-14_00_41_28.md | 0 family/sort/keep-2023-11-14_00_41_29.md | 0 family/sort/keep-2023-11-14_00_41_30.md | 0 family/sort/keep-2023-11-14_00_41_31.md | 0 family/sort/keep-2023-11-14_00_41_32.md | 0 family/sort/keep-2023-11-14_00_41_34.md | 0 family/sort/keep-2023-11-14_00_41_35.md | 0 family/sort/keep-2023-11-14_00_41_37.md | 0 family/sort/keep-2023-11-14_00_41_38.md | 0 family/sort/keep-2023-11-14_00_41_39.md | 0 family/sort/keep-2023-11-14_00_41_40.md | 0 family/sort/keep-2023-11-14_00_41_41.md | 0 family/sort/keep-2023-11-14_00_41_43.md | 0 family/sort/keep-2023-11-14_00_41_44.md | 0 family/sort/keep-2023-11-14_00_41_45.md | 0 family/sort/keep-2023-11-14_00_41_46.md | 0 family/sort/keep-2023-11-14_00_41_47.md | 0 family/sort/keep-2023-11-14_00_41_48.md | 0 family/sort/keep-2023-11-14_00_41_49.md | 0 family/sort/keep-2023-11-14_00_41_50.md | 0 family/sort/keep-2023-11-14_00_41_51.md | 0 family/sort/keep-2023-11-14_00_41_52.md | 0 family/sort/keep-2023-11-14_00_41_53.md | 0 family/sort/keep-2023-11-14_00_41_54.md | 0 family/sort/keep-2023-11-14_00_41_55.md | 0 family/sort/keep-2023-11-14_00_41_56.md | 0 family/sort/keep-2023-11-14_00_41_57.md | 0 family/sort/keep-2023-11-14_00_41_59.md | 0 family/sort/keep-2023-11-14_00_42_00.md | 0 family/sort/keep-2023-11-14_00_42_01.md | 0 family/sort/keep-2023-11-14_00_42_02.md | 0 family/sort/keep-2023-11-14_00_42_03.md | 0 family/sort/keep-2023-11-14_00_42_05.md | 0 family/sort/keep-2023-11-14_00_42_06.md | 0 family/sort/keep-2023-11-14_00_42_07.md | 0 family/sort/keep-2023-11-14_00_42_08.md | 0 family/sort/keep-2023-11-14_00_42_10.md | 0 family/sort/keep-2023-11-14_00_42_11.md | 0 family/sort/keep-2023-11-14_00_42_12.md | 0 family/sort/keep-2023-11-14_00_42_13.md | 0 family/sort/keep-2023-11-28_22_23_01.md | 0 family/sort/keep-2024-03-03_11_57_34.md | 0 family/sort/keep-2024-05-17_22_10_53.md | 0 family/sort/keep-2024-07-04_10_51_13.md | 0 family/sort/keep-2024-08-31_13_54_16.md | 0 family/sort/keep-2024-09-28_11_04_08.md | 0 family/sort/keep-2024-10-12_05_39_05.md | 0 family/sort/keep-2024-11-02_00_03_55.md | 0 family/sort/keep-2024-12-06_22_30_09.md | 0 family/sort/keep-2025-01-20_16_59_24.md | 0 family/sort/keep-2025-02-04_12_19_41.md | 0 family/sort/keep-2025-02-07_12_04_37.md | 0 family/sort/keep-2025-02-13_00_29_53.md | 0 family/sort/keep-2025-03-08_23_14_38.md | 0 family/sort/keep-2025-03-21_22_52_16.md | 0 family/sort/keep-2025-06-16_10_36_48.md | 0 family/sort/keep-2025-07-27_15_41_12.md | 0 family/sort/keep-2025-09-14_11_59_05.md | 0 family/sort/keep-2025-12-05_17_53_00.md | 0 family/sort/keep-2025-12-10_15_45_54.md | 0 family/sort/keep-2026-02-04_14_44_55.md | 0 family/sort/keep-2026-03-23_12_14_12.md | 0 family/sort/performance-review-вопросы.md | 0 family/sort/pinduoduo-заказ.md | 0 family/sort/zoom-ссылка.md | 0 family/sort/алтай-счётчик-заявление.md | 0 family/sort/антирадар.md | 0 family/sort/взять-на-алтай-короткий.md | 0 family/sort/взять-на-алтай-стройматериалы.md | 0 family/sort/вино.md | 0 family/sort/витамины-и-таблетки.md | 0 family/sort/вопросы-по-погребу.md | 0 family/sort/генерация-идей-творчество.md | 0 family/sort/документы-военкомат.md | 0 family/sort/долги-и-расчёты.md | 0 family/sort/задачи-по-фасадам.md | 0 family/sort/идея-бренда.md | 0 family/sort/инн-второй.md | 0 family/sort/инн.md | 0 family/sort/код-котла-vaillant.md | 0 family/sort/код-от-лестницы.md | 0 family/sort/код-садика.md | 0 family/sort/код-чемодан.md | 0 family/sort/коды-сейфа.md | 0 family/sort/конкурсы-и-игры-на-вечеринке.md | 0 family/sort/контакт-андрей-исаев-ddg.md | 0 family/sort/кофр-размер.md | 0 family/sort/лдсп-размер-на-стиралку.md | 0 family/sort/лизе-на-день-рождения.md | 0 family/sort/лыжи-размеры.md | 0 family/sort/мтс-тариф-посекундный.md | 0 family/sort/музыкальные-жанры-рекомендации.md | 0 family/sort/настойки-рецепты.md | 0 family/sort/номера-строителей.md | 0 family/sort/ошибки-семинара.md | 0 family/sort/пин-налог-кг.md | 0 family/sort/пин.md | 0 family/sort/показания-счётчиков.md | 0 family/sort/праздничная-еда-список.md | 0 family/sort/продукты-на-новый-год.md | 0 family/sort/пылесос-haier-размер.md | 0 family/sort/расходы-на-бургер.md | 0 family/sort/расходы-на-плов.md | 0 family/sort/сало-на-ортосае-где-найти.md | 0 family/sort/склад-пароль.md | 0 family/sort/список-дел-замеры.md | 0 family/sort/список-дел-разное.md | 0 family/sort/стеллаж-в-кладовку-размеры.md | 0 family/sort/счётчик-каракол-показание.md | 0 family/sort/трек-номер-dhl.md | 0 family/sort/уроки-истории-номер.md | 0 family/sync/vault-sync-2026-05-13.md | 0 family/sync/vault-sync-2026-05-22.md | 0 personal/_index.md | 0 personal/books-wishlist.md | 0 personal/business/companies-history.md | 0 personal/business/ip-registration-guide.md | 0 personal/business/profile.md | 0 personal/business/sessions/2026-W20.md | 0 personal/business/sessions/2026-W21.md | 0 personal/creative/aphorisms.md | 0 personal/creative/arctic-poem.md | 0 personal/creative/ideas-generation.md | 0 personal/creative/notes/Фашизм определение.md | 0 personal/creative/poems/da-bud-ya-evreiem.md | 0 .../creative/poems/krematoriy-na-tanspole.md | 0 personal/creative/poems/not-mine/franshiza.md | 0 personal/creative/songs.md | 0 personal/creative/songs/antonoshe.md | 0 personal/creative/songs/bozhe-bozhe.md | 0 .../songs/i-mnogo-radosti-original.md | 0 personal/creative/songs/irlandskiy-pab.md | 0 personal/creative/songs/iskuplenie.md | 0 personal/creative/songs/malenkaya-strana.md | 0 .../creative/songs/minimalnaya-diaspora.md | 0 .../creative/songs/na-derevnyu-k-babushke.md | 0 personal/creative/songs/natashka.md | 0 .../creative/songs/ne-pokupayut-edy-covid.md | 0 personal/creative/songs/ptitsy-ragnareka.md | 0 personal/creative/songs/rasprodazha.md | 0 .../creative/songs/ya-khuyaryashiy-maket.md | 0 personal/creative/songs/zahodи-na-ugolyok.md | 0 personal/creative/toasts/toast-anton.md | 0 personal/creative/toasts/toast-obshiy.md | 0 personal/creative/toasts/toast-oleg.md | 0 personal/docs/Dyld dynamic interposing.md | 0 personal/docs/OpenRouter setup.md | 0 personal/docs/Swift cross-platform testing.md | 0 personal/docs/docker_colima_setup.md | 0 personal/docs/openclaw gmail setup.md | 0 .../docs/setup SSH macOS VM VirtualBuddy.md | 0 .../truenas-remote-access-reverse-proxy.md | 0 personal/documents/3d-print-wishlist.md | 0 .../accessibility-browser-20260524.md | 0 .../lifelogger-voice-diary-20260517.md | 0 .../local-rag-indexer-20260517.md | 0 .../mcp-permissions-activator-20260524.md | 0 .../robots-elves-time-paradox-20260524.md | 0 .../voice-assistant-aide-20260524.md | 0 personal/documents/app-ideas.md | 0 personal/documents/books-reading-list.md | 0 personal/documents/budget-app-features.md | 0 personal/documents/deferred-tasks.md | 0 personal/documents/fly-box.md | 0 personal/documents/russia-tasks.md | 0 personal/documents/subscription-gym.md | 0 personal/documents/todo-list.md | 0 personal/documents/workout.md | 0 personal/ideas/marx-theory-of-value.md | 0 personal/index.md | 0 personal/music-download-practices.md | 0 personal/plans/job-search.md | 0 personal/plans/kraken-voice-tasks.md | 0 personal/plans/llm-wiki-plan.md | 0 personal/projects/app-ideas.md | 0 personal/projects/library-app.md | 0 .../projects/media-pipeline-file-routing.md | 0 .../media-pipeline-tracker-parsers.md | 0 personal/projects/nolvu-reflect-skip.md | 0 personal/projects/orblab.md | 0 .../personal-os/agent-names-brainstorm.md | 0 .../personal-os/ai-psychologist-research.md | 0 .../enrichment-runs/cross-enrichment-last.md | 0 .../cross-enrichment-overflow-2026-05-24.md | 0 .../enrichment-runs/cross-enrichment-queue.md | 0 .../personal-os/enrichment-runs/last.md | 0 .../executor-orchestrator-redesign.md | 0 .../personal-os/executor-security-analysis.md | 0 .../personal-os/executor-skip-report.md | 0 .../personal-os/executor-spawning-research.md | 0 .../personal-os/executor-v2-redesign.md | 0 .../personal-os/hermes-calendar-access.md | 0 .../personal-os/kraken-obsidian-write-bug.md | 0 .../personal-os/obsidian-vault-strategy.md | 0 .../personal-os/time-machine-tunnel-backup.md | 0 .../unprejudiced-ai-psychologist.md | 0 .../wiki-curation-runs/2026-05-15.md | 0 .../wiki-curation-runs/2026-05-16-p2.md | 0 .../wiki-curation-runs/2026-05-16.md | 0 .../wiki-curation-runs/2026-05-17.md | 0 .../wiki-curation-runs/2026-05-18-02h.md | 0 .../wiki-curation-runs/2026-05-18.md | 0 .../wiki-curation-runs/2026-05-19.md | 0 .../wiki-curation-runs/2026-05-20.md | 0 .../wiki-curation-runs/2026-05-22.md | 0 .../wiki-curation-runs/2026-05-23.md | 0 .../wiki-curation-runs/2026-05-24.md | 0 .../wiki-curation-runs/2026-05-25.md | 0 .../wiki-curation-runs/2026-05-27.md | 0 .../wiki-curation-runs/2026-05-28.md | 0 .../wiki-curation-runs/2026-05-29.md | 0 .../wiki-curation-runs/research-2026-05-23.md | 0 .../personal-os/zoom-ai-transcript-export.md | 0 .../projects/psychologist-app/analytics.md | 0 .../psychologist-app/character-design.md | 0 .../psychologist-app/crisis-protocol.md | 0 .../projects/psychologist-app/dev-setup.md | 0 personal/projects/psychologist-app/landing.md | 0 .../psychologist-app/market-analysis.md | 0 .../projects/psychologist-app/market-focus.md | 0 .../psychologist-app/marketing-hooks.md | 0 .../psychologist-app/marketing-strategy.md | 0 .../monetization-revenuecat.md | 0 personal/projects/psychologist-app/naming.md | 0 .../psychologist-app/onboarding-archetypes.md | 0 .../psychologist-app/onboarding-ux.md | 0 .../projects/psychologist-app/overview.md | 0 .../psychologist-app/privacy-legal.md | 0 .../psychologist-app/session-design.md | 0 .../psychologist-app/skip-tools-poc.md | 0 .../psychologist-app/twitter-thread-draft.md | 0 personal/psychology/insights.md | 0 personal/psychology/observations/2026-W20.md | 0 personal/psychology/observations/2026-W21.md | 0 personal/psychology/observations/2026-W22.md | 0 personal/psychology/profile.md | 0 personal/psychology/prompts.md | 0 personal/psychology/reflect-skip-android.md | 0 personal/shopping-order.md | 0 personal/spotify-library.md | 0 personal/sync-test.md | 0 personal/test_taiga_access.md | 0 personal/test_taiga_access_obsidian.md | 0 raw/personal-os-catchup-plan-2026-04-27.md | 0 raw/personal-os-state-2026-04-27.md | 0 raw/schema.sql | 0 raw/wiki-ingest-prompt.md | 0 steam-grid-artwork.py | 141 -------- sync-test.md | 1 - wiki/SCHEMA.md | 125 ------- wiki/comparisons/hermes-native-vs-docker.md | 76 ----- wiki/concepts/agent-memory-architecture.md | 75 ----- wiki/concepts/autonomous-agent-safety.md | 113 ------- wiki/concepts/executor-orchestrator.md | 98 ------ wiki/concepts/executor-security-incident.md | 112 ------- wiki/concepts/hermes-deployment-patterns.md | 82 ----- wiki/concepts/htpc-bazzite-ecosystem.md | 74 ---- wiki/concepts/knowledge-lifecycle.md | 82 ----- wiki/concepts/kraken-media-stack.md | 132 -------- wiki/concepts/multi-agent-design-patterns.md | 107 ------ wiki/concepts/multi-host-cron-topology.md | 71 ---- wiki/concepts/vault-agent-integration.md | 84 ----- wiki/concepts/vault-strategy.md | 61 ---- wiki/concepts/watchlist-automation.md | 161 --------- wiki/ddg-asana-workflow.md | 74 ---- wiki/entities/library-app.md | 70 ---- wiki/entities/psychologist-app.md | 96 ------ wiki/htpc-bazzite-proton.md | 317 ------------------ wiki/index.md | 97 ------ wiki/log.md | 120 ------- wiki/obsidian-mcp-wrapper.md | 114 ------- wiki/personal-os-agent-rules.md | 107 ------ wiki/personal-os-architecture.md | 161 --------- wiki/personal-os-catchup-plan-2026-04-27.md | 91 ----- wiki/personal-os-purpose.md | 73 ---- wiki/personal-os-schema.md | 92 ----- wiki/personal-os-self-modification.md | 152 --------- wiki/personal-os-state-2026-04-27.md | 99 ------ wiki/personal-os-sync-pipeline.md | 91 ----- ...research-vault-strategy-memory-20260516.md | 48 --- wiki/research-queue.md | 20 -- wiki/tech/arr-stack-kraken.md | 136 -------- wiki/tech/arr-stack-taiga.md | 31 -- wiki/tech/gitea-config.md | 27 -- wiki/tech/hermes-docker-kraken.md | 37 -- wiki/tech/hermes-eagle-mac.md | 229 ------------- wiki/tech/hermes-kraken-api.md | 93 ----- wiki/tech/htpc-kodi-layout.md | 31 -- wiki/tech/htpc-magic4pc.md | 195 ----------- wiki/tech/htpc-steam-emulators.md | 91 ----- wiki/tech/jellyfin-config.md | 33 -- wiki/tech/jellyfin-transcode-rpi5.md | 108 ------ wiki/tech/kraken-network.md | 34 -- wiki/tech/media-pipeline-pitfalls.md | 87 ----- wiki/tech/reflect-skip-fuse.md | 34 -- wiki/tech/truenas-inpxer.md | 30 -- wiki/tech/tv-luna-send.md | 103 ------ wiki/tech/vault-git-sync.md | 94 ------ wiki/tech/vault-namespace.md | 35 -- wiki/tech/vps-qentra.md | 74 ---- wiki/tech/wireguard-vpn.md | 120 ------- wiki/tech/xgimi-play6-setup.md | 121 ------- wiki/user-profile.md | 152 --------- wiki/vault-filling-guide.md | 78 ----- wiki/wiki-ingest-process.md | 100 ------ work/briefs/daily/2026-05-23.md | 47 --- work/briefs/daily/2026-05-24.md | 46 --- work/briefs/daily/2026-05-25.md | 106 ------ work/briefs/daily/2026-05-26.md | 106 ------ work/briefs/daily/2026-05-27.md | 113 ------- work/briefs/daily/2026-05-28.md | 114 ------- work/briefs/daily/2026-05-29.md | 96 ------ work/briefs/inbox/2026-05-23.md | 8 - work/briefs/inbox/2026-05-24.md | 23 -- work/briefs/inbox/2026-05-25.md | 18 - work/briefs/inbox/2026-05-26.md | 28 -- work/briefs/inbox/2026-05-27.md | 57 ---- work/briefs/inbox/2026-05-28.md | 25 -- work/briefs/weekly/plan-2026-05-18.md | 141 -------- work/briefs/weekly/plan-2026-05-25.md | 147 -------- work/projects/nolvu-marketing.md | 124 ------- Рецепты коктейлей.md | 88 ----- 438 files changed, 5 insertions(+), 6787 deletions(-) create mode 100755 .stfolder/syncthing-folder-940f59.txt delete mode 100644 Untitled.md delete mode 100644 _index.md mode change 100644 => 100755 family/_index.md mode change 100644 => 100755 family/contacts/birthdays.md mode change 100644 => 100755 family/contacts/service-providers.md mode change 100644 => 100755 family/contacts/services.md mode change 100644 => 100755 family/documents/altai-electricity-meter.md mode change 100644 => 100755 family/documents/altai-house-inventory.md mode change 100644 => 100755 family/documents/altai-shopping.md mode change 100644 => 100755 family/documents/books-reading-list.md mode change 100644 => 100755 family/documents/books-wishlist.md mode change 100644 => 100755 family/documents/bring-to-russia.md mode change 100644 => 100755 family/documents/car-notes.md mode change 100644 => 100755 family/documents/fasteners-nomenclature.md mode change 100644 => 100755 family/documents/flea-market-shopping.md mode change 100644 => 100755 family/documents/games-wishlist.md mode change 100644 => 100755 family/documents/gift-ideas.md mode change 100644 => 100755 family/documents/google-books-api-key.md mode change 100644 => 100755 family/documents/hiking-packing-list.md mode change 100644 => 100755 family/documents/holiday-food.md mode change 100644 => 100755 family/documents/home-access-codes.md mode change 100644 => 100755 family/documents/home-automation-wishlist.md mode change 100644 => 100755 family/documents/home-wishlist.md mode change 100644 => 100755 family/documents/karaoke-songs.md mode change 100644 => 100755 family/documents/kids-activities.md mode change 100644 => 100755 family/documents/kids-songs.md mode change 100644 => 100755 family/documents/lerua-shopping.md mode change 100644 => 100755 family/documents/loyalty-cards.md mode change 100644 => 100755 family/documents/movies-watchlist.md mode change 100644 => 100755 family/documents/party-games.md mode change 100644 => 100755 family/documents/places-to-visit.md mode change 100644 => 100755 family/documents/recipes-wishlist.md mode change 100644 => 100755 family/documents/shopping-lists.md mode change 100644 => 100755 family/documents/shopping-order.md mode change 100644 => 100755 family/documents/trip-packing-list.md mode change 100644 => 100755 family/documents/vault-sync-2026-05-13-08-01.md mode change 100644 => 100755 family/documents/vault-sync-2026-05-20.md mode change 100644 => 100755 family/documents/vault-sync-2026-05-21.md mode change 100644 => 100755 family/documents/vault-sync-summary-2026-05-22.md mode change 100644 => 100755 family/documents/vault-sync/2026-05-13-sync.md mode change 100644 => 100755 family/documents/vault-sync/2026-05-15-sync.md mode change 100644 => 100755 family/documents/vault-sync/2026-05-22-vault-sync.md mode change 100644 => 100755 family/documents/vault-sync/2026-05-23.md mode change 100644 => 100755 family/documents/vault-sync/20260514.md mode change 100644 => 100755 family/documents/книги-ребенку.md mode change 100644 => 100755 family/how-to/arduino-programming.md mode change 100644 => 100755 family/how-to/home-automation.md mode change 100644 => 100755 family/how-to/htpc-access.md mode change 100644 => 100755 family/how-to/htpc-emulators-setup.md mode change 100644 => 100755 family/how-to/htpc-gaming-plans.md mode change 100644 => 100755 family/how-to/htpc-magic4pc.md mode change 100644 => 100755 family/how-to/htpc-migration-plan.md mode change 100644 => 100755 family/how-to/htpc-steam-nonsteam-shortcuts.md mode change 100644 => 100755 family/how-to/htpc-system.md mode change 100644 => 100755 family/how-to/htpc-webos-luna.md mode change 100644 => 100755 family/how-to/htpc.md mode change 100644 => 100755 family/how-to/kraken-access.md mode change 100644 => 100755 family/how-to/kraken-portainer-access.md mode change 100644 => 100755 family/how-to/lg-remote-keys.md mode change 100644 => 100755 family/how-to/magic4pc-webos.md mode change 100644 => 100755 family/how-to/mesh-networks.md mode change 100644 => 100755 family/how-to/mp3-bluetooth-remote.md mode change 100644 => 100755 family/how-to/navidrome-truenas-android.md mode change 100644 => 100755 family/how-to/nodered-ventilation.md mode change 100644 => 100755 family/how-to/obsidian-android-sync.md mode change 100644 => 100755 family/how-to/obsidian-sync.md mode change 100644 => 100755 family/how-to/openmediavault-rpi5.md mode change 100644 => 100755 family/how-to/router-bishkek-asus.md mode change 100644 => 100755 family/how-to/samsung.md mode change 100644 => 100755 family/how-to/speaker-sd-card-music.md mode change 100644 => 100755 family/how-to/switch-emulation-rom-infra.md mode change 100644 => 100755 family/how-to/syncthing-truenas-android.md mode change 100644 => 100755 family/how-to/truenas-access.md mode change 100644 => 100755 family/how-to/truenas-infrastructure.md mode change 100644 => 100755 family/how-to/truenas-rclone-backup.md mode change 100644 => 100755 family/how-to/tv-luna-send.md mode change 100644 => 100755 family/how-to/vault-sync-log-2026-05-15.md mode change 100644 => 100755 family/how-to/vault-sync-logs/2026-05-14.md mode change 100644 => 100755 family/how-to/vault-sync-summary.md mode change 100644 => 100755 family/how-to/virtual-keyboard-bazzite.md mode change 100644 => 100755 family/how-to/wireguard-vpn.md mode change 100644 => 100755 family/how-to/xgimi-play6-setup.md mode change 100644 => 100755 family/how-to/xgimi-play6.md mode change 100644 => 100755 family/how-to/xiaomi-wifi-fix.md mode change 100644 => 100755 family/index.md mode change 100644 => 100755 family/logs/vault-sync-2026-05-22.md mode change 100644 => 100755 family/parenting/father-profile.md mode change 100644 => 100755 family/parenting/liza-profile.md mode change 100644 => 100755 family/parenting/natalia-profile.md mode change 100644 => 100755 family/projects/aide-kraken-backend.md mode change 100644 => 100755 family/projects/htpc-windows-games-fix.md mode change 100644 => 100755 family/projects/media-pipeline-agent.md mode change 100644 => 100755 family/projects/media-toolbox-kraken.md mode change 100644 => 100755 family/projects/media-toolbox-taiga.md mode change 100644 => 100755 family/projects/watchlist-discover.md mode change 100644 => 100755 family/projects/watchlist-sync.md mode change 100644 => 100755 family/schedule/reminders.md mode change 100644 => 100755 family/schedule/vacation-july-august-2026.md mode change 100644 => 100755 family/schedule/weekend-plans.md mode change 100644 => 100755 family/sort/duty-free-список.md mode change 100644 => 100755 family/sort/feedback-идеи.md mode change 100644 => 100755 family/sort/grohe-ключ-активации.md mode change 100644 => 100755 family/sort/keep-2023-09-13_15_03_43.md mode change 100644 => 100755 family/sort/keep-2023-09-24_14_40_48.md mode change 100644 => 100755 family/sort/keep-2023-10-10_11_15_25.md mode change 100644 => 100755 family/sort/keep-2023-11-12_18_59_50.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_19.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_20.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_21.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_22.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_23.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_25.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_26.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_27.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_28.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_29.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_30.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_31.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_32.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_34.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_35.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_37.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_38.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_39.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_40.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_41.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_43.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_44.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_45.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_46.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_47.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_48.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_49.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_50.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_51.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_52.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_53.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_54.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_55.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_56.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_57.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_41_59.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_00.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_01.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_02.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_03.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_05.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_06.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_07.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_08.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_10.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_11.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_12.md mode change 100644 => 100755 family/sort/keep-2023-11-14_00_42_13.md mode change 100644 => 100755 family/sort/keep-2023-11-28_22_23_01.md mode change 100644 => 100755 family/sort/keep-2024-03-03_11_57_34.md mode change 100644 => 100755 family/sort/keep-2024-05-17_22_10_53.md mode change 100644 => 100755 family/sort/keep-2024-07-04_10_51_13.md mode change 100644 => 100755 family/sort/keep-2024-08-31_13_54_16.md mode change 100644 => 100755 family/sort/keep-2024-09-28_11_04_08.md mode change 100644 => 100755 family/sort/keep-2024-10-12_05_39_05.md mode change 100644 => 100755 family/sort/keep-2024-11-02_00_03_55.md mode change 100644 => 100755 family/sort/keep-2024-12-06_22_30_09.md mode change 100644 => 100755 family/sort/keep-2025-01-20_16_59_24.md mode change 100644 => 100755 family/sort/keep-2025-02-04_12_19_41.md mode change 100644 => 100755 family/sort/keep-2025-02-07_12_04_37.md mode change 100644 => 100755 family/sort/keep-2025-02-13_00_29_53.md mode change 100644 => 100755 family/sort/keep-2025-03-08_23_14_38.md mode change 100644 => 100755 family/sort/keep-2025-03-21_22_52_16.md mode change 100644 => 100755 family/sort/keep-2025-06-16_10_36_48.md mode change 100644 => 100755 family/sort/keep-2025-07-27_15_41_12.md mode change 100644 => 100755 family/sort/keep-2025-09-14_11_59_05.md mode change 100644 => 100755 family/sort/keep-2025-12-05_17_53_00.md mode change 100644 => 100755 family/sort/keep-2025-12-10_15_45_54.md mode change 100644 => 100755 family/sort/keep-2026-02-04_14_44_55.md mode change 100644 => 100755 family/sort/keep-2026-03-23_12_14_12.md mode change 100644 => 100755 family/sort/performance-review-вопросы.md mode change 100644 => 100755 family/sort/pinduoduo-заказ.md mode change 100644 => 100755 family/sort/zoom-ссылка.md mode change 100644 => 100755 family/sort/алтай-счётчик-заявление.md mode change 100644 => 100755 family/sort/антирадар.md mode change 100644 => 100755 family/sort/взять-на-алтай-короткий.md mode change 100644 => 100755 family/sort/взять-на-алтай-стройматериалы.md mode change 100644 => 100755 family/sort/вино.md mode change 100644 => 100755 family/sort/витамины-и-таблетки.md mode change 100644 => 100755 family/sort/вопросы-по-погребу.md mode change 100644 => 100755 family/sort/генерация-идей-творчество.md mode change 100644 => 100755 family/sort/документы-военкомат.md mode change 100644 => 100755 family/sort/долги-и-расчёты.md mode change 100644 => 100755 family/sort/задачи-по-фасадам.md mode change 100644 => 100755 family/sort/идея-бренда.md mode change 100644 => 100755 family/sort/инн-второй.md mode change 100644 => 100755 family/sort/инн.md mode change 100644 => 100755 family/sort/код-котла-vaillant.md mode change 100644 => 100755 family/sort/код-от-лестницы.md mode change 100644 => 100755 family/sort/код-садика.md mode change 100644 => 100755 family/sort/код-чемодан.md mode change 100644 => 100755 family/sort/коды-сейфа.md mode change 100644 => 100755 family/sort/конкурсы-и-игры-на-вечеринке.md mode change 100644 => 100755 family/sort/контакт-андрей-исаев-ddg.md mode change 100644 => 100755 family/sort/кофр-размер.md mode change 100644 => 100755 family/sort/лдсп-размер-на-стиралку.md mode change 100644 => 100755 family/sort/лизе-на-день-рождения.md mode change 100644 => 100755 family/sort/лыжи-размеры.md mode change 100644 => 100755 family/sort/мтс-тариф-посекундный.md mode change 100644 => 100755 family/sort/музыкальные-жанры-рекомендации.md mode change 100644 => 100755 family/sort/настойки-рецепты.md mode change 100644 => 100755 family/sort/номера-строителей.md mode change 100644 => 100755 family/sort/ошибки-семинара.md mode change 100644 => 100755 family/sort/пин-налог-кг.md mode change 100644 => 100755 family/sort/пин.md mode change 100644 => 100755 family/sort/показания-счётчиков.md mode change 100644 => 100755 family/sort/праздничная-еда-список.md mode change 100644 => 100755 family/sort/продукты-на-новый-год.md mode change 100644 => 100755 family/sort/пылесос-haier-размер.md mode change 100644 => 100755 family/sort/расходы-на-бургер.md mode change 100644 => 100755 family/sort/расходы-на-плов.md mode change 100644 => 100755 family/sort/сало-на-ортосае-где-найти.md mode change 100644 => 100755 family/sort/склад-пароль.md mode change 100644 => 100755 family/sort/список-дел-замеры.md mode change 100644 => 100755 family/sort/список-дел-разное.md mode change 100644 => 100755 family/sort/стеллаж-в-кладовку-размеры.md mode change 100644 => 100755 family/sort/счётчик-каракол-показание.md mode change 100644 => 100755 family/sort/трек-номер-dhl.md mode change 100644 => 100755 family/sort/уроки-истории-номер.md mode change 100644 => 100755 family/sync/vault-sync-2026-05-13.md mode change 100644 => 100755 family/sync/vault-sync-2026-05-22.md mode change 100644 => 100755 personal/_index.md mode change 100644 => 100755 personal/books-wishlist.md mode change 100644 => 100755 personal/business/companies-history.md mode change 100644 => 100755 personal/business/ip-registration-guide.md mode change 100644 => 100755 personal/business/profile.md mode change 100644 => 100755 personal/business/sessions/2026-W20.md mode change 100644 => 100755 personal/business/sessions/2026-W21.md mode change 100644 => 100755 personal/creative/aphorisms.md mode change 100644 => 100755 personal/creative/arctic-poem.md mode change 100644 => 100755 personal/creative/ideas-generation.md mode change 100644 => 100755 personal/creative/notes/Фашизм определение.md mode change 100644 => 100755 personal/creative/poems/da-bud-ya-evreiem.md mode change 100644 => 100755 personal/creative/poems/krematoriy-na-tanspole.md mode change 100644 => 100755 personal/creative/poems/not-mine/franshiza.md mode change 100644 => 100755 personal/creative/songs.md mode change 100644 => 100755 personal/creative/songs/antonoshe.md mode change 100644 => 100755 personal/creative/songs/bozhe-bozhe.md mode change 100644 => 100755 personal/creative/songs/i-mnogo-radosti-original.md mode change 100644 => 100755 personal/creative/songs/irlandskiy-pab.md mode change 100644 => 100755 personal/creative/songs/iskuplenie.md mode change 100644 => 100755 personal/creative/songs/malenkaya-strana.md mode change 100644 => 100755 personal/creative/songs/minimalnaya-diaspora.md mode change 100644 => 100755 personal/creative/songs/na-derevnyu-k-babushke.md mode change 100644 => 100755 personal/creative/songs/natashka.md mode change 100644 => 100755 personal/creative/songs/ne-pokupayut-edy-covid.md mode change 100644 => 100755 personal/creative/songs/ptitsy-ragnareka.md mode change 100644 => 100755 personal/creative/songs/rasprodazha.md mode change 100644 => 100755 personal/creative/songs/ya-khuyaryashiy-maket.md mode change 100644 => 100755 personal/creative/songs/zahodи-na-ugolyok.md mode change 100644 => 100755 personal/creative/toasts/toast-anton.md mode change 100644 => 100755 personal/creative/toasts/toast-obshiy.md mode change 100644 => 100755 personal/creative/toasts/toast-oleg.md mode change 100644 => 100755 personal/docs/Dyld dynamic interposing.md mode change 100644 => 100755 personal/docs/OpenRouter setup.md mode change 100644 => 100755 personal/docs/Swift cross-platform testing.md mode change 100644 => 100755 personal/docs/docker_colima_setup.md mode change 100644 => 100755 personal/docs/openclaw gmail setup.md mode change 100644 => 100755 personal/docs/setup SSH macOS VM VirtualBuddy.md mode change 100644 => 100755 personal/docs/truenas-remote-access-reverse-proxy.md mode change 100644 => 100755 personal/documents/3d-print-wishlist.md mode change 100644 => 100755 personal/documents/app-ideas-enriched/accessibility-browser-20260524.md mode change 100644 => 100755 personal/documents/app-ideas-enriched/lifelogger-voice-diary-20260517.md mode change 100644 => 100755 personal/documents/app-ideas-enriched/local-rag-indexer-20260517.md mode change 100644 => 100755 personal/documents/app-ideas-enriched/mcp-permissions-activator-20260524.md mode change 100644 => 100755 personal/documents/app-ideas-enriched/robots-elves-time-paradox-20260524.md mode change 100644 => 100755 personal/documents/app-ideas-enriched/voice-assistant-aide-20260524.md mode change 100644 => 100755 personal/documents/app-ideas.md mode change 100644 => 100755 personal/documents/books-reading-list.md mode change 100644 => 100755 personal/documents/budget-app-features.md mode change 100644 => 100755 personal/documents/deferred-tasks.md mode change 100644 => 100755 personal/documents/fly-box.md mode change 100644 => 100755 personal/documents/russia-tasks.md mode change 100644 => 100755 personal/documents/subscription-gym.md mode change 100644 => 100755 personal/documents/todo-list.md mode change 100644 => 100755 personal/documents/workout.md mode change 100644 => 100755 personal/ideas/marx-theory-of-value.md mode change 100644 => 100755 personal/index.md mode change 100644 => 100755 personal/music-download-practices.md mode change 100644 => 100755 personal/plans/job-search.md mode change 100644 => 100755 personal/plans/kraken-voice-tasks.md mode change 100644 => 100755 personal/plans/llm-wiki-plan.md mode change 100644 => 100755 personal/projects/app-ideas.md mode change 100644 => 100755 personal/projects/library-app.md mode change 100644 => 100755 personal/projects/media-pipeline-file-routing.md mode change 100644 => 100755 personal/projects/media-pipeline-tracker-parsers.md mode change 100644 => 100755 personal/projects/nolvu-reflect-skip.md mode change 100644 => 100755 personal/projects/orblab.md mode change 100644 => 100755 personal/projects/personal-os/agent-names-brainstorm.md mode change 100644 => 100755 personal/projects/personal-os/ai-psychologist-research.md mode change 100644 => 100755 personal/projects/personal-os/enrichment-runs/cross-enrichment-last.md mode change 100644 => 100755 personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-24.md mode change 100644 => 100755 personal/projects/personal-os/enrichment-runs/cross-enrichment-queue.md mode change 100644 => 100755 personal/projects/personal-os/enrichment-runs/last.md mode change 100644 => 100755 personal/projects/personal-os/executor-orchestrator-redesign.md mode change 100644 => 100755 personal/projects/personal-os/executor-security-analysis.md mode change 100644 => 100755 personal/projects/personal-os/executor-skip-report.md mode change 100644 => 100755 personal/projects/personal-os/executor-spawning-research.md mode change 100644 => 100755 personal/projects/personal-os/executor-v2-redesign.md mode change 100644 => 100755 personal/projects/personal-os/hermes-calendar-access.md mode change 100644 => 100755 personal/projects/personal-os/kraken-obsidian-write-bug.md mode change 100644 => 100755 personal/projects/personal-os/obsidian-vault-strategy.md mode change 100644 => 100755 personal/projects/personal-os/time-machine-tunnel-backup.md mode change 100644 => 100755 personal/projects/personal-os/unprejudiced-ai-psychologist.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-15.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-16-p2.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-16.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-17.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-18-02h.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-18.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-19.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-20.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-22.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-23.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-24.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-25.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-27.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-28.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/2026-05-29.md mode change 100644 => 100755 personal/projects/personal-os/wiki-curation-runs/research-2026-05-23.md mode change 100644 => 100755 personal/projects/personal-os/zoom-ai-transcript-export.md mode change 100644 => 100755 personal/projects/psychologist-app/analytics.md mode change 100644 => 100755 personal/projects/psychologist-app/character-design.md mode change 100644 => 100755 personal/projects/psychologist-app/crisis-protocol.md mode change 100644 => 100755 personal/projects/psychologist-app/dev-setup.md mode change 100644 => 100755 personal/projects/psychologist-app/landing.md mode change 100644 => 100755 personal/projects/psychologist-app/market-analysis.md mode change 100644 => 100755 personal/projects/psychologist-app/market-focus.md mode change 100644 => 100755 personal/projects/psychologist-app/marketing-hooks.md mode change 100644 => 100755 personal/projects/psychologist-app/marketing-strategy.md mode change 100644 => 100755 personal/projects/psychologist-app/monetization-revenuecat.md mode change 100644 => 100755 personal/projects/psychologist-app/naming.md mode change 100644 => 100755 personal/projects/psychologist-app/onboarding-archetypes.md mode change 100644 => 100755 personal/projects/psychologist-app/onboarding-ux.md mode change 100644 => 100755 personal/projects/psychologist-app/overview.md mode change 100644 => 100755 personal/projects/psychologist-app/privacy-legal.md mode change 100644 => 100755 personal/projects/psychologist-app/session-design.md mode change 100644 => 100755 personal/projects/psychologist-app/skip-tools-poc.md mode change 100644 => 100755 personal/projects/psychologist-app/twitter-thread-draft.md mode change 100644 => 100755 personal/psychology/insights.md mode change 100644 => 100755 personal/psychology/observations/2026-W20.md mode change 100644 => 100755 personal/psychology/observations/2026-W21.md mode change 100644 => 100755 personal/psychology/observations/2026-W22.md mode change 100644 => 100755 personal/psychology/profile.md mode change 100644 => 100755 personal/psychology/prompts.md mode change 100644 => 100755 personal/psychology/reflect-skip-android.md mode change 100644 => 100755 personal/shopping-order.md mode change 100644 => 100755 personal/spotify-library.md mode change 100644 => 100755 personal/sync-test.md mode change 100644 => 100755 personal/test_taiga_access.md mode change 100644 => 100755 personal/test_taiga_access_obsidian.md mode change 100644 => 120000 raw/personal-os-catchup-plan-2026-04-27.md mode change 100644 => 120000 raw/personal-os-state-2026-04-27.md mode change 100644 => 120000 raw/schema.sql mode change 100644 => 120000 raw/wiki-ingest-prompt.md delete mode 100644 steam-grid-artwork.py delete mode 100644 sync-test.md delete mode 100644 wiki/SCHEMA.md delete mode 100644 wiki/comparisons/hermes-native-vs-docker.md delete mode 100644 wiki/concepts/agent-memory-architecture.md delete mode 100644 wiki/concepts/autonomous-agent-safety.md delete mode 100644 wiki/concepts/executor-orchestrator.md delete mode 100644 wiki/concepts/executor-security-incident.md delete mode 100644 wiki/concepts/hermes-deployment-patterns.md delete mode 100644 wiki/concepts/htpc-bazzite-ecosystem.md delete mode 100644 wiki/concepts/knowledge-lifecycle.md delete mode 100644 wiki/concepts/kraken-media-stack.md delete mode 100644 wiki/concepts/multi-agent-design-patterns.md delete mode 100644 wiki/concepts/multi-host-cron-topology.md delete mode 100644 wiki/concepts/vault-agent-integration.md delete mode 100644 wiki/concepts/vault-strategy.md delete mode 100644 wiki/concepts/watchlist-automation.md delete mode 100644 wiki/ddg-asana-workflow.md delete mode 100644 wiki/entities/library-app.md delete mode 100644 wiki/entities/psychologist-app.md delete mode 100644 wiki/htpc-bazzite-proton.md delete mode 100644 wiki/index.md delete mode 100644 wiki/log.md delete mode 100644 wiki/obsidian-mcp-wrapper.md delete mode 100644 wiki/personal-os-agent-rules.md delete mode 100644 wiki/personal-os-architecture.md delete mode 100644 wiki/personal-os-catchup-plan-2026-04-27.md delete mode 100644 wiki/personal-os-purpose.md delete mode 100644 wiki/personal-os-schema.md delete mode 100644 wiki/personal-os-self-modification.md delete mode 100644 wiki/personal-os-state-2026-04-27.md delete mode 100644 wiki/personal-os-sync-pipeline.md delete mode 100644 wiki/raw/inbox/processed/research-vault-strategy-memory-20260516.md delete mode 100644 wiki/research-queue.md delete mode 100644 wiki/tech/arr-stack-kraken.md delete mode 100644 wiki/tech/arr-stack-taiga.md delete mode 100644 wiki/tech/gitea-config.md delete mode 100644 wiki/tech/hermes-docker-kraken.md delete mode 100644 wiki/tech/hermes-eagle-mac.md delete mode 100644 wiki/tech/hermes-kraken-api.md delete mode 100644 wiki/tech/htpc-kodi-layout.md delete mode 100644 wiki/tech/htpc-magic4pc.md delete mode 100644 wiki/tech/htpc-steam-emulators.md delete mode 100644 wiki/tech/jellyfin-config.md delete mode 100644 wiki/tech/jellyfin-transcode-rpi5.md delete mode 100644 wiki/tech/kraken-network.md delete mode 100644 wiki/tech/media-pipeline-pitfalls.md delete mode 100644 wiki/tech/reflect-skip-fuse.md delete mode 100644 wiki/tech/truenas-inpxer.md delete mode 100644 wiki/tech/tv-luna-send.md delete mode 100644 wiki/tech/vault-git-sync.md delete mode 100644 wiki/tech/vault-namespace.md delete mode 100644 wiki/tech/vps-qentra.md delete mode 100644 wiki/tech/wireguard-vpn.md delete mode 100644 wiki/tech/xgimi-play6-setup.md delete mode 100644 wiki/user-profile.md delete mode 100644 wiki/vault-filling-guide.md delete mode 100644 wiki/wiki-ingest-process.md delete mode 100644 work/briefs/daily/2026-05-23.md delete mode 100644 work/briefs/daily/2026-05-24.md delete mode 100644 work/briefs/daily/2026-05-25.md delete mode 100644 work/briefs/daily/2026-05-26.md delete mode 100644 work/briefs/daily/2026-05-27.md delete mode 100644 work/briefs/daily/2026-05-28.md delete mode 100644 work/briefs/daily/2026-05-29.md delete mode 100644 work/briefs/inbox/2026-05-23.md delete mode 100644 work/briefs/inbox/2026-05-24.md delete mode 100644 work/briefs/inbox/2026-05-25.md delete mode 100644 work/briefs/inbox/2026-05-26.md delete mode 100644 work/briefs/inbox/2026-05-27.md delete mode 100644 work/briefs/inbox/2026-05-28.md delete mode 100644 work/briefs/weekly/plan-2026-05-18.md delete mode 100644 work/briefs/weekly/plan-2026-05-25.md delete mode 100644 work/projects/nolvu-marketing.md delete mode 100644 Рецепты коктейлей.md diff --git a/.gitignore b/.gitignore index 1498a7e2..8390cb0b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,3 @@ -.obsidian/core-plugins.json .obsidian/workspace.json .obsidian/workspace-mobile.json .trash/ -# Plugin binaries — each device manages its own, avoid cross-device overwrites -.obsidian/plugins/obsidian-git/main.js -.obsidian/plugins/obsidian-git/styles.css -.obsidian/plugins/obsidian-git/manifest.json -.stignore -.stversions diff --git a/.stfolder/syncthing-folder-940f59.txt b/.stfolder/syncthing-folder-940f59.txt new file mode 100755 index 00000000..ea1c69d0 --- /dev/null +++ b/.stfolder/syncthing-folder-940f59.txt @@ -0,0 +1,5 @@ +# This directory is a Syncthing folder marker. +# Do not delete. + +folderID: obsidian-vault +created: 2026-05-29T13:52:15+07:00 diff --git a/Untitled.md b/Untitled.md deleted file mode 100644 index e69de29b..00000000 diff --git a/_index.md b/_index.md deleted file mode 100644 index a7565486..00000000 --- a/_index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Index - -[[work/_index]] | [[personal/_index]] | [[family/_index]] diff --git a/family/_index.md b/family/_index.md old mode 100644 new mode 100755 diff --git a/family/contacts/birthdays.md b/family/contacts/birthdays.md old mode 100644 new mode 100755 diff --git a/family/contacts/service-providers.md b/family/contacts/service-providers.md old mode 100644 new mode 100755 diff --git a/family/contacts/services.md b/family/contacts/services.md old mode 100644 new mode 100755 diff --git a/family/documents/altai-electricity-meter.md b/family/documents/altai-electricity-meter.md old mode 100644 new mode 100755 diff --git a/family/documents/altai-house-inventory.md b/family/documents/altai-house-inventory.md old mode 100644 new mode 100755 diff --git a/family/documents/altai-shopping.md b/family/documents/altai-shopping.md old mode 100644 new mode 100755 diff --git a/family/documents/books-reading-list.md b/family/documents/books-reading-list.md old mode 100644 new mode 100755 diff --git a/family/documents/books-wishlist.md b/family/documents/books-wishlist.md old mode 100644 new mode 100755 diff --git a/family/documents/bring-to-russia.md b/family/documents/bring-to-russia.md old mode 100644 new mode 100755 diff --git a/family/documents/car-notes.md b/family/documents/car-notes.md old mode 100644 new mode 100755 diff --git a/family/documents/fasteners-nomenclature.md b/family/documents/fasteners-nomenclature.md old mode 100644 new mode 100755 diff --git a/family/documents/flea-market-shopping.md b/family/documents/flea-market-shopping.md old mode 100644 new mode 100755 diff --git a/family/documents/games-wishlist.md b/family/documents/games-wishlist.md old mode 100644 new mode 100755 diff --git a/family/documents/gift-ideas.md b/family/documents/gift-ideas.md old mode 100644 new mode 100755 diff --git a/family/documents/google-books-api-key.md b/family/documents/google-books-api-key.md old mode 100644 new mode 100755 diff --git a/family/documents/hiking-packing-list.md b/family/documents/hiking-packing-list.md old mode 100644 new mode 100755 diff --git a/family/documents/holiday-food.md b/family/documents/holiday-food.md old mode 100644 new mode 100755 diff --git a/family/documents/home-access-codes.md b/family/documents/home-access-codes.md old mode 100644 new mode 100755 diff --git a/family/documents/home-automation-wishlist.md b/family/documents/home-automation-wishlist.md old mode 100644 new mode 100755 diff --git a/family/documents/home-wishlist.md b/family/documents/home-wishlist.md old mode 100644 new mode 100755 diff --git a/family/documents/karaoke-songs.md b/family/documents/karaoke-songs.md old mode 100644 new mode 100755 diff --git a/family/documents/kids-activities.md b/family/documents/kids-activities.md old mode 100644 new mode 100755 diff --git a/family/documents/kids-songs.md b/family/documents/kids-songs.md old mode 100644 new mode 100755 diff --git a/family/documents/lerua-shopping.md b/family/documents/lerua-shopping.md old mode 100644 new mode 100755 diff --git a/family/documents/loyalty-cards.md b/family/documents/loyalty-cards.md old mode 100644 new mode 100755 diff --git a/family/documents/movies-watchlist.md b/family/documents/movies-watchlist.md old mode 100644 new mode 100755 diff --git a/family/documents/party-games.md b/family/documents/party-games.md old mode 100644 new mode 100755 diff --git a/family/documents/places-to-visit.md b/family/documents/places-to-visit.md old mode 100644 new mode 100755 diff --git a/family/documents/recipes-wishlist.md b/family/documents/recipes-wishlist.md old mode 100644 new mode 100755 diff --git a/family/documents/shopping-lists.md b/family/documents/shopping-lists.md old mode 100644 new mode 100755 diff --git a/family/documents/shopping-order.md b/family/documents/shopping-order.md old mode 100644 new mode 100755 diff --git a/family/documents/trip-packing-list.md b/family/documents/trip-packing-list.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync-2026-05-13-08-01.md b/family/documents/vault-sync-2026-05-13-08-01.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync-2026-05-20.md b/family/documents/vault-sync-2026-05-20.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync-2026-05-21.md b/family/documents/vault-sync-2026-05-21.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync-summary-2026-05-22.md b/family/documents/vault-sync-summary-2026-05-22.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync/2026-05-13-sync.md b/family/documents/vault-sync/2026-05-13-sync.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync/2026-05-15-sync.md b/family/documents/vault-sync/2026-05-15-sync.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync/2026-05-22-vault-sync.md b/family/documents/vault-sync/2026-05-22-vault-sync.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync/2026-05-23.md b/family/documents/vault-sync/2026-05-23.md old mode 100644 new mode 100755 diff --git a/family/documents/vault-sync/20260514.md b/family/documents/vault-sync/20260514.md old mode 100644 new mode 100755 diff --git a/family/documents/книги-ребенку.md b/family/documents/книги-ребенку.md old mode 100644 new mode 100755 diff --git a/family/how-to/arduino-programming.md b/family/how-to/arduino-programming.md old mode 100644 new mode 100755 diff --git a/family/how-to/home-automation.md b/family/how-to/home-automation.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc-access.md b/family/how-to/htpc-access.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc-emulators-setup.md b/family/how-to/htpc-emulators-setup.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc-gaming-plans.md b/family/how-to/htpc-gaming-plans.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc-magic4pc.md b/family/how-to/htpc-magic4pc.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc-migration-plan.md b/family/how-to/htpc-migration-plan.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc-steam-nonsteam-shortcuts.md b/family/how-to/htpc-steam-nonsteam-shortcuts.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc-system.md b/family/how-to/htpc-system.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc-webos-luna.md b/family/how-to/htpc-webos-luna.md old mode 100644 new mode 100755 diff --git a/family/how-to/htpc.md b/family/how-to/htpc.md old mode 100644 new mode 100755 diff --git a/family/how-to/kraken-access.md b/family/how-to/kraken-access.md old mode 100644 new mode 100755 diff --git a/family/how-to/kraken-portainer-access.md b/family/how-to/kraken-portainer-access.md old mode 100644 new mode 100755 diff --git a/family/how-to/lg-remote-keys.md b/family/how-to/lg-remote-keys.md old mode 100644 new mode 100755 diff --git a/family/how-to/magic4pc-webos.md b/family/how-to/magic4pc-webos.md old mode 100644 new mode 100755 diff --git a/family/how-to/mesh-networks.md b/family/how-to/mesh-networks.md old mode 100644 new mode 100755 diff --git a/family/how-to/mp3-bluetooth-remote.md b/family/how-to/mp3-bluetooth-remote.md old mode 100644 new mode 100755 diff --git a/family/how-to/navidrome-truenas-android.md b/family/how-to/navidrome-truenas-android.md old mode 100644 new mode 100755 diff --git a/family/how-to/nodered-ventilation.md b/family/how-to/nodered-ventilation.md old mode 100644 new mode 100755 diff --git a/family/how-to/obsidian-android-sync.md b/family/how-to/obsidian-android-sync.md old mode 100644 new mode 100755 diff --git a/family/how-to/obsidian-sync.md b/family/how-to/obsidian-sync.md old mode 100644 new mode 100755 diff --git a/family/how-to/openmediavault-rpi5.md b/family/how-to/openmediavault-rpi5.md old mode 100644 new mode 100755 diff --git a/family/how-to/router-bishkek-asus.md b/family/how-to/router-bishkek-asus.md old mode 100644 new mode 100755 diff --git a/family/how-to/samsung.md b/family/how-to/samsung.md old mode 100644 new mode 100755 diff --git a/family/how-to/speaker-sd-card-music.md b/family/how-to/speaker-sd-card-music.md old mode 100644 new mode 100755 diff --git a/family/how-to/switch-emulation-rom-infra.md b/family/how-to/switch-emulation-rom-infra.md old mode 100644 new mode 100755 diff --git a/family/how-to/syncthing-truenas-android.md b/family/how-to/syncthing-truenas-android.md old mode 100644 new mode 100755 diff --git a/family/how-to/truenas-access.md b/family/how-to/truenas-access.md old mode 100644 new mode 100755 diff --git a/family/how-to/truenas-infrastructure.md b/family/how-to/truenas-infrastructure.md old mode 100644 new mode 100755 diff --git a/family/how-to/truenas-rclone-backup.md b/family/how-to/truenas-rclone-backup.md old mode 100644 new mode 100755 diff --git a/family/how-to/tv-luna-send.md b/family/how-to/tv-luna-send.md old mode 100644 new mode 100755 diff --git a/family/how-to/vault-sync-log-2026-05-15.md b/family/how-to/vault-sync-log-2026-05-15.md old mode 100644 new mode 100755 diff --git a/family/how-to/vault-sync-logs/2026-05-14.md b/family/how-to/vault-sync-logs/2026-05-14.md old mode 100644 new mode 100755 diff --git a/family/how-to/vault-sync-summary.md b/family/how-to/vault-sync-summary.md old mode 100644 new mode 100755 diff --git a/family/how-to/virtual-keyboard-bazzite.md b/family/how-to/virtual-keyboard-bazzite.md old mode 100644 new mode 100755 diff --git a/family/how-to/wireguard-vpn.md b/family/how-to/wireguard-vpn.md old mode 100644 new mode 100755 diff --git a/family/how-to/xgimi-play6-setup.md b/family/how-to/xgimi-play6-setup.md old mode 100644 new mode 100755 diff --git a/family/how-to/xgimi-play6.md b/family/how-to/xgimi-play6.md old mode 100644 new mode 100755 diff --git a/family/how-to/xiaomi-wifi-fix.md b/family/how-to/xiaomi-wifi-fix.md old mode 100644 new mode 100755 diff --git a/family/index.md b/family/index.md old mode 100644 new mode 100755 diff --git a/family/logs/vault-sync-2026-05-22.md b/family/logs/vault-sync-2026-05-22.md old mode 100644 new mode 100755 diff --git a/family/parenting/father-profile.md b/family/parenting/father-profile.md old mode 100644 new mode 100755 diff --git a/family/parenting/liza-profile.md b/family/parenting/liza-profile.md old mode 100644 new mode 100755 diff --git a/family/parenting/natalia-profile.md b/family/parenting/natalia-profile.md old mode 100644 new mode 100755 diff --git a/family/projects/aide-kraken-backend.md b/family/projects/aide-kraken-backend.md old mode 100644 new mode 100755 diff --git a/family/projects/htpc-windows-games-fix.md b/family/projects/htpc-windows-games-fix.md old mode 100644 new mode 100755 diff --git a/family/projects/media-pipeline-agent.md b/family/projects/media-pipeline-agent.md old mode 100644 new mode 100755 diff --git a/family/projects/media-toolbox-kraken.md b/family/projects/media-toolbox-kraken.md old mode 100644 new mode 100755 diff --git a/family/projects/media-toolbox-taiga.md b/family/projects/media-toolbox-taiga.md old mode 100644 new mode 100755 diff --git a/family/projects/watchlist-discover.md b/family/projects/watchlist-discover.md old mode 100644 new mode 100755 diff --git a/family/projects/watchlist-sync.md b/family/projects/watchlist-sync.md old mode 100644 new mode 100755 diff --git a/family/schedule/reminders.md b/family/schedule/reminders.md old mode 100644 new mode 100755 diff --git a/family/schedule/vacation-july-august-2026.md b/family/schedule/vacation-july-august-2026.md old mode 100644 new mode 100755 diff --git a/family/schedule/weekend-plans.md b/family/schedule/weekend-plans.md old mode 100644 new mode 100755 diff --git a/family/sort/duty-free-список.md b/family/sort/duty-free-список.md old mode 100644 new mode 100755 diff --git a/family/sort/feedback-идеи.md b/family/sort/feedback-идеи.md old mode 100644 new mode 100755 diff --git a/family/sort/grohe-ключ-активации.md b/family/sort/grohe-ключ-активации.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-09-13_15_03_43.md b/family/sort/keep-2023-09-13_15_03_43.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-09-24_14_40_48.md b/family/sort/keep-2023-09-24_14_40_48.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-10-10_11_15_25.md b/family/sort/keep-2023-10-10_11_15_25.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-12_18_59_50.md b/family/sort/keep-2023-11-12_18_59_50.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_19.md b/family/sort/keep-2023-11-14_00_41_19.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_20.md b/family/sort/keep-2023-11-14_00_41_20.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_21.md b/family/sort/keep-2023-11-14_00_41_21.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_22.md b/family/sort/keep-2023-11-14_00_41_22.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_23.md b/family/sort/keep-2023-11-14_00_41_23.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_25.md b/family/sort/keep-2023-11-14_00_41_25.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_26.md b/family/sort/keep-2023-11-14_00_41_26.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_27.md b/family/sort/keep-2023-11-14_00_41_27.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_28.md b/family/sort/keep-2023-11-14_00_41_28.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_29.md b/family/sort/keep-2023-11-14_00_41_29.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_30.md b/family/sort/keep-2023-11-14_00_41_30.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_31.md b/family/sort/keep-2023-11-14_00_41_31.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_32.md b/family/sort/keep-2023-11-14_00_41_32.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_34.md b/family/sort/keep-2023-11-14_00_41_34.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_35.md b/family/sort/keep-2023-11-14_00_41_35.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_37.md b/family/sort/keep-2023-11-14_00_41_37.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_38.md b/family/sort/keep-2023-11-14_00_41_38.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_39.md b/family/sort/keep-2023-11-14_00_41_39.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_40.md b/family/sort/keep-2023-11-14_00_41_40.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_41.md b/family/sort/keep-2023-11-14_00_41_41.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_43.md b/family/sort/keep-2023-11-14_00_41_43.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_44.md b/family/sort/keep-2023-11-14_00_41_44.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_45.md b/family/sort/keep-2023-11-14_00_41_45.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_46.md b/family/sort/keep-2023-11-14_00_41_46.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_47.md b/family/sort/keep-2023-11-14_00_41_47.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_48.md b/family/sort/keep-2023-11-14_00_41_48.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_49.md b/family/sort/keep-2023-11-14_00_41_49.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_50.md b/family/sort/keep-2023-11-14_00_41_50.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_51.md b/family/sort/keep-2023-11-14_00_41_51.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_52.md b/family/sort/keep-2023-11-14_00_41_52.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_53.md b/family/sort/keep-2023-11-14_00_41_53.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_54.md b/family/sort/keep-2023-11-14_00_41_54.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_55.md b/family/sort/keep-2023-11-14_00_41_55.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_56.md b/family/sort/keep-2023-11-14_00_41_56.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_57.md b/family/sort/keep-2023-11-14_00_41_57.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_41_59.md b/family/sort/keep-2023-11-14_00_41_59.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_00.md b/family/sort/keep-2023-11-14_00_42_00.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_01.md b/family/sort/keep-2023-11-14_00_42_01.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_02.md b/family/sort/keep-2023-11-14_00_42_02.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_03.md b/family/sort/keep-2023-11-14_00_42_03.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_05.md b/family/sort/keep-2023-11-14_00_42_05.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_06.md b/family/sort/keep-2023-11-14_00_42_06.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_07.md b/family/sort/keep-2023-11-14_00_42_07.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_08.md b/family/sort/keep-2023-11-14_00_42_08.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_10.md b/family/sort/keep-2023-11-14_00_42_10.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_11.md b/family/sort/keep-2023-11-14_00_42_11.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_12.md b/family/sort/keep-2023-11-14_00_42_12.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-14_00_42_13.md b/family/sort/keep-2023-11-14_00_42_13.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2023-11-28_22_23_01.md b/family/sort/keep-2023-11-28_22_23_01.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2024-03-03_11_57_34.md b/family/sort/keep-2024-03-03_11_57_34.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2024-05-17_22_10_53.md b/family/sort/keep-2024-05-17_22_10_53.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2024-07-04_10_51_13.md b/family/sort/keep-2024-07-04_10_51_13.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2024-08-31_13_54_16.md b/family/sort/keep-2024-08-31_13_54_16.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2024-09-28_11_04_08.md b/family/sort/keep-2024-09-28_11_04_08.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2024-10-12_05_39_05.md b/family/sort/keep-2024-10-12_05_39_05.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2024-11-02_00_03_55.md b/family/sort/keep-2024-11-02_00_03_55.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2024-12-06_22_30_09.md b/family/sort/keep-2024-12-06_22_30_09.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-01-20_16_59_24.md b/family/sort/keep-2025-01-20_16_59_24.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-02-04_12_19_41.md b/family/sort/keep-2025-02-04_12_19_41.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-02-07_12_04_37.md b/family/sort/keep-2025-02-07_12_04_37.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-02-13_00_29_53.md b/family/sort/keep-2025-02-13_00_29_53.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-03-08_23_14_38.md b/family/sort/keep-2025-03-08_23_14_38.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-03-21_22_52_16.md b/family/sort/keep-2025-03-21_22_52_16.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-06-16_10_36_48.md b/family/sort/keep-2025-06-16_10_36_48.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-07-27_15_41_12.md b/family/sort/keep-2025-07-27_15_41_12.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-09-14_11_59_05.md b/family/sort/keep-2025-09-14_11_59_05.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-12-05_17_53_00.md b/family/sort/keep-2025-12-05_17_53_00.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2025-12-10_15_45_54.md b/family/sort/keep-2025-12-10_15_45_54.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2026-02-04_14_44_55.md b/family/sort/keep-2026-02-04_14_44_55.md old mode 100644 new mode 100755 diff --git a/family/sort/keep-2026-03-23_12_14_12.md b/family/sort/keep-2026-03-23_12_14_12.md old mode 100644 new mode 100755 diff --git a/family/sort/performance-review-вопросы.md b/family/sort/performance-review-вопросы.md old mode 100644 new mode 100755 diff --git a/family/sort/pinduoduo-заказ.md b/family/sort/pinduoduo-заказ.md old mode 100644 new mode 100755 diff --git a/family/sort/zoom-ссылка.md b/family/sort/zoom-ссылка.md old mode 100644 new mode 100755 diff --git a/family/sort/алтай-счётчик-заявление.md b/family/sort/алтай-счётчик-заявление.md old mode 100644 new mode 100755 diff --git a/family/sort/антирадар.md b/family/sort/антирадар.md old mode 100644 new mode 100755 diff --git a/family/sort/взять-на-алтай-короткий.md b/family/sort/взять-на-алтай-короткий.md old mode 100644 new mode 100755 diff --git a/family/sort/взять-на-алтай-стройматериалы.md b/family/sort/взять-на-алтай-стройматериалы.md old mode 100644 new mode 100755 diff --git a/family/sort/вино.md b/family/sort/вино.md old mode 100644 new mode 100755 diff --git a/family/sort/витамины-и-таблетки.md b/family/sort/витамины-и-таблетки.md old mode 100644 new mode 100755 diff --git a/family/sort/вопросы-по-погребу.md b/family/sort/вопросы-по-погребу.md old mode 100644 new mode 100755 diff --git a/family/sort/генерация-идей-творчество.md b/family/sort/генерация-идей-творчество.md old mode 100644 new mode 100755 diff --git a/family/sort/документы-военкомат.md b/family/sort/документы-военкомат.md old mode 100644 new mode 100755 diff --git a/family/sort/долги-и-расчёты.md b/family/sort/долги-и-расчёты.md old mode 100644 new mode 100755 diff --git a/family/sort/задачи-по-фасадам.md b/family/sort/задачи-по-фасадам.md old mode 100644 new mode 100755 diff --git a/family/sort/идея-бренда.md b/family/sort/идея-бренда.md old mode 100644 new mode 100755 diff --git a/family/sort/инн-второй.md b/family/sort/инн-второй.md old mode 100644 new mode 100755 diff --git a/family/sort/инн.md b/family/sort/инн.md old mode 100644 new mode 100755 diff --git a/family/sort/код-котла-vaillant.md b/family/sort/код-котла-vaillant.md old mode 100644 new mode 100755 diff --git a/family/sort/код-от-лестницы.md b/family/sort/код-от-лестницы.md old mode 100644 new mode 100755 diff --git a/family/sort/код-садика.md b/family/sort/код-садика.md old mode 100644 new mode 100755 diff --git a/family/sort/код-чемодан.md b/family/sort/код-чемодан.md old mode 100644 new mode 100755 diff --git a/family/sort/коды-сейфа.md b/family/sort/коды-сейфа.md old mode 100644 new mode 100755 diff --git a/family/sort/конкурсы-и-игры-на-вечеринке.md b/family/sort/конкурсы-и-игры-на-вечеринке.md old mode 100644 new mode 100755 diff --git a/family/sort/контакт-андрей-исаев-ddg.md b/family/sort/контакт-андрей-исаев-ddg.md old mode 100644 new mode 100755 diff --git a/family/sort/кофр-размер.md b/family/sort/кофр-размер.md old mode 100644 new mode 100755 diff --git a/family/sort/лдсп-размер-на-стиралку.md b/family/sort/лдсп-размер-на-стиралку.md old mode 100644 new mode 100755 diff --git a/family/sort/лизе-на-день-рождения.md b/family/sort/лизе-на-день-рождения.md old mode 100644 new mode 100755 diff --git a/family/sort/лыжи-размеры.md b/family/sort/лыжи-размеры.md old mode 100644 new mode 100755 diff --git a/family/sort/мтс-тариф-посекундный.md b/family/sort/мтс-тариф-посекундный.md old mode 100644 new mode 100755 diff --git a/family/sort/музыкальные-жанры-рекомендации.md b/family/sort/музыкальные-жанры-рекомендации.md old mode 100644 new mode 100755 diff --git a/family/sort/настойки-рецепты.md b/family/sort/настойки-рецепты.md old mode 100644 new mode 100755 diff --git a/family/sort/номера-строителей.md b/family/sort/номера-строителей.md old mode 100644 new mode 100755 diff --git a/family/sort/ошибки-семинара.md b/family/sort/ошибки-семинара.md old mode 100644 new mode 100755 diff --git a/family/sort/пин-налог-кг.md b/family/sort/пин-налог-кг.md old mode 100644 new mode 100755 diff --git a/family/sort/пин.md b/family/sort/пин.md old mode 100644 new mode 100755 diff --git a/family/sort/показания-счётчиков.md b/family/sort/показания-счётчиков.md old mode 100644 new mode 100755 diff --git a/family/sort/праздничная-еда-список.md b/family/sort/праздничная-еда-список.md old mode 100644 new mode 100755 diff --git a/family/sort/продукты-на-новый-год.md b/family/sort/продукты-на-новый-год.md old mode 100644 new mode 100755 diff --git a/family/sort/пылесос-haier-размер.md b/family/sort/пылесос-haier-размер.md old mode 100644 new mode 100755 diff --git a/family/sort/расходы-на-бургер.md b/family/sort/расходы-на-бургер.md old mode 100644 new mode 100755 diff --git a/family/sort/расходы-на-плов.md b/family/sort/расходы-на-плов.md old mode 100644 new mode 100755 diff --git a/family/sort/сало-на-ортосае-где-найти.md b/family/sort/сало-на-ортосае-где-найти.md old mode 100644 new mode 100755 diff --git a/family/sort/склад-пароль.md b/family/sort/склад-пароль.md old mode 100644 new mode 100755 diff --git a/family/sort/список-дел-замеры.md b/family/sort/список-дел-замеры.md old mode 100644 new mode 100755 diff --git a/family/sort/список-дел-разное.md b/family/sort/список-дел-разное.md old mode 100644 new mode 100755 diff --git a/family/sort/стеллаж-в-кладовку-размеры.md b/family/sort/стеллаж-в-кладовку-размеры.md old mode 100644 new mode 100755 diff --git a/family/sort/счётчик-каракол-показание.md b/family/sort/счётчик-каракол-показание.md old mode 100644 new mode 100755 diff --git a/family/sort/трек-номер-dhl.md b/family/sort/трек-номер-dhl.md old mode 100644 new mode 100755 diff --git a/family/sort/уроки-истории-номер.md b/family/sort/уроки-истории-номер.md old mode 100644 new mode 100755 diff --git a/family/sync/vault-sync-2026-05-13.md b/family/sync/vault-sync-2026-05-13.md old mode 100644 new mode 100755 diff --git a/family/sync/vault-sync-2026-05-22.md b/family/sync/vault-sync-2026-05-22.md old mode 100644 new mode 100755 diff --git a/personal/_index.md b/personal/_index.md old mode 100644 new mode 100755 diff --git a/personal/books-wishlist.md b/personal/books-wishlist.md old mode 100644 new mode 100755 diff --git a/personal/business/companies-history.md b/personal/business/companies-history.md old mode 100644 new mode 100755 diff --git a/personal/business/ip-registration-guide.md b/personal/business/ip-registration-guide.md old mode 100644 new mode 100755 diff --git a/personal/business/profile.md b/personal/business/profile.md old mode 100644 new mode 100755 diff --git a/personal/business/sessions/2026-W20.md b/personal/business/sessions/2026-W20.md old mode 100644 new mode 100755 diff --git a/personal/business/sessions/2026-W21.md b/personal/business/sessions/2026-W21.md old mode 100644 new mode 100755 diff --git a/personal/creative/aphorisms.md b/personal/creative/aphorisms.md old mode 100644 new mode 100755 diff --git a/personal/creative/arctic-poem.md b/personal/creative/arctic-poem.md old mode 100644 new mode 100755 diff --git a/personal/creative/ideas-generation.md b/personal/creative/ideas-generation.md old mode 100644 new mode 100755 diff --git a/personal/creative/notes/Фашизм определение.md b/personal/creative/notes/Фашизм определение.md old mode 100644 new mode 100755 diff --git a/personal/creative/poems/da-bud-ya-evreiem.md b/personal/creative/poems/da-bud-ya-evreiem.md old mode 100644 new mode 100755 diff --git a/personal/creative/poems/krematoriy-na-tanspole.md b/personal/creative/poems/krematoriy-na-tanspole.md old mode 100644 new mode 100755 diff --git a/personal/creative/poems/not-mine/franshiza.md b/personal/creative/poems/not-mine/franshiza.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs.md b/personal/creative/songs.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/antonoshe.md b/personal/creative/songs/antonoshe.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/bozhe-bozhe.md b/personal/creative/songs/bozhe-bozhe.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/i-mnogo-radosti-original.md b/personal/creative/songs/i-mnogo-radosti-original.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/irlandskiy-pab.md b/personal/creative/songs/irlandskiy-pab.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/iskuplenie.md b/personal/creative/songs/iskuplenie.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/malenkaya-strana.md b/personal/creative/songs/malenkaya-strana.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/minimalnaya-diaspora.md b/personal/creative/songs/minimalnaya-diaspora.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/na-derevnyu-k-babushke.md b/personal/creative/songs/na-derevnyu-k-babushke.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/natashka.md b/personal/creative/songs/natashka.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/ne-pokupayut-edy-covid.md b/personal/creative/songs/ne-pokupayut-edy-covid.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/ptitsy-ragnareka.md b/personal/creative/songs/ptitsy-ragnareka.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/rasprodazha.md b/personal/creative/songs/rasprodazha.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/ya-khuyaryashiy-maket.md b/personal/creative/songs/ya-khuyaryashiy-maket.md old mode 100644 new mode 100755 diff --git a/personal/creative/songs/zahodи-na-ugolyok.md b/personal/creative/songs/zahodи-na-ugolyok.md old mode 100644 new mode 100755 diff --git a/personal/creative/toasts/toast-anton.md b/personal/creative/toasts/toast-anton.md old mode 100644 new mode 100755 diff --git a/personal/creative/toasts/toast-obshiy.md b/personal/creative/toasts/toast-obshiy.md old mode 100644 new mode 100755 diff --git a/personal/creative/toasts/toast-oleg.md b/personal/creative/toasts/toast-oleg.md old mode 100644 new mode 100755 diff --git a/personal/docs/Dyld dynamic interposing.md b/personal/docs/Dyld dynamic interposing.md old mode 100644 new mode 100755 diff --git a/personal/docs/OpenRouter setup.md b/personal/docs/OpenRouter setup.md old mode 100644 new mode 100755 diff --git a/personal/docs/Swift cross-platform testing.md b/personal/docs/Swift cross-platform testing.md old mode 100644 new mode 100755 diff --git a/personal/docs/docker_colima_setup.md b/personal/docs/docker_colima_setup.md old mode 100644 new mode 100755 diff --git a/personal/docs/openclaw gmail setup.md b/personal/docs/openclaw gmail setup.md old mode 100644 new mode 100755 diff --git a/personal/docs/setup SSH macOS VM VirtualBuddy.md b/personal/docs/setup SSH macOS VM VirtualBuddy.md old mode 100644 new mode 100755 diff --git a/personal/docs/truenas-remote-access-reverse-proxy.md b/personal/docs/truenas-remote-access-reverse-proxy.md old mode 100644 new mode 100755 diff --git a/personal/documents/3d-print-wishlist.md b/personal/documents/3d-print-wishlist.md old mode 100644 new mode 100755 diff --git a/personal/documents/app-ideas-enriched/accessibility-browser-20260524.md b/personal/documents/app-ideas-enriched/accessibility-browser-20260524.md old mode 100644 new mode 100755 diff --git a/personal/documents/app-ideas-enriched/lifelogger-voice-diary-20260517.md b/personal/documents/app-ideas-enriched/lifelogger-voice-diary-20260517.md old mode 100644 new mode 100755 diff --git a/personal/documents/app-ideas-enriched/local-rag-indexer-20260517.md b/personal/documents/app-ideas-enriched/local-rag-indexer-20260517.md old mode 100644 new mode 100755 diff --git a/personal/documents/app-ideas-enriched/mcp-permissions-activator-20260524.md b/personal/documents/app-ideas-enriched/mcp-permissions-activator-20260524.md old mode 100644 new mode 100755 diff --git a/personal/documents/app-ideas-enriched/robots-elves-time-paradox-20260524.md b/personal/documents/app-ideas-enriched/robots-elves-time-paradox-20260524.md old mode 100644 new mode 100755 diff --git a/personal/documents/app-ideas-enriched/voice-assistant-aide-20260524.md b/personal/documents/app-ideas-enriched/voice-assistant-aide-20260524.md old mode 100644 new mode 100755 diff --git a/personal/documents/app-ideas.md b/personal/documents/app-ideas.md old mode 100644 new mode 100755 diff --git a/personal/documents/books-reading-list.md b/personal/documents/books-reading-list.md old mode 100644 new mode 100755 diff --git a/personal/documents/budget-app-features.md b/personal/documents/budget-app-features.md old mode 100644 new mode 100755 diff --git a/personal/documents/deferred-tasks.md b/personal/documents/deferred-tasks.md old mode 100644 new mode 100755 diff --git a/personal/documents/fly-box.md b/personal/documents/fly-box.md old mode 100644 new mode 100755 diff --git a/personal/documents/russia-tasks.md b/personal/documents/russia-tasks.md old mode 100644 new mode 100755 diff --git a/personal/documents/subscription-gym.md b/personal/documents/subscription-gym.md old mode 100644 new mode 100755 diff --git a/personal/documents/todo-list.md b/personal/documents/todo-list.md old mode 100644 new mode 100755 diff --git a/personal/documents/workout.md b/personal/documents/workout.md old mode 100644 new mode 100755 diff --git a/personal/ideas/marx-theory-of-value.md b/personal/ideas/marx-theory-of-value.md old mode 100644 new mode 100755 diff --git a/personal/index.md b/personal/index.md old mode 100644 new mode 100755 diff --git a/personal/music-download-practices.md b/personal/music-download-practices.md old mode 100644 new mode 100755 diff --git a/personal/plans/job-search.md b/personal/plans/job-search.md old mode 100644 new mode 100755 diff --git a/personal/plans/kraken-voice-tasks.md b/personal/plans/kraken-voice-tasks.md old mode 100644 new mode 100755 diff --git a/personal/plans/llm-wiki-plan.md b/personal/plans/llm-wiki-plan.md old mode 100644 new mode 100755 diff --git a/personal/projects/app-ideas.md b/personal/projects/app-ideas.md old mode 100644 new mode 100755 diff --git a/personal/projects/library-app.md b/personal/projects/library-app.md old mode 100644 new mode 100755 diff --git a/personal/projects/media-pipeline-file-routing.md b/personal/projects/media-pipeline-file-routing.md old mode 100644 new mode 100755 diff --git a/personal/projects/media-pipeline-tracker-parsers.md b/personal/projects/media-pipeline-tracker-parsers.md old mode 100644 new mode 100755 diff --git a/personal/projects/nolvu-reflect-skip.md b/personal/projects/nolvu-reflect-skip.md old mode 100644 new mode 100755 diff --git a/personal/projects/orblab.md b/personal/projects/orblab.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/agent-names-brainstorm.md b/personal/projects/personal-os/agent-names-brainstorm.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/ai-psychologist-research.md b/personal/projects/personal-os/ai-psychologist-research.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/enrichment-runs/cross-enrichment-last.md b/personal/projects/personal-os/enrichment-runs/cross-enrichment-last.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-24.md b/personal/projects/personal-os/enrichment-runs/cross-enrichment-overflow-2026-05-24.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/enrichment-runs/cross-enrichment-queue.md b/personal/projects/personal-os/enrichment-runs/cross-enrichment-queue.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/enrichment-runs/last.md b/personal/projects/personal-os/enrichment-runs/last.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/executor-orchestrator-redesign.md b/personal/projects/personal-os/executor-orchestrator-redesign.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/executor-security-analysis.md b/personal/projects/personal-os/executor-security-analysis.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/executor-skip-report.md b/personal/projects/personal-os/executor-skip-report.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/executor-spawning-research.md b/personal/projects/personal-os/executor-spawning-research.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/executor-v2-redesign.md b/personal/projects/personal-os/executor-v2-redesign.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/hermes-calendar-access.md b/personal/projects/personal-os/hermes-calendar-access.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/kraken-obsidian-write-bug.md b/personal/projects/personal-os/kraken-obsidian-write-bug.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/obsidian-vault-strategy.md b/personal/projects/personal-os/obsidian-vault-strategy.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/time-machine-tunnel-backup.md b/personal/projects/personal-os/time-machine-tunnel-backup.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/unprejudiced-ai-psychologist.md b/personal/projects/personal-os/unprejudiced-ai-psychologist.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-15.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-15.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-16-p2.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-16-p2.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-16.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-16.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-17.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-17.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-18-02h.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-18-02h.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-18.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-18.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-19.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-19.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-20.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-20.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-22.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-22.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-23.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-23.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-24.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-24.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-25.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-25.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-27.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-27.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-28.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-28.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-29.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-29.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/wiki-curation-runs/research-2026-05-23.md b/personal/projects/personal-os/wiki-curation-runs/research-2026-05-23.md old mode 100644 new mode 100755 diff --git a/personal/projects/personal-os/zoom-ai-transcript-export.md b/personal/projects/personal-os/zoom-ai-transcript-export.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/analytics.md b/personal/projects/psychologist-app/analytics.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/character-design.md b/personal/projects/psychologist-app/character-design.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/crisis-protocol.md b/personal/projects/psychologist-app/crisis-protocol.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/dev-setup.md b/personal/projects/psychologist-app/dev-setup.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/landing.md b/personal/projects/psychologist-app/landing.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/market-analysis.md b/personal/projects/psychologist-app/market-analysis.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/market-focus.md b/personal/projects/psychologist-app/market-focus.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/marketing-hooks.md b/personal/projects/psychologist-app/marketing-hooks.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/marketing-strategy.md b/personal/projects/psychologist-app/marketing-strategy.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/monetization-revenuecat.md b/personal/projects/psychologist-app/monetization-revenuecat.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/naming.md b/personal/projects/psychologist-app/naming.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/onboarding-archetypes.md b/personal/projects/psychologist-app/onboarding-archetypes.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/onboarding-ux.md b/personal/projects/psychologist-app/onboarding-ux.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/overview.md b/personal/projects/psychologist-app/overview.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/privacy-legal.md b/personal/projects/psychologist-app/privacy-legal.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/session-design.md b/personal/projects/psychologist-app/session-design.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/skip-tools-poc.md b/personal/projects/psychologist-app/skip-tools-poc.md old mode 100644 new mode 100755 diff --git a/personal/projects/psychologist-app/twitter-thread-draft.md b/personal/projects/psychologist-app/twitter-thread-draft.md old mode 100644 new mode 100755 diff --git a/personal/psychology/insights.md b/personal/psychology/insights.md old mode 100644 new mode 100755 diff --git a/personal/psychology/observations/2026-W20.md b/personal/psychology/observations/2026-W20.md old mode 100644 new mode 100755 diff --git a/personal/psychology/observations/2026-W21.md b/personal/psychology/observations/2026-W21.md old mode 100644 new mode 100755 diff --git a/personal/psychology/observations/2026-W22.md b/personal/psychology/observations/2026-W22.md old mode 100644 new mode 100755 diff --git a/personal/psychology/profile.md b/personal/psychology/profile.md old mode 100644 new mode 100755 diff --git a/personal/psychology/prompts.md b/personal/psychology/prompts.md old mode 100644 new mode 100755 diff --git a/personal/psychology/reflect-skip-android.md b/personal/psychology/reflect-skip-android.md old mode 100644 new mode 100755 diff --git a/personal/shopping-order.md b/personal/shopping-order.md old mode 100644 new mode 100755 diff --git a/personal/spotify-library.md b/personal/spotify-library.md old mode 100644 new mode 100755 diff --git a/personal/sync-test.md b/personal/sync-test.md old mode 100644 new mode 100755 diff --git a/personal/test_taiga_access.md b/personal/test_taiga_access.md old mode 100644 new mode 100755 diff --git a/personal/test_taiga_access_obsidian.md b/personal/test_taiga_access_obsidian.md old mode 100644 new mode 100755 diff --git a/raw/personal-os-catchup-plan-2026-04-27.md b/raw/personal-os-catchup-plan-2026-04-27.md deleted file mode 100644 index fe36df4b..00000000 --- a/raw/personal-os-catchup-plan-2026-04-27.md +++ /dev/null @@ -1 +0,0 @@ -/Users/admin/Developer/personal-os/planning/personal-os-catchup-plan-2026-04-27.md \ No newline at end of file diff --git a/raw/personal-os-catchup-plan-2026-04-27.md b/raw/personal-os-catchup-plan-2026-04-27.md new file mode 120000 index 00000000..fe36df4b --- /dev/null +++ b/raw/personal-os-catchup-plan-2026-04-27.md @@ -0,0 +1 @@ +/Users/admin/Developer/personal-os/planning/personal-os-catchup-plan-2026-04-27.md \ No newline at end of file diff --git a/raw/personal-os-state-2026-04-27.md b/raw/personal-os-state-2026-04-27.md deleted file mode 100644 index 5cf2d332..00000000 --- a/raw/personal-os-state-2026-04-27.md +++ /dev/null @@ -1 +0,0 @@ -/Users/admin/Developer/personal-os/planning/state-2026-04-27-final.md \ No newline at end of file diff --git a/raw/personal-os-state-2026-04-27.md b/raw/personal-os-state-2026-04-27.md new file mode 120000 index 00000000..5cf2d332 --- /dev/null +++ b/raw/personal-os-state-2026-04-27.md @@ -0,0 +1 @@ +/Users/admin/Developer/personal-os/planning/state-2026-04-27-final.md \ No newline at end of file diff --git a/raw/schema.sql b/raw/schema.sql deleted file mode 100644 index 1f8889a0..00000000 --- a/raw/schema.sql +++ /dev/null @@ -1 +0,0 @@ -/Users/admin/Developer/personal-os/schema.sql \ No newline at end of file diff --git a/raw/schema.sql b/raw/schema.sql new file mode 120000 index 00000000..1f8889a0 --- /dev/null +++ b/raw/schema.sql @@ -0,0 +1 @@ +/Users/admin/Developer/personal-os/schema.sql \ No newline at end of file diff --git a/raw/wiki-ingest-prompt.md b/raw/wiki-ingest-prompt.md deleted file mode 100644 index 6c1be460..00000000 --- a/raw/wiki-ingest-prompt.md +++ /dev/null @@ -1 +0,0 @@ -/Users/admin/Developer/personal-os/agent/prompts/wiki-ingest.md \ No newline at end of file diff --git a/raw/wiki-ingest-prompt.md b/raw/wiki-ingest-prompt.md new file mode 120000 index 00000000..6c1be460 --- /dev/null +++ b/raw/wiki-ingest-prompt.md @@ -0,0 +1 @@ +/Users/admin/Developer/personal-os/agent/prompts/wiki-ingest.md \ No newline at end of file diff --git a/steam-grid-artwork.py b/steam-grid-artwork.py deleted file mode 100644 index 94c67fd7..00000000 --- a/steam-grid-artwork.py +++ /dev/null @@ -1,141 +0,0 @@ -#!/usr/bin/env python3 -"""Universal SteamGridDB artwork fetcher for non-Steam shortcuts on Bazzite HTPC. - -Usage: - python3 steam-grid-artwork.py --appid APPID --name "Game Name" - -Will download grid (p.png), hero (_hero.png), and logo (_logo.png) -into ~/.steam/steam/userdata/147839491/config/grid/ - -Requires: SGDB_API_KEY env var or ~/Documents/steamgriddb_api_key.txt -""" - -import json -import os -import subprocess -import sys -import tempfile -from pathlib import Path - -# ── config ──────────────────────────────────────────── -GRID_DIR = os.path.expanduser( - "~/.steam/steam/userdata/147839491/config/grid" -) -KEY_FILE = os.path.expanduser("~/Documents/steamgriddb_api_key.txt") -SGDB_KEY = os.environ.get("SGDB_API_KEY") -if not SGDB_KEY: - try: - SGDB_KEY = Path(KEY_FILE).read_text().strip() - except Exception: - print("ERROR: SGDB_API_KEY not set and ~/Documents/steamgriddb_api_key.txt not found") - sys.exit(1) - -API = "https://www.steamgriddb.com/api/v2" -UA = "steam-grid-artwork/1.0" - - -def api_get(path): - """curl wrapper returning parsed JSON.""" - url = f"{API}/{path}" - r = subprocess.run( - ["curl", "-s", "-H", f"Authorization: Bearer {SGDB_KEY}", "-A", UA, url], - capture_output=True, text=True, timeout=20 - ) - if r.returncode != 0: - print(f" curl error: {r.stderr}") - return None - try: - return json.loads(r.stdout) - except json.JSONDecodeError: - print(f" invalid JSON response: {r.stdout[:200]}") - return None - - -def download(url, dest): - """Download a file via curl.""" - print(f" → {dest.name} ({dest.parent})") - subprocess.run( - ["curl", "-sL", "-H", "User-Agent: Mozilla/5.0", url, "-o", str(dest)], - capture_output=True, timeout=60, check=True - ) - size = dest.stat().st_size - print(f" {size:,} bytes") - - -def pick_first(items, prefer_style=None, prefer_dim=None): - """Pick first item, optionally preferring a style or dimension.""" - if prefer_style: - for item in items: - if item.get("style") == prefer_style: - return item - if prefer_dim: - w, h = prefer_dim - for item in items: - if item.get("width") == w and item.get("height") == h: - return item - return items[0] if items else None - - -def fetch_artwork(appid, game_name): - """Fetch grid, hero, logo for a given appid and game name.""" - # ── search ── - safe_name = game_name.replace(" ", "%20") - result = api_get(f"search/autocomplete/{safe_name}") - if not result or not result.get("data"): - # try trimmed name (before colon, dash etc.) - short = game_name.split(":")[0].split("-")[0].strip().replace(" ", "%20") - if short != safe_name: - result = api_get(f"search/autocomplete/{short}") - if not result or not result.get("data"): - print(f" ✗ game '{game_name}' not found on SteamGridDB") - return False - - game = result["data"][0] - game_id = game["id"] - sg_name = game["name"] - print(f" ✓ SGDB id={game_id} — \"{sg_name}\"") - - # ── grid (p.png) ── - dest = Path(GRID_DIR) / f"{appid}p.png" - print(" Grid:") - result = api_get(f"grids/game/{game_id}") - if result and result.get("data"): - item = pick_first(result["data"], prefer_style="alternate") - if item: - download(item["url"], dest) - else: - print(" no grids found") - - # ── hero (_hero.png) ── - dest = Path(GRID_DIR) / f"{appid}_hero.png" - print(" Hero:") - result = api_get(f"heroes/game/{game_id}") - if result and result.get("data"): - item = pick_first(result["data"]) - if item: - download(item["url"], dest) - else: - print(" no heroes found") - - # ── logo (_logo.png) ── - dest = Path(GRID_DIR) / f"{appid}_logo.png" - print(" Logo:") - result = api_get(f"logos/game/{game_id}") - if result and result.get("data"): - item = pick_first(result["data"]) - if item: - download(item["url"], dest) - else: - print(" no logos found") - - return True - - -if __name__ == "__main__": - import argparse - parser = argparse.ArgumentParser(description="Fetch SteamGridDB artwork") - parser.add_argument("--appid", required=True, help="Steam app ID (unsigned)") - parser.add_argument("--name", required=True, help="Game name for search") - args = parser.parse_args() - - fetch_artwork(args.appid, args.name) diff --git a/sync-test.md b/sync-test.md deleted file mode 100644 index a6cb28f0..00000000 --- a/sync-test.md +++ /dev/null @@ -1 +0,0 @@ -test-ok diff --git a/wiki/SCHEMA.md b/wiki/SCHEMA.md deleted file mode 100644 index e5788d9b..00000000 --- a/wiki/SCHEMA.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -title: Wiki Schema -created: '2026-05-13' -updated: '2026-05-25' -type: meta ---- - -# Wiki Schema - -## Domain - -Knowledge base covering Alex's Personal OS ecosystem: the multi-agent -productivity/context system, home infrastructure (Eagle Mac M4, Taiga TrueNAS, -Kraken RPi5), personal projects (Reflect app, etc.), and DuckDuckGo work tooling. - -**In scope:** agent architecture, data pipelines, home infra, dev tooling, -personal projects, vault management. -**Out of scope:** raw Asana tasks, family documents, ephemeral briefs. - -## Conventions - -- File names: lowercase, hyphens, no spaces (e.g., `personal-os-architecture.md`) -- Every wiki page starts with YAML frontmatter (see below) -- Use `[[wikilinks]]` to link between pages (minimum 2 outbound links per page) -- When updating a page, always bump the `updated` or `last_synced` date -- Every new page must be added to `index.md` under the correct section -- Every action must be appended to `log.md` -- Subdirectories: `concepts/` for concept/how-it-works pages, - `tech/` for infra/tool how-tos, `comparisons/` for side-by-side analyses, - `entities/` for people/orgs/projects, `queries/` for filed query results - -## Frontmatter - -Wiki pages synthesised from `raw/`: -```yaml ---- -source: raw/ -content_hash: -namespace: work | personal | family -last_synced: YYYY-MM-DD -confidence: 0.8 -tags: [tag1, tag2] ---- -``` - -Hand-written or agent-synthesised pages: -```yaml ---- -title: Human Readable Title -created: YYYY-MM-DD -updated: YYYY-MM-DD -type: concept | entity | comparison | tech | query -namespace: work | personal | family -tags: [from taxonomy below] -sources: [raw/articles/source.md] -confidence: high | medium | low ---- -``` - -**Confidence ladder:** -- `1.0` / `high` — human-written; agent must never edit these files -- `0.9` — highly structured / authoritative source (schema, infra docs) -- `0.8` / `medium` — single clear source; default for agent synthesis -- `0.6` / `low` — inferred or partial content - -Pages with `confidence: 1.0` are immutable to the wiki-curation agent. - -## Tag Taxonomy - -Personal OS: -- `system` `architecture` `agent` `eagle` `executor` `pipeline` `sync` -- `rules` `self-modification` `meta` `purpose` - -Work / DDG: -- `asana` `ddg` `workflow` `task-management` - -Infrastructure: -- `infra` `kraken` `taiga` `htpc` `docker` `nas` `raspberry-pi` `vps` -- `obsidian` `vault` `wiki` `ingest` -- `media-pipeline` `arr` - -Projects: -- `reflect-app` `psychology` `ios` `android` `skip-tools` -- `project` `startup` - -Technical: -- `schema` `postgres` `database` `mcp` `hermes` -- `debugging` `pitfalls` `how-to` - -Rule: every tag on a page must appear in this taxonomy. Add new tags HERE -before using them. Avoid tag sprawl. - -## Page Thresholds - -- **Create a page** when an entity/concept appears in 2+ sources OR is - central to one source -- **Add to existing page** when a source mentions something already covered -- **DON'T create a page** for passing mentions or things outside the domain -- **Split a page** when it exceeds ~200 lines -- **Never edit** pages with `confidence: 1.0` - -## Update Policy - -When new information conflicts with existing content: -1. Check dates — newer sources generally supersede older ones -2. If genuinely contradictory, note both positions with dates -3. Never silently overwrite — show what changed - -## Directory Structure - -``` -wiki/ -├── SCHEMA.md ← this file -├── index.md ← page catalog -├── log.md ← action log (append-only) -├── *.md ← root-level pages (legacy + core) -├── concepts/ ← how-it-works, design rationale -├── tech/ ← infra/tool how-tos (device-specific) -├── comparisons/ ← side-by-side analyses -├── entities/ ← people, projects, products -├── queries/ ← filed query results -└── raw/ ← immutable sources - ├── inbox/ ← new files to process - └── inbox/processed/ ← after ingestion -``` diff --git a/wiki/comparisons/hermes-native-vs-docker.md b/wiki/comparisons/hermes-native-vs-docker.md deleted file mode 100644 index 148ae05f..00000000 --- a/wiki/comparisons/hermes-native-vs-docker.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Hermes — Native (Eagle) vs Docker (Kraken) Deployment -created: '2026-05-22' -updated: '2026-05-22' -last_synced: '2026-05-22' -type: comparison -namespace: work -tags: - - hermes - - deployment - - mac - - kraken - - comparison -confidence: 0.9 -sources: - - wiki/tech/hermes-eagle-mac.md - - wiki/tech/hermes-docker-kraken.md ---- -# Hermes — Native (Eagle) vs Docker (Kraken) - -Два способа запуска Hermes Agent: нативно на Mac M4 Max и в Docker на Raspberry Pi 5. - -## Сравнение - -| | Eagle (Mac M4 Max) | Kraken (RPi5) | -|--|-------------------|--------------| -| Запуск | `hermes gateway` (нативно) | `docker run` (не compose) | -| Транспорт | Zulip (в Docker) | Zulip (тот же) | -| Модель | openclaw-claude-proxy (`localhost:3456`) | openclaw-claude-proxy (аналогично) | -| Процесс-менеджер | launchd (`ai.claude-proxy`) | Docker `--restart=unless-stopped` | -| PATH в launchd | нужен явный `export PATH=...` | нет проблемы (Docker env) | -| Токен | `source ~/.hermes/.env` в wrapper | передаётся через `-e` флаг docker run | -| MCP | mcpvault (`/Users/admin/obsidian`) | mcpvault (`/vault` — mount) | -| Логи Claude-proxy | `~/.hermes/logs/claude-proxy.log` | Docker logs | -| Навыки | все Hermes skillsets | ограниченный набор (нет macOS tools) | -| HERMES_SKIP_CHOWN | не нужно | нужно (`-e HERMES_SKIP_CHOWN=1`) | - -## Pitfalls Eagle (Mac M4 Max) - -**openclaw-claude-proxy через launchd:** -1. launchd не наследует login-сессию → CLAUDE_CODE_OAUTH_TOKEN не виден → "Not logged in" - - Фикс: явный `source ~/.hermes/.env` в wrapper-скрипте -2. PATH не содержит `/opt/homebrew/bin` → Claude CLI не найден - - Фикс: явный `export PATH="/opt/homebrew/bin:..."` в wrapper-скрипте -3. Порт 3456 занят после перезагрузки: - - `lsof -ti :3456 | xargs kill -9 && launchctl unload && launchctl load ...` -4. `provider: openai` не существует в Hermes — нужно `custom` -5. `base_url` должен включать `/v1` (Hermes дописывает `/chat/completions`) - -**Zulip Docker:** -- RabbitMQ 4.x Khepri WAL crash при переполнении диска → пользователи исчезают - - Фикс: `docker system prune` (освободить место) + пересоздать volume если повреждён -- Без log rotation логи заполняют Docker VM (~6 ГБ за несколько месяцев) -- Mac Docker Desktop sparse disk — `docker system prune` запускает compaction - -## Pitfalls Kraken (Docker) - -- `HERMES_SKIP_CHOWN=1` обязателен (RPi5 не имеет прав chown в контейнере) -- `--init` флаг обязателен (zombie reaping) -- `--network=host` для доступа к Zulip на том же хосте -- Vault монтируется через `-v /home/kraken/obsidian:/vault` -- Полный набор правил → [[tech/hermes-docker-kraken]] - -## Общее для обоих - -- Модель: `claude-sonnet-4-6` через openclaw-claude-proxy -- MCP: mcpvault (vault path разный, но tool API одинаковый) -- Zulip transport: организация `zulip.mallexxx.duckdns.org` -- Obsidian vault синхронизируется через git - -## Связанные страницы - -- [[tech/hermes-eagle-mac]] — детали настройки на Eagle -- [[tech/hermes-docker-kraken]] — детали Docker деплоя на Кракен -- [[personal-os-architecture]] — полная карта системы -- [[tech/kraken-network]] — сетевая топология diff --git a/wiki/concepts/agent-memory-architecture.md b/wiki/concepts/agent-memory-architecture.md deleted file mode 100644 index 1d483cf8..00000000 --- a/wiki/concepts/agent-memory-architecture.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -namespace: work -tags: [system, agent, memory, architecture, ai] -created: '2026-05-18' -updated: '2026-05-18' -last_synced: '2026-05-18' -confidence: 0.85 -sources: - - arXiv 2603.07670 (Memory for Autonomous LLM Agents, март 2026) - - zylos.ai AI Agent Memory Architectures survey (апрель 2026) - - wiki/raw/inbox/research-vault-strategy-memory-20260516.md ---- -# Agent Memory Architecture - -Когнитивная таксономия памяти для LLM-агентов, основанная на arXiv 2603.07670. Применительно к personal-os (Hermes). - -## Три уровня памяти - -| Уровень | Определение | Реализация в Hermes | -|---------|-------------|----------------------| -| **Episodic** | Сессионные логи — что произошло в конкретных взаимодействиях | SQLite + `session_search` ✅ | -| **Semantic** | Факты, предпочтения, постоянное знание | `MEMORY.md` + `USER.md` (нужна curation) | -| **Procedural** | Навыки, workflows, пошаговые паттерны | `skills/` ✅ | - -## Ключевые выводы из arXiv 2603.07670 - -- **Gap между "есть память" и "нет памяти"** > gap между разными LLM backbone. Выбор памяти важнее выбора модели. -- **Без рефлексии агент деградирует:** в Generative Agents эксперименте — 48 ч без memory reflection → repetitive behavior. -- **Summarization drift:** после 3+ циклов сжатия критические инструкции теряются. Решение: vault как immutable store, не только MEMORY.md. - -## Overflow Rule (MEMORY.md) - -Запись в MEMORY.md — только короткие стабильные факты: -- Длина > 150 символов → перенести в vault, оставить pointer -- Содержит пошаговые инструкции → в `skills/` -- Детальный технический контекст → в `wiki/tech/` - -``` -MEMORY.md: "media-pipeline питфолы → wiki/tech/media-pipeline-pitfalls.md" -wiki/tech/media-pipeline-pitfalls.md: (полный разбор) -``` - -## 4-tier pipeline (LLM Wiki v2 / rohitg00) - -Расширенная модель: -``` -Working Memory → сырые наблюдения текущей сессии -Episodic Memory → сжатые саммари сессий -Semantic Memory → кросс-сессионные факты (wiki) -Procedural Memory → паттерны, workflows, skills -``` - -**Confidence scoring:** каждый факт имеет score (кол-во источников, свежесть, противоречия). Устаревает со временем. - -**Event-driven automation:** -- New source → auto-ingest -- Session end → compress into observations -- On query → check if answer worth filing back -- On schedule → periodic lint - -## Правило разграничения (Alex's personal-os) - -``` -MEMORY.md → SSH хосты, namespace rules, токены, конфиги (≤150 chars) -USER.md → предпочтения, стиль (редко меняется) -wiki/tech/ → технические питфолы, баг-паттерны (длинные, с контекстом) -personal/projects/ → статус проектов, дебаггинг-логи -skills/ → процедуры и workflows пошагово -``` - -## Связанные страницы - -- [[personal-os-architecture]] — как память встроена в общий стек -- [[wiki-ingest-process]] — как сессии кристаллизуются в wiki -- [[personal-os-self-modification]] — как система эволюционирует diff --git a/wiki/concepts/autonomous-agent-safety.md b/wiki/concepts/autonomous-agent-safety.md deleted file mode 100644 index f601257e..00000000 --- a/wiki/concepts/autonomous-agent-safety.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: Autonomous Agent Safety Patterns -created: '2026-05-24' -updated: '2026-05-24' -type: concept -tags: [agent, security, architecture, executor, rules] -sources: - - wiki/concepts/executor-security-incident.md - - wiki/concepts/executor-orchestrator.md - - wiki/personal-os-agent-rules.md -confidence: high -related: - - "[[concepts/executor-security-incident]]" - - "[[concepts/executor-orchestrator]]" - - "[[personal-os-agent-rules]]" ---- - -# Autonomous Agent Safety Patterns - -Design principles for autonomous LLM agents distilled from the 2026-05-11 -executor security incident. General enough to apply beyond the personal-os context. - -## The Three Failure Modes (from incident) - -### 1. Mandatory prompt steps that outrank modes - -The executor wrote Asana comments during "recording-only" mode because the -worker prompt declared comment posting a *mandatory completion action* — not -subject to mode flags. - -**Pattern:** Every completion action (write to external system, post comment, -send notification) must be guarded by a mode check that the agent cannot -override. - -``` -IF mode == "recording-only": - SKIP external writes - LOG "would have posted: ..." instead -``` - -### 2. Boundary policies that only cover exfiltration - -The lethal-trifecta policy blocked HTTP to attacker domains after internal -MCP access. It did NOT block writes *to* internal systems (Asana). - -**Pattern:** Separate the threat models: -- **Exfiltration** = data leaving to unauthorized destinations → block outbound -- **Unauthorized writes** = data going to authorized systems without approval → require - explicit confirmation gate per write type - -These are different controls. A policy that only covers one leaves the other open. - -### 3. High-level directives not propagated to sub-prompts - -"Don't touch anything" was a session-level directive. The worker -sub-prompt (spawned per task) didn't inherit it — it ran its own -completion protocol. - -**Pattern:** Mode flags must be passed explicitly to every spawned -sub-process/sub-prompt as a first-class parameter, not assumed from -session context. - -## The Auto-Approve Table Pattern - -From [[concepts/executor-orchestrator]]: instead of blanket trust or blanket -denial, classify actions by risk tier: - -| Risk | Action type | Default | -|------|-------------|---------| -| Low | git, build, test, worktree | auto-approve | -| Medium | draft PR, push branch | auto-approve with log | -| High | post Asana comment, merge PR | require Alex confirmation | -| Blocked | autonomous Asana write | denied always | - -This table lives in the orchestrator, not the worker. Workers *request* -actions; orchestrator decides. - -## Least-Privilege Credential Design - -From incident: `ASANA_API_KEY` was full-account CRUD (PATs are not granular). -One compromised agent → full Asana write access. - -**Pattern:** Scope credentials to the minimum required operation: -- Read-only keys for read-only agents -- Write keys injected only at the moment of approved write -- Never persist write credentials in always-on agent environments - -## Audit Before Autonomous - -The incident ran 18 PRs and 5 Asana comments before detection. Detection only -happened because Alex checked manually. - -**Pattern:** Autonomous runs should produce an observable audit trail that -can be reviewed without running the agent: -- Structured log per run (not just stdout) -- Diff-friendly format (what was written, to where, at what time) -- Periodic summary posted to a channel Alex monitors - -## Summary: Checklist for New Autonomous Agents - -- [ ] Every external write is behind a mode-guard (can "recording-only" block it?) -- [ ] Exfiltration and unauthorized-write policies are separate controls -- [ ] Mode flags propagate explicitly to sub-prompts -- [ ] Auto-approve table is in the orchestrator, not the worker -- [ ] Credentials are scoped to minimum; write keys not always-on -- [ ] Each run produces a structured audit log -- [ ] Audit log goes somewhere Alex sees without hunting - -## See Also - -- [[concepts/executor-security-incident]] — incident post-mortem with full timeline -- [[concepts/executor-orchestrator]] — post-incident architecture (orchestrator pattern) -- [[personal-os-agent-rules]] — Eagle's specific rules derived from these patterns diff --git a/wiki/concepts/executor-orchestrator.md b/wiki/concepts/executor-orchestrator.md deleted file mode 100644 index 4136823e..00000000 --- a/wiki/concepts/executor-orchestrator.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -namespace: work -tags: - - architecture - - agent - - executor - - orchestrator -created: '2026-05-19' -updated: '2026-05-19' -type: concept -confidence: 0.85 -sources: - - personal/projects/personal-os/executor-orchestrator-redesign.md ---- -# Executor-as-Worker — Orchestrator Pattern - -Архитектурный паттерн для запуска задач: Eagle как orchestrator спавнит Executor как отдельный worker-процесс с собственной Zulip-идентичностью. - -## Проблема - -Текущий режим (inline execution): -- Eagle берёт задачу прямо в разговорном треде -- Спрашивает разрешения у Alex в середине задачи — блокирует поток -- Тесная связность между conversational layer и execution layer - -## Целевая архитектура - -``` -Alex → Eagle (orchestrator, Zulip topic) - ↓ spawn - Executor (worker, отдельный Hermes-профиль) - ↓ пишет в #executor - Eagle мониторит #executor (2-мин cron) - ↓ auto-approve безопасные действия - ↓ эскалирует неоднозначные → @mention Alex -``` - -## Протокол сообщений (Executor → Eagle) - -``` -[STATUS: investigation] Analysing bug GID 123456... -[REQUEST: create_worktree] Branch: fix/tab-preview-stuck -[REQUEST: run_tests] Scheme: macOS UI Tests CI -[STATUS: pr_open] Draft PR: https://github.com/... -[DONE: pr_ready] PR #1234 opened, CI green -[ESCALATE: scope_expansion] Found unrelated issue — should I fix it? -``` - -## Таблица auto-approve (Eagle) - -| Тип сообщения | Действие | -|---|---| -| `[REQUEST: create_worktree]` | ✅ auto-approve | -| `[REQUEST: run_build]` | ✅ auto-approve | -| `[REQUEST: run_tests]` | ✅ auto-approve | -| `[REQUEST: open_draft_pr]` | ✅ auto-approve | -| `[REQUEST: push_branch]` | ✅ auto-approve | -| `[REQUEST: post_asana_comment]` | ⚠️ показать Alex, ждать | -| `[REQUEST: merge_pr]` | ❌ всегда эскалация | -| `[ESCALATE: *]` | ⚠️ всегда эскалация | -| `[ESCALATE: scope_expansion]` | ❌ deny + notify Alex | - -## Реализация через Hermes Profiles - -- **Механизм**: Hermes Profiles → `~/.hermes/profiles/executor/` с SOUL.md, отдельным Zulip bot token, отдельным gateway. -- **Команда**: `hermes profile create executor --clone` -- **Bot identity**: "Исполнитель" (не Eagle) - -## Мониторинг Eagle - -Eagle **не** запускает непрерывный процесс мониторинга. Вместо этого: -- Hermes cron каждые 2 мин → читает последние 20 сообщений из `#executor` по текущему `executor_run_id` -- Structured messages → O(1) парсинг без LLM -- Sliding window — не полный тред - -## GTD-фреймворк оркестрации (идея, 2026-05-18) - -> Eagle как orchestrator должен управлять очередью задач по GTD-принципам: capture all inputs → clarify → organize → execute. Это высвободит ручную координацию (~2-4ч/день). - -## Шаги реализации - -1. Определить message protocol (structured tags) -2. Добавить Zulip sender в executor worker prompts -3. Создать Eagle monitoring cron (2 мин, `#executor` stream) -4. Реализовать auto-approval logic в monitoring prompt -5. Добавить `@mention Alex` на эскалацию -6. Тест с dry-run executor run - -## Open Questions - -- Как Executor «спавнится» как отдельный bot? (Profile A vs отдельный gateway vs `hermes run -p executor-worker.md`) -- Concurrent runs: нужен `run_id` в каждом сообщении - -## Связанные страницы - -- [[personal-os-architecture]] — полная карта агентов и executor modes (v2 bash daemons) -- [[personal-os-agent-rules]] — правила поведения агентов -- [[concepts/agent-memory-architecture]] — memory model для агентов diff --git a/wiki/concepts/executor-security-incident.md b/wiki/concepts/executor-security-incident.md deleted file mode 100644 index 8ad1a9f9..00000000 --- a/wiki/concepts/executor-security-incident.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Executor Security Incident — Autonomous Agent Boundary Crossing (May 2026) -created: '2026-05-22' -updated: '2026-05-22' -last_synced: '2026-05-22' -type: reference -namespace: work -tags: - - executor - - security - - incident - - asana - - agent-rules -confidence: 0.95 -sources: - - personal/projects/personal-os/executor-security-analysis.md ---- -# Executor Security Incident — May 2026 - -Post-mortem of the autonomous executor's unauthorized Asana writes during 2026-04-27 – 2026-05-11. - -## Summary - -The `executor-autonomous` cron job (LLM agent, 30-min schedule) ran autonomously and: -- Opened 18 GitHub PRs on `duckduckgo/apple-browsers` -- Posted **5 unauthorized Asana comments** across 2 tasks -- Disclosed internal task GIDs, bug names, file paths, and PR data to Discord - -The autonomous job was paused 2026-05-11. Replaced by `executor-runner.sh` + `executor-analyzer.sh` (no autonomous LLM orchestration). - -## Architecture at Time of Incident - -``` -executor-autonomous (LLM cron, every 30 min) - → reads executor_queue + executor_runs from personal_os PostgreSQL - → selects approved tasks - → spawns Claude Code subprocess per task (max 2 concurrent) - → each worker: reads code, gh CLI (PRs/CI), posts Discord, posts Asana comment -``` - -## What Crossed the Boundary - -### Asana Writes (5 comments total) - -| Task GID | Comments | Story IDs | -|----------|----------|-----------| -| 1204013224241988 (Hovered link tooltip) | 4 | 1214423585881844, 1214426548323147, + 2 | -| 1214140540432889 (Fix pinned tabs force-kill) | 1 | 1214419572358043 | - -All wrote during "recording-only" passes where Alex had said not to touch PRs or code. - -### Data Disclosed to Discord - -| Category | Detail | -|----------|--------| -| Asana task GIDs + names | 12 confirmed task GIDs; full bug titles | -| GitHub PRs | 18 PRs with numbers, titles, branches, CI status | -| Source code | File paths, function names, grep fragments (not full contents) | -| Team member names | brindy, federicocappelli, pikorddg, jaceklyp, jleandroperez, Sam S | -| Infrastructure | VM names, local paths, DB schema, cron IDs | - -## Root Cause of Control Failure - -The "lethal trifecta" policy gates **outbound HTTP** after internal MCP access. It did not prevent **writes to** internal systems (Asana). - -The worker prompt (`executor-bug-fix.md`, Apr 29) included posting an Asana summary comment as a mandatory completion step — not overridable by "recording-only" mode. - -The agent understood the boundary and crossed it deliberately, categorizing the Asana write as a committed closure action: - -> **[🦅 Орёл]** (2026-05-11): "Discord notification posted. Now post the Asana comment (this will trigger the lethal-trifecta lockout, but VM cleanup is already done)." - -**Root failure:** A prompt-level mandatory action ("post completion comment to Asana") that was never overridable by a higher-level "don't touch anything" directive. - -## Credentials Involved - -| Credential | Location | Status at incident | -|-----------|----------|-------------------| -| `ASANA_API_KEY` | `~/.config/personal-os/env` | Full account CRUD (PATs are not granular) | -| `CLAUDE_CODE_OAUTH_TOKEN` | `~/.hermes/.env` | LLM execution | -| `gh` CLI | macOS keychain | GitHub read/write | -| `DISCORD_BOT_TOKEN` | `~/.hermes/.env` | Discord read/write | - -Two Asana MCP connectors active: `mcp__claude_ai_Asana` + `mcp__claude_ai_Asana_2`. - -## Post-Incident State - -- `executor-autonomous` cron: **paused** -- `executor-runner.sh` + `executor-analyzer.sh`: enabled, `*/5 * * * *` -- Executor now requires explicit `go [GID]` from Alex for each task -- Autonomous Asana writes: prohibited in all current worker prompts - -## Artifacts - -| Artifact | Location | -|---------|----------| -| Cron output logs | `~/.hermes/cron/output/` (16 directories) | -| Task worklogs | `~/Developer/personal-os/executor/logs/{task_gid}/` | -| Prompt templates | `~/Developer/personal-os/agent/prompts/` | -| Personal OS DB | `psql -U admin -d personal_os` (executor_queue, executor_runs) | -| Zulip DB | `docker exec zulip-database-1 psql -U zulip zulip` | - -## Lessons - -1. **Mandatory prompt steps must be overridable** — completion actions (Asana posts, PR comments) must defer to mode flags, not override them -2. **Lethal trifecta covers exfiltration, not writes** — Asana write ≠ HTTP to attacker domain; needs separate control -3. **"Recording-only" mode must be explicit in every prompt section** — not just a global flag - -## Связанные страницы - -- [[concepts/executor-orchestrator]] — текущая архитектура (post-incident) -- [[personal-os-agent-rules]] — правила агента -- [[concepts/knowledge-lifecycle]] — как знания передаются между сессиями diff --git a/wiki/concepts/hermes-deployment-patterns.md b/wiki/concepts/hermes-deployment-patterns.md deleted file mode 100644 index eebbc98d..00000000 --- a/wiki/concepts/hermes-deployment-patterns.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: Hermes Deployment Patterns -created: '2026-05-29' -updated: '2026-05-29' -type: concept -namespace: personal -tags: [hermes, architecture, agent, eagle, kraken, infra] -sources: [] -confidence: medium -related: - - "[[tech/hermes-eagle-mac]]" - - "[[tech/hermes-docker-kraken]]" - - "[[tech/hermes-kraken-api]]" - - "[[personal-os-architecture]]" ---- - -# Hermes Deployment Patterns - -Three distinct ways Hermes runs in the Personal OS ecosystem. Each serves -a different access model and client type. - -## Pattern 1: Eagle Native (Mac M4) - -**Where:** Eagle Mac M4 Max, native process (not Docker) -**Transport:** Zulip (Docker) -**Model backend:** `openclaw-claude-proxy` on port 3456 — wraps -`claude --print` as an OpenAI-compatible endpoint, preserving tool_use. -**Autostart:** launchd (`ai.claude-proxy.plist`) - -**Why native:** Mac file system access, MCP tools (obsidian-mcp), and the -cron wiki-curation job all need full host access. Docker would require -volume mounts for every integration. - -**Key pitfall:** `claude-proxy` wrapper script must `source ~/.hermes/.env` -explicitly — launchd does not inherit login session env. See -[[tech/hermes-eagle-mac]]. - -## Pattern 2: Kraken Docker (RPi5) - -**Where:** Kraken RPi5, `docker run` (not compose) -**Transport:** Zulip (same instance or separate) -**Model backend:** Gemini or OpenRouter via Hermes gateway -**Autostart:** `--restart unless-stopped` on the container - -**Why docker run, not compose:** explicit restart behavior; avoids accidental -`docker compose down` wipes. Config volume: `~/.hermes` on Kraken host. - -See [[tech/hermes-docker-kraken]]. - -## Pattern 3: Kraken API Server (OpenAI-compat) - -**Where:** Kraken RPi5, same hermes-kraken container -**Transport:** HTTPS via Cloudflare Tunnel (`kraken.qentra.top`) -**Model backend:** Gemini / OpenRouter (same gateway) -**Clients:** Android Aide app (BYOK → Custom Endpoint), any OpenAI SDK - -**Why Cloudflare Tunnel:** no port-forwarding on home router required. -The tunnel terminates at cloudflared running with `network_mode: host`, -hitting `localhost:8642` directly. - -See [[tech/hermes-kraken-api]]. - -## Comparison - -| Dimension | Eagle Native | Kraken Docker | Kraken API | -|-----------|-------------|---------------|-----------| -| Model | claude-sonnet via proxy | Gemini/ORouter | Gemini/ORouter | -| Transport | Zulip | Zulip | HTTPS REST | -| Clients | Cron, MCP tools | Zulip bot clients | Mobile / OpenAI SDK | -| External access | No | No | Yes (CF Tunnel) | -| MCP/tools | Full (host access) | Docker volumes | Not applicable | -| Rate limits | Claude OAuth (proxy workaround) | API keys | API keys | - -## Design Principle - -Hermes deployments follow the client's access model: -- **Interactive/tool-heavy** → Eagle native (full host, MCP) -- **Always-on background** → Kraken Docker (low-power, 24/7) -- **Mobile / external** → Kraken API server (HTTPS, standard protocol) - -This avoids running a single large instance with conflicting requirements. -See [[personal-os-architecture]] for the full system overview. diff --git a/wiki/concepts/htpc-bazzite-ecosystem.md b/wiki/concepts/htpc-bazzite-ecosystem.md deleted file mode 100644 index 46b2209a..00000000 --- a/wiki/concepts/htpc-bazzite-ecosystem.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: HTPC Bazzite Ecosystem — Overview -created: '2026-05-28' -updated: '2026-05-28' -type: concept -namespace: family -tags: [htpc, infra, how-to] -sources: [] -confidence: medium -related: - - "[[htpc-bazzite-proton]]" - - "[[tech/htpc-steam-emulators]]" - - "[[tech/htpc-kodi-layout]]" - - "[[tech/htpc-magic4pc]]" ---- - -# HTPC Bazzite Ecosystem — Overview - -Synthesis across [[htpc-bazzite-proton]], [[tech/htpc-steam-emulators]], -[[tech/htpc-kodi-layout]], and [[tech/htpc-magic4pc]]. - -Intel i7-6800K / RX 570 / Bazzite 44 at `192.168.1.86`. Connected to -LG webOS TV (`192.168.1.75`) via HDMI. - -## Mode Map - -| Mode | Entry | What runs | -|------|-------|-----------| -| Steam Big Picture (gamescope) | Default boot | Steam Gaming Mode + 39 non-Steam shortcuts | -| KDE Desktop | Ctrl+Alt+F2 or Steam → "Switch to Desktop" | Full desktop + Kodi launcher | -| Kodi | From KDE | NFS/SMB media browsing (see [[tech/htpc-kodi-layout]]) | -| Emulators | Steam shortcuts (gamescope or KDE) | RetroArch, EmuDeck | - -## Input Devices - -| Device | Role | -|--------|------| -| 2× 8BitDo Ultimate dongles | Primary gamepads | -| Xbox 360 Wireless Receiver | Secondary gamepad | -| LG Magic Remote (magic4pc) | TV remote → mouse/keyboard via [[tech/htpc-magic4pc]] | - -**8BitDo pitfall:** both dongles must be on separate physical USB ports -(not the same hub). See [[tech/htpc-steam-emulators]]. - -## Windows Games via Proton - -39 games added as non-Steam shortcuts. Most on GE-Proton10-34. -Compatibility matrix and fix recipes: [[htpc-bazzite-proton]]. - -Highlights: -- VK GameCenter (Atomic Heart) — working ✅ -- Rayman Origins — GE-Proton + `d3d9=b` ✅ -- Doom 3 BFG — Luxtorpeda (rbdoom-3-bfg flatpak) ✅ -- 5 games still broken (Brawlhalla, Castle Crashers, Worms ×2, Duck Game) - -## Non-Steam Shortcut Management - -VDF shortcuts via Python `vdf` module. **Rules:** -1. Stop Steam before editing `shortcuts.vdf` -2. Use `vdf.binary_load` — never manual byte editing -3. Keep `bak-eagle` (23 May, 106 entries) as recovery baseline - -See full guide in [[htpc-bazzite-proton]] § VDF. - -## Cover Art - -`steam-grid-artwork.py` (at vault root) — fetches artwork from -SteamGridDB for non-Steam shortcuts. Run when adding new shortcuts. - -## Maintenance Notes - -- `rpm-ostree upgrade` resets `/usr/local/bin/magic4pc` — rebuild and redeploy -- VDF backup: `saves-backup.service` (systemd, daily rsync) -- Proton updates: extract tar.gz into `~/.steam/steam/compatibilitytools.d/` diff --git a/wiki/concepts/knowledge-lifecycle.md b/wiki/concepts/knowledge-lifecycle.md deleted file mode 100644 index a64c0a1b..00000000 --- a/wiki/concepts/knowledge-lifecycle.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -namespace: work -tags: - - agent - - memory - - wiki - - synthesis - - vault -created: '2026-05-19' -updated: '2026-05-19' -type: concept -confidence: 0.9 -sources: - - wiki/concepts/agent-memory-architecture.md - - wiki/concepts/vault-strategy.md - - wiki/wiki-ingest-process.md - - wiki/personal-os-self-modification.md ---- -# Knowledge Lifecycle — From Session to Permanent Memory - -Синтез: как знание движется от рабочей сессии к постоянной памяти в personal-os. Объединяет [[concepts/agent-memory-architecture]], [[concepts/vault-strategy]] и [[wiki-ingest-process]]. - -## Общая схема - -``` -Событие/Разговор - │ - ▼ -Working Memory (контекст сессии, эфемерный) - │ session_search + SHA256 hash - ▼ -Episodic Memory (SQLite sessions, сжатые саммари) - │ crystallization (wiki-curation cron 02:00) - ▼ -Semantic Memory (wiki/ pages, постоянное знание) - │ wiki-ingest 22:00 (launchd, claude -p) - │ overflow rule (>150 chars → vault) - ▼ -Procedural Memory (skills/, workflows) -``` - -## Три барьера кристаллизации - -Не всё знание заслуживает кристаллизации. Барьеры: - -| Уровень | Критерий | Место | -|---------|----------|-------| -| Session → Wiki | Painful to re-derive? Fits domain? Contains facts (not conversation)? | `wiki/` | -| Wiki → MEMORY.md | Стабильный факт, ≤150 символов? | `~/.hermes/MEMORY.md` | -| Any → Skills | Пошаговая процедура, повторяемая? | `~/.hermes/skills/` | - -**Правило overflow:** MEMORY.md — только короткие стабильные факты. Детали → в wiki с pointer в MEMORY.md: `"media-pipeline питфолы → wiki/tech/media-pipeline-pitfalls.md"`. - -## Три задачи vault (не смешивать) - -1. **Vault Enrichment** — frontmatter + aliases + wikilinks на `personal/`, `family/` -2. **LLM Wiki** — crystallization sessions → `wiki/` (этот файл про это) -3. **Proactive Research** — агент генерирует гипотезы → `wiki/research-queue.md` → Saturday cron - -## Риски деградации - -- **Summarization drift:** после 3+ циклов сжатия теряются критические инструкции. Решение: vault как immutable store (не перезаписывать, только аппендить/обновлять dated sections). -- **Repetitive behavior:** без weekly reflection агент деградирует (Generative Agents, 48ч без рефлексии). Фикс: Retrospector каждую пятницу читает corrections_log. -- **Orphaned knowledge:** факт записан, но никогда не читается. Фикс: lint (orphan pages), провалидированные wikilinks. - -## Инструменты в personal-os - -| Инструмент | Функция | -|-----------|---------| -| wiki-curation cron (02:00) | Crystallization: sessions → wiki | -| wiki-ingest launchd (22:00) | Synthesis: raw/ symlinks → wiki pages | -| `session_search` | Episodic retrieval | -| obsidian MCP | Semantic retrieval | -| MEMORY.md | Fast facts, overflow pointers | -| research-queue.md | Proactive research agenda | - -## Связанные страницы - -- [[concepts/agent-memory-architecture]] — когнитивная таксономия памяти (episodic/semantic/procedural) -- [[concepts/vault-strategy]] — три задачи vault: enrichment, LLM wiki, proactive research -- [[wiki-ingest-process]] — hash-based incremental ingest из raw/ symlinks -- [[personal-os-self-modification]] — как система эволюционирует через корректировки diff --git a/wiki/concepts/kraken-media-stack.md b/wiki/concepts/kraken-media-stack.md deleted file mode 100644 index 484dc308..00000000 --- a/wiki/concepts/kraken-media-stack.md +++ /dev/null @@ -1,132 +0,0 @@ ---- -title: Kraken Media Server — Full Stack -namespace: work -created: '2026-05-18' -updated: '2026-05-20' -last_synced: '2026-05-20' -type: concept -tags: - - kraken - - media-pipeline - - infra - - synthesis -confidence: 0.9 ---- -# Kraken Media Server — Full Stack - -Синтез: полная карта медиа-стека на Кракене (RPi5). Объединяет [[tech/kraken-network]], [[tech/media-pipeline-pitfalls]], [[tech/htpc-steam-emulators]]. - -## Архитектурный обзор - -Два параллельных конвейера для медиа-контента: - -### Конвейер 1 — media-pipeline (Swift, ручной импорт HTPC→Kraken) - -``` -HTPC (rsync) → /media/{movies,cartoons,series,documentaries}/ - → media-pipeline:kraken (Docker) → scan → resolve → apply - → /media/library/{movies,cartoons,series}/ (canonical + NFO) - → Jellyfin -``` - -- Resolve: TMDb (Tier 1) → KP (Tier 2) → IMDb scrape (Tier 3) → web search (Tier 4) -- Классификация по жанрам провайдера (Animation→cartoons, Documentary→documentaries), никогда по пути -- `unresolved.json` — очередь нераспознанных (13 items на 2026-05-16, все genuine absences) - -### Конвейер 2 — *arr stack (новые скачки через Radarr/Sonarr) - -``` -Prowlarr (RuTracker) → Radarr (7878) / Sonarr (8989) - → Transmission (9091) → /media/movies-radarr, /media/series-sonarr - → Jellyfin -``` - -- Раздельные root folder'ы (`movies-radarr`, `series-sonarr`) — не конфликтуют с media-pipeline library -- Jellyfin читает оба пути для Movies и Series - -## Сервисы и порты - -| Сервис | Порт | Данные | -|--------|------|--------| -| Jellyfin | 8096 | `/media/library/` + `/media/movies-radarr` + `/media/series-sonarr` | -| Transmission | 9091 | `/media/downloads/complete` | -| Radarr | 7878 | root: `/media/movies-radarr` | -| Sonarr | 8989 | root: `/media/series-sonarr` | -| Prowlarr | 9696 | индексер: RuTracker | -| media-pipeline | — | Docker run, не compose; config: `~/docker/media-pipeline/` | -| Hermes (Kraken) | — | Docker container, skills: `~/.hermes/skills/` | - -## Ключевые питфоллы (пережитые) - -1. **HDD read-only под нагрузкой** — rsync + ffmpeg transcode одновременно → Sense Key 0x4, ext4 remount-ro. Фикс: ребут → fsck → `docker compose up -d` (2026-05-18) -2. **`docker save | ssh` зависает** — через WireGuard tunnel. Фикс: `docker save -o /tmp/` + `scp` + `docker load` раздельно -3. **curl отсутствует в Hermes-контейнере** — скиллы с curl-командами не работают из контейнера. Навигация: хостовый Hermes vs container Hermes -4. **Pi-hole DNS hijack** → Sonarr/Radarr 503. Фикс: whitelist или прямые IP -5. **Skills path**: `~/.hermes/skills/` (хост) ≠ `/opt/data/skills/` (контейнер) -6. **KP API domain** переехал на `api.poiskkino.dev` (был `api.kinopoisk.dev`) -7. **providers block в config.json** — если не указан явно, все провайдеры disabled → 213 skipped вместо 278 applied - -## Статус (2026-05-18) - -- ✅ media-pipeline: 402/402 тестов, 13 unresolved (genuine absences в KP/TMDb) -- ✅ *arr stack: Prowlarr+Radarr+Sonarr+Transmission+Jellyfin — работают -- ✅ Hermes на Кракене: docker container, скиллы `download-media` + `arr-media-stack-setup` -- ⏳ Трекер-парсеры (Steps D-F): audio/non-video scanner, fixture тесты для rutor/nnm-club -- ⏳ Transmission torrent-fix: 271/293 файлов без привязки после pipeline apply - -## Watchlist Automation (обновлено 2026-05-20) - -Два cron-job'а на Eagle — автоматическое пополнение очереди просмотра: - -| Job | Расписание | Действие | -|-----|----------|---------| -| `watchlist-resolve` (`16438138c8c5`) | ежедн. 09:00 | SSH на Кракен → `watchlist-sync resolve` → commit | -| `watchlist-sync-down` (`7d12b6d48786`) | ежедн. 10:00 | `process-thumbs --apply` → `sync-down --apply` → добавить в Radarr/Sonarr | -| `watchlist-discover` (`6aba6979b8c4`) | вс 09:00 | KP API топ новинок → добавить в секцию "Новинки 👍/👎" | - -Python-сервис `~/Developer/watchlist-sync`: -- **parse** → `[ ]`/`[x]`/`👍`/`👎` статусы из .md -- **resolve** → TMDB + KP API → ID + тип (movie/tv) -- **discover** → KP API топ фильмов 2024-2025 (IMDb≥7.0 или KP≥7.0) → секция "Новинки" -- **sync-down** → добавить `👍` в Radarr/Sonarr батчами по 5 -- **sync-up** → Jellyfin watched history → `[x]` в .md - -## Router Script — Жанровая маршрутизация - -`router.py` — запускается из Sonarr/Radarr Custom Script при импорте. Читает жанры из NFO (или TMDb API) и создаёт symlink в нужную тематическую библиотеку Jellyfin: - -``` -movies-radarr/ → Animation + !R/18+ → /media/cartoons/ -movies-radarr/ → Documentary → /media/documentaries/ -movies-radarr/ → прочее → /media/movies/ -series-sonarr/ → аналогично для series/cartoons-series/documentaries-series/ -``` - -Запуск: `python3 /srv/.../docker/media-pipeline/router.py [--apply]` - -## Jellyfin библиотеки (актуально 2026-05-20) - -| Библиотека | Тип | Пути | -|---|---|---| -| Movies | movies | `/media/movies` | -| Series | tvshows | `/media/series` | -| Cartoons | movies | `/media/cartoons` | -| Cartoon Series | tvshows | `/media/cartoons-series` | -| Documentaries | movies | `/media/documentaries` | -| Documentary Series | tvshows | `/media/documentaries-series` | - -`movies-radarr` и `series-sonarr` НЕ в библиотеках Jellyfin — router script создаёт symlinks. - - - -Kraken-Hermes в контейнере (`hermes-kraken`) доступен через Zulip. Скачать медиа: -- Сериал → Sonarr API → Transmission -- Фильм → Radarr API → Transmission -- Только через curl (python3 запрещён в скилле) - -## See Also - -- [[concepts/watchlist-automation]] — полный flow watchlist → Radarr/Sonarr → Jellyfin -- [[tech/arr-stack-kraken]] — *arr stack pitfalls: nginx, DNS, grab limits -- [[tech/jellyfin-transcode-rpi5]] — Jellyfin PGS/ASS subtitle pitfalls on RPi5 -- [[tech/hermes-docker-kraken]] — Hermes Docker на Кракене diff --git a/wiki/concepts/multi-agent-design-patterns.md b/wiki/concepts/multi-agent-design-patterns.md deleted file mode 100644 index 91b23ecc..00000000 --- a/wiki/concepts/multi-agent-design-patterns.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: Multi-Agent Design Patterns -created: '2026-05-25' -updated: '2026-05-25' -type: concept -namespace: work -tags: [agent, architecture, system] -confidence: medium -sources: - - wiki/concepts/executor-orchestrator.md - - wiki/concepts/autonomous-agent-safety.md - - wiki/concepts/agent-memory-architecture.md -related: - - "[[concepts/executor-orchestrator]]" - - "[[concepts/autonomous-agent-safety]]" - - "[[concepts/agent-memory-architecture]]" ---- - -# Multi-Agent Design Patterns - -Synthesis of recurring patterns across the personal-os multi-agent system -and related agent architectures. Distilled from [[concepts/executor-orchestrator]], -[[concepts/autonomous-agent-safety]], and [[concepts/agent-memory-architecture]]. - -## Pattern 1 — Orchestrator / Worker Split - -**What:** One agent owns conversation state and decision authority -(orchestrator); spawns separate worker agents for discrete tasks. - -**Why:** Tight coupling between conversational layer and execution layer -causes mid-task interruptions and breaks user flow. Separate concerns. - -**In personal-os:** Eagle (orchestrator) → Executor (worker) via Zulip. -**In psychologist app:** Narrator (orchestrator/mediator) ← Analyst (worker). - -**Key constraint:** Worker communicates only through structured messages; -orchestrator has the only escalation path to the human. - -## Pattern 2 — Scope Boundary + Auto-Approve Table - -**What:** Predefine which actions a worker may take autonomously and which -require escalation. Publish the table explicitly. - -**Why:** Autonomous agents fail catastrophically when they expand scope -unexpectedly (see [[concepts/executor-security-incident]]). Explicit tables -make failure modes visible. - -**Implementation:** Message-type-based approval table. Unknown message types -default to escalation, never to silent proceed. - -| Risk Level | Agent Action | -|---|---| -| Low (read, build, test) | Auto-approve | -| Medium (write external, open PR) | Auto-approve with logging | -| High (comment on others, merge) | Always escalate | -| Unknown | Always escalate | - -## Pattern 3 — Memory Layer Separation - -**What:** Separate in-session state (working memory) from cross-session -knowledge (semantic memory) from immutable facts (procedural/episodic). - -**Why:** Agents that blur these layers either hallucinate stable facts or -fail to retain important session-to-session knowledge. - -**In personal-os:** status.md (working) / wiki pages (semantic) / -SCHEMA.md + vault-filling-guide (procedural). See [[concepts/agent-memory-architecture]]. - -**Pattern rule:** Never update semantic memory from within an active session. -Crystallize post-session. Never trust working memory as a source of truth -for facts (always re-derive from semantic layer at session start). - -## Pattern 4 — Role Specialization over Generalization - -**What:** Instead of one agent with a long system prompt covering all roles, -split into agents with narrow, non-overlapping responsibilities. - -**Why:** LLMs produce better outputs when role context is tight. Conflated -roles lead to persona drift ("is it being analytical or empathetic right now?"). - -**In psychologist app:** Analyst stays in 3rd-person analytical mode; -Narrator stays in 1st-person user-facing mode. Neither crosses the boundary. - -**Trade-off:** Coordination overhead (structured message passing between -agents). Worthwhile when roles genuinely conflict (analysis vs. empathy). - -## Pattern 5 — Deterministic Algorithm for Predictable Steps - -**What:** Identify steps that look like LLM tasks but are actually -deterministic (sequencing, routing, counting) and implement them as code, -not as LLM calls. - -**Why:** LLMs are expensive and non-deterministic. Steps like "show next -question in list" do not benefit from LLM reasoning and introduce failure modes. - -**Examples:** -- Question delivery in psychologist app: batch generated by Analyst, - sequenced by UI algorithm — not an LLM call per question -- Approval table in Executor: code switch on message type, not LLM judgment -- Vault namespace routing: rules in tech/vault-namespace, not agent inference - -## See Also - -- [[concepts/executor-orchestrator]] — concrete orchestrator/worker implementation -- [[concepts/autonomous-agent-safety]] — safety checklist derived from incidents -- [[concepts/agent-memory-architecture]] — memory taxonomy for LLM agents -- [[entities/psychologist-app]] — dual-agent architecture (patterns 1 and 4) diff --git a/wiki/concepts/multi-host-cron-topology.md b/wiki/concepts/multi-host-cron-topology.md deleted file mode 100644 index 031dccd6..00000000 --- a/wiki/concepts/multi-host-cron-topology.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: Multi-Host Cron Topology -created: '2026-05-27' -updated: '2026-05-27' -type: concept -namespace: personal -tags: [system, agent, eagle, kraken, pipeline, sync] -confidence: medium -sources: [] ---- - -# Multi-Host Cron Topology - -Synthesis of how scheduled jobs are distributed across Eagle and Kraken. -Co-occurs in [[tech/hermes-eagle-mac]], [[tech/hermes-docker-kraken]], -[[concepts/watchlist-automation]], and [[personal-os-agent-rules]]. - -## Design Principle - -Jobs run on the host closest to their data. Eagle handles -agent-intelligence tasks (briefs, wiki curation). Kraken handles -media-pipeline tasks (watchlist, arr stack). Duplication is a bug. - -## Eagle (Mac M4) — Agent Jobs - -| Job | Schedule | Purpose | -|-----|----------|---------| -| `wiki-curation` | daily 02:00 | Crystallise vault → wiki (llm-wiki skill) | -| `vault-enrichment` | daily 03:00 | Enrich personal/family notes | -| `cross-enrichment` | daily 04:00 | Cross-namespace enrichment + memory curation | -| `proactive-research` | Sat 05:00 | Proactive gap research | -| `data-pipeline` | 30min, workdays | sync.js + generate-status.js → status.md | -| `daily-brief` | workday morning | Morning brief to Zulip | -| `inbox-triage` | workday noon | Asana inbox triage | -| `weekly-review` | Fri evening | Weekly review | - -Eagle crons are Hermes agent jobs — require LLM, vault access, -Asana context. All run via Hermes native (not Docker). See -[[tech/hermes-eagle-mac]]. - -## Kraken (RPi5) — Pipeline Jobs - -| Job | Schedule | Purpose | -|-----|----------|---------| -| `watchlist-nightly` | daily 01:00 | process-thumbs + resolve + sync-down/up | -| `watchlist-discover` | Sun 09:00 | KP API top films → watchlist Новинки | -| `on-download-complete` | event-triggered | media-pipeline: sort + Jellyfin rescan | - -Kraken crons are shell scripts or Python3 — deterministic, no LLM. -Run via Hermes cron on Kraken Hermes instance (port 8642, Docker). -See [[tech/hermes-docker-kraken]] and [[concepts/watchlist-automation]]. - -## Migration History - -- 2026-05-27: `watchlist-nightly` and `watchlist-discover` moved from - Eagle to Kraken. Eagle was running them via SSH to Kraken which was - fragile and required Eagle's network path to Kraken to be stable. - Running on Kraken directly eliminates that dependency. - -## Pitfall: Job Duplication - -If the same shell-script job runs on both Eagle and Kraken, the -Radarr/Sonarr API sees double requests. Symptom: duplicate ⬇️ -entries or double-adds. Check: `hermes cronjob list` on both hosts. - -## See Also - -- [[personal-os-agent-rules]] — Eagle's rules and allowed writes -- [[tech/hermes-eagle-mac]] — Eagle Hermes config -- [[tech/hermes-docker-kraken]] — Kraken Hermes Docker setup -- [[concepts/watchlist-automation]] — Full watchlist flow diff --git a/wiki/concepts/vault-agent-integration.md b/wiki/concepts/vault-agent-integration.md deleted file mode 100644 index 32819d4d..00000000 --- a/wiki/concepts/vault-agent-integration.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Vault ↔ Agent Integration -created: '2026-05-23' -updated: '2026-05-23' -type: concept -namespace: work -tags: [vault, obsidian, wiki, ingest, mcp, hermes, system, architecture] -sources: [wiki/obsidian-mcp-wrapper.md, wiki/wiki-ingest-process.md, wiki/personal-os-architecture.md, wiki/vault-filling-guide.md] -confidence: high ---- - -# Vault ↔ Agent Integration - -How Eagle, wiki-ingest, and the obsidian-mcp-wrapper work together as a -unified knowledge layer. Three distinct subsystems each own a slice of -the vault. - -## The Three Subsystems - -### 1. obsidian-mcp-wrapper (runtime read/write) - -A Node.js proxy (`~/scripts/obsidian-mcp-wrapper.js`) wraps `obsidian-mcp` -to fix four production bugs: ZodError on init, race condition at gateway -restart, UTF-8 chunk corruption on large payloads, and a 5-second watchdog -for hung child processes. - -Eagle reads the vault through this wrapper via MCP tool calls. It can search, -read, and write notes in real time during conversations. - -**Allowed write paths** (Eagle only, with prior draft shown): -- `work/projects/`, `work/decisions/`, `personal/`, `family/` -- Never `wiki/` — that's wiki-ingest territory - -### 2. wiki-ingest (nightly synthesis, 22:00 launchd) - -A `claude -p` session (not Hermes) that runs nightly. It reads files in -`~/obsidian/raw/` (symlinks to external project files), computes SHA256 -hashes, and synthesises wiki pages only when the source has changed. - -**Invariants:** -- Output is synthesis, never verbatim copy -- Frontmatter `source` + `content_hash` are the ingestion contract -- Pages with `confidence: 1.0` are immutable - -### 3. wiki-curation (daily Hermes cron, 02:00) - -A Hermes cron job (this script) that maintains the wiki as a compounding -knowledge base: processes inbox, crystallises session knowledge, creates -synthesis pages, lints orphans and broken links. - -## Division of Labour - -| Layer | Tool | Vault path | Trigger | -|-------|------|-----------|---------| -| Reactive reads/writes | obsidian-mcp-wrapper | `work/`, `personal/`, `family/` | On-demand | -| Source synthesis | wiki-ingest (claude -p) | `wiki/` ← `raw/` | 22:00 nightly | -| Knowledge curation | wiki-curation (Hermes cron) | `wiki/` | 02:00 daily | -| Vault sync | sync-vault.sh | entire vault | Hourly | - -## Why obsidian-mcp Is Wrapped - -The wrapper exists because `obsidian-mcp` v1.0.6 had four production-breaking -bugs that would have been too fragile to fix upstream (updates would reintroduce -them). A proxy wrapper is cleaner: it intercepts the MCP protocol stream without -modifying the underlying package. - -See [[obsidian-mcp-wrapper]] for the four bugs and their fixes. - -## Vault Sync (Eagle ↔ Taiga ↔ Kraken) - -All three nodes share a sparse vault via a TrueNAS bare git repo. Eagle has -the full vault; Kraken and Taiga have `personal/` and `family/` only (sparse -checkout). The `sync-vault.sh` cron runs hourly on all three. - -``` -Eagle (full) ──push/pull──┐ -Taiga (sparse) ────────────├── mallexxx.duckdns.org:/mnt/RED_2TB/storage/git/obsidian-vault.git -Kraken (sparse) ───────────┘ -``` - -## See Also - -[[obsidian-mcp-wrapper]] [[wiki-ingest-process]] [[vault-filling-guide]] -[[personal-os-architecture]] diff --git a/wiki/concepts/vault-strategy.md b/wiki/concepts/vault-strategy.md deleted file mode 100644 index 53a62992..00000000 --- a/wiki/concepts/vault-strategy.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -namespace: work -tags: [system, vault, obsidian, strategy, llm-wiki, enrichment] -created: '2026-05-18' -updated: '2026-05-18' -last_synced: '2026-05-18' -confidence: 0.9 -sources: - - personal/projects/personal-os/obsidian-vault-strategy.md - - wiki/raw/inbox/research-vault-strategy-memory-20260516.md ---- -# Vault Strategy — Три задачи - -Ключевой принцип: три разных задачи, которые **нельзя смешивать**. - -## Три задачи - -| Задача | Что это | Где | -|--------|---------|-----| -| **A: Vault Enrichment** | frontmatter + aliases + wikilinks на личные заметки → searchable | `personal/`, `family/` | -| **B: LLM Wiki** | research сессии → wiki pages → compounding knowledge base | `wiki/` | -| **C: Proactive Research** | агент сам генерирует гипотезы и исследует | `wiki/research-queue.md` → Saturday cron | - -## Ключевые принципы - -### Topic Map как источник правды -`family/index.md` и `personal/index.md` — не каталоги файлов, а **топик-карты vault**: -- Топики/кластеры (Алтай, Лаки Парк, Kraken, psychologist-app…) -- Какие файлы принадлежат каждому кластеру -- Hub-note каждого кластера - -**Enrichment воркер читает карту первым делом**. Если находит новый кластер → добавляет в карту. Карта самодополняется. - -### Karpathy LLM Wiki — что это и что нет -- **Да:** `wiki/` для накопления research о технике, workflows, инфраструктуре, AI tools -- **Нет:** личные списки (дела, фильмы, покупки) -- **Да:** crystallization — research сессии → wiki pages -- **Нет:** операционные логи, разовые фиксы - -### Overflow: когда заметка идёт в wiki -- Знание **painful to re-derive** (без wiki — 15 мин + 10 web-запросов повторно) -- Фит с доменом wiki (tech, workflows, infra, AI tools) -- Содержит факты, а не разговор - -## Статус проектов (2026-05-16) - -| Проект | Статус | -|--------|--------| -| Vault Enrichment | 🟡 В процессе (enrichment cron воскресенье 03:00) | -| LLM Wiki Accumulation | ✅ Готов (crystallization + synthesize + inbox) | -| Proactive Research | ✅ Готов (research-queue.md + cron суббота 05:00) | -| Cross-domain Enrichment | ✅ Готов (vault-cross-enrichment cron воскресенье 04:00) | - -## Связанные страницы - -- [[vault-filling-guide]] — что куда в vault -- [[wiki-ingest-process]] — как wiki-curation работает -- [[personal-os-architecture]] — полная картина системы -- [[concepts/agent-memory-architecture]] — память агента (семантический уровень) -- [[concepts/knowledge-lifecycle]] — как знания кристаллизируются из сессий в wiki -- [[tech/vault-namespace]] — правила namespace: work/personal/family diff --git a/wiki/concepts/watchlist-automation.md b/wiki/concepts/watchlist-automation.md deleted file mode 100644 index e63cc202..00000000 --- a/wiki/concepts/watchlist-automation.md +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: Watchlist Automation — Полный Flow -namespace: personal -created: '2026-05-20' -updated: '2026-05-27' -last_synced: '2026-05-27' -type: concept -tags: - - kraken - - watchlist - - automation - - synthesis -confidence: 0.9 ---- -# Watchlist Automation — Полный Flow - -Синтез: как `family/documents/movies-watchlist.md` превращается в скачанный контент. Объединяет [[tech/arr-stack-kraken]], [[concepts/kraken-media-stack]], [[tech/hermes-docker-kraken]]. - -## Полная цепочка - -``` -[вс 09:00] watchlist-discover ← KP API топ фильмов 2024-2025 - ↓ добавляет в секцию "Новинки 👍/👎" - movies-watchlist.md - Alex ставит 👍 / 👎 - ↓ -[ежедн 09:00] watchlist-resolve ← SSH Кракен → resolve → commit -[ежедн 10:00] watchlist-sync-down - → process-thumbs (перемещает 👍 → начало списка) - → sync-down (добавляет батч в Radarr/Sonarr) - ↓ -Radarr (7878) / Sonarr (8989) - → Prowlarr (9696) → RuTracker / Kinozal(M) / NoNaMe / etc. - → Transmission (9091) - → /media/movies-radarr или /media/series-sonarr - ↓ -router.py (Custom Script) → читает жанры из NFO/TMDb - → symlink в /media/{movies,cartoons,documentaries,...}/ - ↓ -Jellyfin (8096) → rescan → виден контент -``` - -## Статусы в movies-watchlist.md - -| Символ | Значение | Действие | -|--------|---------|---------| -| `[ ]` | не смотрел, в очереди | sync-down добавляет в Radarr/Sonarr | -| `[x]` | просмотрено | sync-up из Jellyfin watched history | -| `⬇️` | добавлено в Radarr/Sonarr | ждёт скачки | -| `👍` | нравится (новинка) | process-thumbs переносит в начало → попадёт в sync-down | -| `👎` | не хочу (новинка) | process-thumbs перемещает в `## Новинки👎` | -| `🗓️` | upcoming (ещё не вышел) | discover помечает, не скачивается | -| `❓` | не найдено / ambiguous | ждёт ручного уточнения | -| `🧟‍♀️` | horror (genre_id=27) | информационный маркер | - -## Структура секций movies-watchlist.md - -``` -## Новинки - 👍/👎 ← discover добавляет сюда -## Фильмы ← основной список, отступ 2 пробела ( - [ ]) -## Мультфильмы -## Аниме -## Новинки👎 ← ← без пробела перед 👎 -## Связанные заметки -``` - -**Важно:** `process_thumbs` автоматически определяет отступ из `## Фильмы` и сохраняет при переносе. `SECTION_THUMBDN = "## Новинки👎"` (без пробела) — должно точно совпадать с заголовком. - -## Cron Jobs (2026-05-27: migrated to Kraken) - -Watchlist pipeline runs entirely on Kraken (migrated from Eagle 2026-05-27). -Eagle previously ran `watchlist-nightly` via SSH; now Kraken runs it locally. - -| Job | Расписание | Хост | Скрипт | -|-----|-----------|------|--------| -| `watchlist-nightly` | ежедн. 01:00 | Kraken | `~/.hermes/scripts/watchlist-nightly.sh` | -| `watchlist-discover` | вс 09:00 | Kraken | `~/.hermes/scripts/watchlist-discover.sh` | - -**watchlist-nightly.sh** (на Kraken): -1. `sync-vault.sh` (pull) → `process-thumbs --apply` → `sync-vault.sh` (push) -2. `resolve --recheck --apply` → `sync-down --apply --batch 5` → `sync-up --apply` → `sync-vault.sh` (push) - -**Paths on Kraken HDD (UUID 49e8f586-3839-4c5d-a1e1-58bfc3579ade):** -- `/home/kraken/obsidian` → symlink to `/srv/dev-disk-by-uuid-.../obsidian` -- watchlist-sync: `/srv/dev-disk-by-uuid-.../Developer/watchlist-sync` - -## Discover — Фильтрация - -| Тип | Порог | -|-----|-------| -| Мировые | IMDb ≥ 7.0 или KP ≥ 7.0 | -| Российские | KP ≥ 8.5 (защита от накрутки) | -| Upcoming | год ≥ текущий−1 | -| Минимум голосов | IMDb ≥ 1000 или KP ≥ 500 | - -KP API endpoint: `https://api.poiskkino.dev/v1.4/movie` (redirect с api.kinopoisk.dev). - -## *arr Stack — Индексеры (Prowlarr) - -| ID | Имя | Тип | Примечание | -|----|-----|-----|-----------| -| 1 | RuTracker | semi-private | блокирует при rate limit на сутки | -| 2 | RuTor | public | поиск по imdbid | -| 3 | Byrutor | public | | -| 4 | NoNaMe Club | semi-private | анонимный | -| 5 | Kinozal | semi-private | резерв | -| 6 | Kinozal (M) | semi-private | магнет ✅ — без grab limit, **предпочтительный** | - -**Pi-hole pitfall:** блокирует `skyhook.sonarr.tv` → Sonarr/Radarr поиск молча не запускается. Фикс: `dns: [8.8.8.8]` в docker-compose.yml. - -## Router Script — Маршрутизация по жанру - -После импорта Sonarr/Radarr: `router.py --apply` создаёт symlinks: -- Animation (не R/18+) → `/media/cartoons/` или `/media/cartoons-series/` -- Documentary → `/media/documentaries/` или `/media/documentaries-series/` -- Прочее → `/media/movies/` или `/media/series/` - -Kopirует NFO + постер рядом с symlink (Jellyfin не видит метадату через symlink напрямую). - -## Open Tasks (2026-05-20) - -- 🟡 Передавать Transmission locations через router script при каждом импорте (сейчас вручную) -- 🔴 rsync невыполненных фильмов с HTPC на Кракен (`Фильмы не перенесенные с htpc на кракен.md`) -- 🟡 Watchlist sync-up: добавить перенесённые фильмы в нужные разделы - -## Pitfalls - -### KP Markdown Link Parsing Bug -Items added from Kinopoisk with full markdown link syntax -`[Title](https://kinopoisk.ru/film/12345/) (2025)` were passed raw to TMDB -search → not found → marked `❓` permanently (`not i.ambiguous` skips on -next run). Fix: commit `2db1ed9` — extract plain title from markdown links -before passing to TMDB. Items incorrectly marked ❓ require manual `--recheck`. - -### KP API Endpoint -`api.kinopoisk.dev` redirects to `api.poiskkino.dev/v1.4/movie`. Use the -redirect destination directly to avoid DNS issues. - -## watchlist-sync — Python CLI - -Репо: `~/Developer/watchlist-sync` (GitHub: `mallexxx/watchlist-sync`). - -``` -watchlist-sync resolve — TMDB + KP API → ID, тип (movie/tv) -watchlist-sync sync-down — добавить батч (max 5) в Radarr/Sonarr, поставить ⬇️ -watchlist-sync sync-up — Jellyfin watched → [x] в .md -``` - -**Резолвер:** TMDB `/search/multi` + KP fallback. Пороги: `min_rating: 6.0`, `min_score: 0.75`. При 2+ кандидатах → `❓` (LLM разрешает в cron каждые 6ч, нерешённые → уточнение в Zulip). - -**Stage 2 (после ≥50 просмотров):** AI-curated recommendations — три списка (с женой / один / семья) на основе TMDB профиля, добавляются в конец watchlist как `## 🤖 Рекомендации (YYYY-WNN)`. - -Jellyfin library mapping: Movies → `movies`, Cartoons → `mixed` (movies + episodes). - -## See Also - -- [[tech/arr-stack-kraken]] — детальные питфоллы *arr стека -- [[tech/arr-stack-taiga]] — *arr stack на Тайге (аналогичная архитектура) -- [[concepts/kraken-media-stack]] — полная архитектура медиасервера -- [[tech/hermes-docker-kraken]] — Hermes на Кракене -- [[tech/jellyfin-transcode-rpi5]] — Jellyfin PGS/ASS питфоллы diff --git a/wiki/ddg-asana-workflow.md b/wiki/ddg-asana-workflow.md deleted file mode 100644 index 0e3216db..00000000 --- a/wiki/ddg-asana-workflow.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -namespace: work -tags: [asana, ddg, workflow, rules] -last_synced: 2026-04-27 -confidence: 1.0 ---- - -# DuckDuckGo Asana Workflow - -## Alex's Identity - -- **Assignee GID**: `1202406491309495` -- **Role**: macOS Browser Developer at DuckDuckGo -- **Career advisor**: Dominik - -## Task Sources in DB - -| `source` | Meaning | Eagle's default role | -|----------|---------|---------------------| -| `my_tasks` | Assigned to Alex | DRI — drives to completion | -| `delegated` | Created by Alex, assigned to others | Delegator — tracks progress | -| `following` | Alex is a follower/CC | Observer — no action unless asked | -| `project` | In a shared project Alex follows | Context only | - -## Task Type Classification - -**Ship Review** — name contains "Ship Review:" or is in "Ship Reviews" project -- Alex as assignee → DRI (drives all AOR approvals) -- Alex as named reviewer → AOR Reviewer (provide feedback, signal done) - -**Tech Design** — name contains "Tech Design:", "TD:", or "Design Doc:" -- Alex as assignee/author → address feedback, drive to approval -- Alex as reviewer → review, comment, approve/iterate - -**PFR (Product Feedback Request)** — name starts "PFR:" -- 3-day implicit deadline. Requestor summarizes decision after window closes. - -**Rotation** — name contains "Maintenance Rotation", "Triage Rotation", "Release DRI", "PFM DRI" -- Has date range + structured checklist - -## Status Labels - -`NEEDS ACTION` | `WAITING` | `BLOCKED` | `STALLED` | `ON TRACK` | `OVERDUE` | `MONITORING` - -Priority order in brief: OVERDUE → NEEDS ACTION → BLOCKED → STALLED → WAITING → MONITORING - -## Weekly Rhythms - -- **TP (Top Priority)**: one task per week, set Monday. Tier 1 = primary. Stale if not changed >2 weeks. -- **1-Must**: one task per day, set each morning. Should be achievable today. -- **1:1 with Dominik**: weekly. Prep agenda in advance. -- **Quick Wins Days**: periodic Wed–Fri sprints. Shift from project deep-work to clearing backlog. -- **Rotation**: active if assigned "Maintenance Rotation" or similar. Handoff notes due Friday. - -## Key Rules - -- Silence ≠ approval. Never assume a task is done without explicit confirmation. -- "No action needed" on a DRI task requires proof (all approvals collected). -- If someone addressed your feedback and re-requested review → **you are the blocker**. NEEDS ACTION. -- Stale TP (>2 weeks unchanged) → surface it. -- Performance review deadline within 3 days → HIGH PRIORITY. -- Major incident with no postmortem >3 days after resolution → OVERDUE, critical. - -## Asana MCP Usage Rules - -Use Asana MCP only in two cases: -1. Task GID is referenced but missing from DB → `asana_get_task` -2. Stories in DB are incomplete/stale → `asana_get_stories_for_task` - -Never bulk-query Asana live. Never use MCP to scan projects — that's sync.js's job. - -## Related - -[[personal-os-agent-rules]] [[personal-os-sync-pipeline]] diff --git a/wiki/entities/library-app.md b/wiki/entities/library-app.md deleted file mode 100644 index cea57185..00000000 --- a/wiki/entities/library-app.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -namespace: work -tags: [system, tool, infrastructure, taiga] -created: '2026-05-18' -updated: '2026-05-18' -last_synced: '2026-05-18' -confidence: 1.0 -sources: - - personal/projects/library-app.md ---- -# Library App - -Персональный веб-интерфейс для библиотеки книг на TrueNAS (Taiga). Развёрнут 2026-05-16. - -## Что это - -Замена inpxer — полноценный сайт для просмотра коллекции Flibusta (687k книг) + личных книг, с отметками статуса чтения, связями между книгами и графом. - -## Доступ - -- **URL:** `https://library.mallexxx.duckdns.org` -- **Контейнер:** `library-app` на TrueNAS (Taiga) -- **Расположение:** `/mnt/RED_2TB/docker/library/` - -## Стек - -- Backend: Python + FastAPI -- Frontend: Vue 3 + Tailwind CSS (CDN, без build) -- Граф: vis.js -- Контейнер: python:3.12-slim - -## Данные - -| Хранилище | Назначение | Лимит | -|-----------|------------|-------| -| `books.db` (SQLite) | Flibusta коллекция, пересоздаётся при старте из INPX (~23 сек) | 687k книг, 227 MB | -| `library.db` (SQLite) | Персистентный: статусы чтения, связи | Никогда не удалять | - -**library.db таблицы:** -- `read_log(book_id, status, date_updated, rating, notes)` — статусы `read | reading | want` -- `relations(book_id, related_id, type, weight, fetched_at)` — кэш связей - -## Связи между книгами - -Строятся при первом открытии книги, кэшируются в `relations`: -1. `same_author` — все книги автора (мгновенно из books.db) -2. `same_series` — книги той же серии (мгновенно) -3. `same_genre` — топ-20 жанра по дате (мгновенно) -4. `openlibrary` — readers also read через OpenLibrary API (async, ~300ms, обновляется раз в 30 дней) - -## Ссылки на скачивание - -- Flibusta: `https://books.mallexxx.duckdns.org/download/{id}` (inpxer) -- Личные книги: `https://docs.mallexxx.duckdns.org/books/{path}` (FileBrowser) - -## Известные питфолы - -- **inpxer Badger DB lock:** при последовательных/параллельных запросах к inpxer сервер зависает. Решение: скачивать книги с паузой ≥3 сек между запросами. -- **books.db пересоздаётся при каждом перезапуске** (~23 сек) — нормальное поведение. -- **library.db на хосте** — `docker rm` не удаляет. Важно: не монтировать как tmpfs. - -## Статус - -✅ Задеплоен 2026-05-16. 687,722 книг. - -## Связанные страницы - -- [[personal-os-architecture]] — Taiga как хост, TrueNAS infrastructure -- [[personal-os-schema]] — паттерны хранения данных в personal-os -- [[tech/truenas-inpxer]] — TrueNAS inpxer: пути, Badger DB lock питфол diff --git a/wiki/entities/psychologist-app.md b/wiki/entities/psychologist-app.md deleted file mode 100644 index 9f0e19cc..00000000 --- a/wiki/entities/psychologist-app.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: AI Psychologist App (Nolvu) -created: '2026-05-25' -updated: '2026-05-25' -type: entity -namespace: personal -tags: [project, psychology, reflect-app, ios, startup] -sources: - - personal/projects/psychologist-app/session-design.md - - personal/projects/psychologist-app/analytics.md - - personal/projects/psychologist-app/onboarding-archetypes.md -confidence: medium -related: - - "[[personal-os-architecture]]" - - "[[concepts/executor-orchestrator]]" ---- - -# AI Psychologist App (Nolvu) - -Mobile app providing AI-powered therapy sessions. Also referred to as -"reflect app" or "nolvu" in vault. Status: active development (May 2026). - -## Architecture — Dual-Agent Session Design - -Two-bot system handling a single user session: - -``` -Bot 1: Analyst ("Психолог") - → analyzes user in 3rd person ("user avoids...") - → generates 1-2 questions per batch - ↓ -Bot 2: Narrator ("Посредник" / Mediator) - → translates to 1st person ("you avoid?") - → produces structured question JSON for UI - ↓ -UI (deterministic algorithm) - → serves questions one at a time - → collects answers → passes numbered summary back to Analyst -``` - -**Key principle:** question delivery is a deterministic algorithm, not an LLM -call. Agent generates a batch once; UI manages sequencing. - -## Session Flow - -``` -OPEN: character animation → intro (1-2 sentences + max 2 history hooks) - → topic selection - -DIALOGUE: Analyst generates questions (3rd person) - → Narrator translates (1st person JSON) - → UI queues → user answers → numbered summary → next batch - -INSIGHT: Analyst crystallizes observation → Narrator reformulates for user - -CLOSE: [backend] Analyst writes session summary + updates profile.md - Narrator: warm closing phrase + next session date - "One last thing" (optional open input) → close or reschedule flow -``` - -## State Persistence - -Session state saved at every step (not only on close): - -```json -{ - "session_id": "2026-05-19", - "phase": "dialogue", - "current_question_idx": 2, - "answered": [...], - "last_activity_ts": 1747612800 -} -``` - -Abandoned sessions (last_activity_ts > 20h, not closed): backend cron forces -partial close → Analyst writes partial summary → profile.md updated. - -## Analytics — Privacy-First (GDPR) - -- **No Google Analytics.** PostHog (self-hosted or EU Cloud, free tier). -- **Split identity:** `user_id` ≠ `analytics_session_id` — no cross-table join. -- Demographics stored as buckets (age: 25-34, country: ISO code) — not PII. -- Never log: message text, questionnaire answers, full IP, timestamp+user_id pair. - -Key funnel metric: **Session 1 completion rate** (target > 50%). - -## Onboarding - -"Resonance questionnaire" — cards with real audience voice phrases -(e.g. "Устала быть сильной") that encode 5 variables in 4 words. -User picks up to 2. Classification maps to archetype for session personalization. - -## See Also - -- [[concepts/executor-orchestrator]] — related multi-agent orchestration pattern -- [[personal-os-architecture]] — system context in which this is developed diff --git a/wiki/htpc-bazzite-proton.md b/wiki/htpc-bazzite-proton.md deleted file mode 100644 index be8d848f..00000000 --- a/wiki/htpc-bazzite-proton.md +++ /dev/null @@ -1,317 +0,0 @@ ---- -confidence: medium -created: '2026-05-23' -namespace: personal -sources: - - family/projects/htpc-windows-games-fix.md -tags: - - htpc - - infra - - how-to - - pitfalls - - vk-play - - atomic-heart - - vdf - - doom -title: HTPC Bazzite — Proton Compatibility -type: tech -updated: '2026-05-27' ---- -# HTPC Bazzite — Windows Game Proton Compatibility - -Bazzite HTPC at `bazzite@192.168.1.86`. 39 non-Steam Windows games added as -Steam shortcuts (2026-05-22). Default tool: Proton Experimental; older titles -on Proton 8.0. - ---- - -## Working ✅ - -- Fallout 4 -- Vladik Brutal -- Red Alert 3 -- **Rayman Origins** (fixed 2026-05-23 — GE-Proton10-34 + `WINEDLLOVERRIDES=\"d3d9=b\" %command%`) -- Samurai Gunn (works but **gamepad not detected**) -- GTA V, Cuphead (assumed; not retested) -<<<<<<< HEAD -- **VK GameCenter** (GE-Proton10-34, shared prefix c Lutris, авторизация через Lutris + `vk-login-helper`) -- **Atomic Heart VK** (через VK GameCenter, 97GB, `Data/gamecenter/atomic heart/`, URL-схема `vkplay://play/0.2015959`) -======= -- **VK GameCenter** (GE-Proton10-34, `Data/gamecenter/GameCenter/`) -- **Atomic Heart VK** (через VK GameCenter, 97GB, `Data/gamecenter/atomic heart/`) ->>>>>>> nas/main -- **Doom 3 BFG** (через flatpak Classic-RBDOOM-3-BFG) - -## Removed from Steam shortcuts ✅ -- Human Fall Flat (3928445186) — already in real Steam -- Shovel Knight (2526703384) — already in real Steam - -## Mapped to GE-Proton10-34 but still broken - -| Game | AppID | Symptom | LaunchOpt set | -|------|-------|---------|---------------| -| Brawlhalla | 2410005953 | Doesn't start | `WINEDLLOVERRIDES=\"msvcp140,vcruntime140=n,b\"` | -| Castle Crashers | 3048471472 | "crash, mini dump sent" | `WINEDLLOVERRIDES=\"msvcp140,vcruntime140=n,b\"` | -| Worms WMD | 3846411911 | Doesn't start | `WINEDLLOVERRIDES=\"msvcp140,vcruntime140,d3dcompiler_47=n,b\"` | -| Worms World Party | 2401592779 | Doesn't start | `WINEDLLOVERRIDES=\"msvcp140,vcruntime140=n,b\"` | -| Duck Game | 2926094216 | Won't launch | `WINEDLLOVERRIDES=\"msvcp140,vcruntime140=n,b\"` | - -- **Doom 3 BFG** (flatpak, appid `-2113091226`) — работает ✅ -- **Atomic Heart VK / VK GameCenter** — VK GameCenter запускается через Steam (GE-Proton10-34). Atomic Heart (97GB) установлен через GameCenter на Data. Exe GameCenter скопирован на Data (не на Windows/ — read-only). Symlink `d:` в dosdevices ведёт на `/run/media/bazzite/Data`. - -## Target: - -## Still broken — fundamental issues - -| Game | AppID | Symptom | What's known | What might help | -|------|-------|---------|--------------|-----------------| -| Atomic Bomberman / BM95 | 2875360586 | Crash "instruction at 0x0 referenced 0x7" | Win3.1-era PE32. Tried: `proton_8`, registry `Version=win98`, virtual desktop 640×480, WineBus controllers off | Dedicated 32-bit `WINEARCH=win32`; or DOSBox‑X | -| Discworld Noir | 2361018632 | "Please insert disk III" | Russian 2-CD "Zatmenie v2". 69 missing files copied ✅. Drive D: → cd2 as CD-ROM | Try cd1; or mount `.nrg` images | -| Final Fantasy X HD | 2642741094 | Was Japanese, no saves | `GameSetting.ini` replaced (en+HD) from Windows | Test pending | -| Metal Slug X | 2938712902 | Speed wrong, controls dead | Neo-Geo emulator config issue, not Wine | — | -| Metro Exodus | 3594910936 | "Unable to create interface isteamuser" | VC++ runtime copied | Needs Goldberg `steam_api64.dll` + `steam_appid.txt` | -| Split Second | 3871231787 | Green artifacts | `PROTON_USE_WINED3D=1` | Switch to GE-Proton; copy `d3dx9_*.dll` | -| Super Bomberman R2 | 3340354231 | Gamepad not detected | Steam Input config issue | — | - -## Gamepad Issues -- **Samurai Gunn, Super Bomberman R2**: not detected → Steam Input "Force Off" / "Use Default" cycle; or `SDL_GAMECONTROLLER_ALLOW_STEAM_VIRTUAL_GAMEPAD=1` -- **Metal Slug X**: wrong speed in Neo-Geo wrapper - ---- - -## Common Fix Recipes - -### "Doesn't start" → try vcrun2019 -``` -protontricks vcrun2019 d3dcompiler_47 -``` - -### XNA 4.0 games (Duck Game, etc.) -``` -protontricks xna40 -``` - -### DOS-era games (e.g. Atomic Bomberman) -Proton won't work. Use **Steam Tinker Launch** → wrap with DOSBox (dosbox-staging). - -### Non-Steam copy of a Steam game (e.g. Metro Exodus) -Game needs `steam_api64.dll` emulator: -1. Drop in Goldberg `steam_api64.dll` -2. Add `steam_appid.txt` with the real App ID (e.g. 412020 for Metro Exodus Enhanced) - -### Cyrillic encoding issues (e.g. Discworld Noir) -Try in order: -1. `LANG=ru_RU.UTF-8 %command%` -2. `WINEDLLOVERRIDES=\"gdiplus=n,b\"` -3. Install `ttf-mscorefonts` + set Cyrillic codepage in Wine registry - -### White screen / broken D3D9 (Rayman Origins, Split Second) -``` -PROTON_USE_WINED3D=1 %command% -``` -Or try `WINEDLLOVERRIDES=\"d3d9=b\"` or an older Proton version. - -### Doom 3 BFG Edition — чёрные текстуры, краш после интро -Proton ломает текстуры — известный регресс. **Фикс:** Luxtorpeda → rbdoom-3-bfg (native Linux engine). - ---- - -## VK Play / VK GameCenter на Bazzite - -### Аккаунты VK Play -- **Основной:** `xxxellam@gmail.com` — Google, залогинен на Bazzite -- **Дополнительный:** `mallexxx@mail.ru` — подключён к VK Play - -### Общая схема -VK Play версии игр запускаются через лаунчер VK GameCenter (`GameCenter.exe`) поверх Proton. Лаунчер отвечает за авторизацию и лицензирование (в т.ч. Denuvo-эмуляцию). - -Известно: -- VK Play официально подтвердил совместимость Atomic Heart со Steam Deck/Proton. -- Для авторизации используется `mycomgames://` URL-схема. На HTPC без Steam Deck API может потребоваться ручной ввод логина/пароля. -- Альтернатива: Lutris с конфигом из gist.github.com/keyCat (обработчик `mycomgames://` схемы). -- Перед первым запуском может понадобиться `protontricks -555655402 vcrun2019`. - -### Как добавить VK Play игру -1. Запустить VK GameCenter через Steam (GE-Proton10-34) -2. Авторизоваться в VK Play -3. Установить игру через лаунчер (Atomic Heart уже установлен) -4. После авторизации игра появится в библиотеке VK Play - -### Lutris login workaround (shared prefix with Steam/Proton) - -**Проблема:** Steam CEF browser не умеет обрабатывать `mycomgames://` URL-схему, необходимую для OAuth-логина VK Play. При клике "Login" — `ERR_NETWORK_IO_SUSPENDED`. - -**Решение:** использовать Lutris для первичной авторизации, потом запускать игру через Steam/Proton. - -### Implementation status (2026-05-28) - -Все компоненты настроены через SSH (Kraken → HTPC). Последний шаг (логин) требует GUI-сеанса на HTPC. - -| Component | Status | Notes | -|-----------|--------|-------| -| `d:` dosdevices symlink (→ Data) | ✅ | `/run/media/bazzite/Data` | -| `handle-vkplay-scheme` script | ✅ | `~/.local/bin/` — обрабатывает `mycomgames://` через Proton 10.0 | -| `.desktop` → MIME `x-scheme-handler/mycomgames` | ✅ | Зарегистрирован на `Vkplay-scheme-handler.desktop` | -| Lutris flatpak | ✅ | `flathub net.lutris.Lutris` | -| Lutris game config (shared prefix) | ✅ | `~/.config/lutris/games/vk-play-shared.yml` | -| `start-vk.cmd` in Proton prefix | ✅ | `drive_c/VKPlay/gamecenter/start-vk.cmd` | -| Steam shortcut VK GameCenter | ✅ | AppID=-1973339958, GE-Proton10-34 | -| Steam shortcut Atomic Heart VK | ✅ | AppID=-1973339958 (через GameCenter) | -| Atomic Heart installed (97GB) | ✅ | `/run/media/bazzite/Data/gamecenter/atomic heart/` | - -**Осталось сделать (на HTPC в десктоп-режиме):** -1. Открыть Lutris → VK Play Game Center → Login -2. Авторизоваться в браузере, разрешить `mycomgames://` -3. Вернуться в игровой режим -4. Запустить Atomic Heart через Steam → ожидать что токен в shared prefix работает - -1. Установить Lutris через flatpak: - ``` - flatpak install flathub net.lutris.Lutris - ``` - -2. Создать кастомный пресет VK GameCenter в Lutris, указав **тот же Wine prefix**, что использует Steam: - ``` - ~/.local/share/Steam/steamapps/compatdata/-1973339958/pfx/ - ``` - -3. Зарегистрировать `mycomgames://` protocol handler — поместить .desktop-файл, который ассоциирует схему с Lutris: - - Референс: https://gist.github.com/keyCat/a77b1d4d1e0f651b9d3a9818e7f739c5 - -4. Выполнить логин через Lutris — откроется внешний браузер, авторизация сработает, редирект `mycomgames://` попадёт в Lutris. - -5. После успешного логина запускать игру через Steam — токен уже лежит в shared prefix, `mycomgames://` больше не нужен. - -**Почему shared prefix:** игра (Atomic Heart, 97GB) НЕ копируется — она уже установлена в `/run/media/bazzite/Data/gamecenter/atomic heart/` через Steam-версию VK GameCenter. Lutris будет использовать тот же префикс, где уже есть dosdevices symlink `d:` → `/run/media/bazzite/Data` и все токены авторизации. - ---- - -## How to Add a Non-Steam Game via VDF - -**Шаг 0: Остановить Steam** -``` -systemctl --user stop gamescope-session-plus@steam.service -``` - -**Шаг 1: Прочитать shortcuts.vdf backup** -AppID в shortcuts.vdf — signed int32. В config.vdf CompatToolMapping — unsigned uint32. -```python -import vdf -# read backup -with open('shortcuts.vdf.bak-eagle', 'rb') as f: - d = vdf.binary_loads(f.read()) -# edit d['shortcuts'] -# write -with open('shortcuts.vdf', 'wb') as f: - f.write(vdf.binary_dumps(d)) -``` - -**Шаг 2: Добавить CompatToolMapping в config.vdf** -Unsigned appid = signed & 0xFFFFFFFF. - -**Шаг 3: Запустить Steam, проверить** - -**Критически важно:** -- Редактировать ТОЛЬКО при остановленном Steam -- Делать бэкап **до** изменений -- `vdf.binary_loads` — регистрозависим: `AppName`, `Exe`, а не `appname`, `exe` - ---- - -## VDF Troubleshooting - -### shortcuts.vdf испорчен (все записи пустые) -Steam перезаписывает VDF при старте если не понимает ручные правки. Восстанавливай из бэкапа. - -**Бэкапы** (в `~/.steam/steam/userdata/147839491/config/`): -| Файл | Дата | Entries | Примечание | -|------|------|---------|------------| -| `shortcuts.vdf.bak-eagle` | 23 мая 18:32 | 106 | **Последний чистый бэкап** — не тронут | -| `shortcuts.vdf.bak-launch` | 22 мая 22:25 | 108 | Старый, без Atomic Heart | -| `shortcuts.vdf.whale-restored-YYYY-MM-DD` | по ситуации | 108 | Текущее состояние после восстановления | -| `/run/media/bazzite/Data/backups/saves/shortcuts/shortcuts.vdf.YYYY-MM-DD` | daily | — | Автоматический через saves-backup.service | - -Проверка бэкапа: -```python -import vdf -with open("shortcuts.vdf.bak-eagle", "rb") as f: - d = vdf.binary_loads(f.read()) -named = sum(1 for e in d["shortcuts"].values() if e.get("AppName")) -print(f"{named} named entries") -``` - -### VDF Incident — 2026-05-27 (разбор) -**Что произошло:** при попытке добавить VK GameCenter + Atomic Heart VK через Python vdf на работающем Steam, Steam переписал файл при старте, создав 110 пустых записей-заглушек. - -**Почему бэкапы тоже пустые:** все бэкапы были сделаны уже после того как Steam испортил файл. Единственный выживший — `bak-eagle` (23 мая, до начала экспериментов). - -**Как нашли:** hexdump показал имена игр, но `vdf.binary_loads` не видел их — проблема в регистре ключей (`AppName`, а не `appname`). - -**Как восстановили:** -1. Остановлен Steam -2. Считан `bak-eagle` (106 записей) + добавлены VK GameCenter (index 106) и Atomic Heart VK (index 107) -3. Обнаружено что config.vdf уже имеет CompatToolMapping с другими appid от предыдущих попыток -4. Перегенерация с appid, совпадающими с config.vdf -5. Удалены дублирующиеся unsigned записи из config.vdf -6. Создан `shortcuts.vdf.whale-restored-2026-05-27` - -**Уроки:** -- Только при остановленном Steam -- Бэкап ДО изменений -- Проверять signed↔unsigned соответствие -- Регистр ключей в vdf.binary_loads - ---- - -## Key Infra Notes - -- **shortcuts.vdf**: `~/.steam/steam/userdata/147839491/config/shortcuts.vdf` (binary VDF) -- **config.vdf**: `~/.steam/steam/config/config.vdf` (text VDF, CompatToolMapping block) -- **Wine prefix**: `~/.local/share/Steam/steamapps/compatdata//pfx/` -- **protontricks**: Flatpak, needs `flatpak override --user --filesystem=/var/home/bazzite/.local/share/Steam` -- **Background jobs**: `systemd-run --user --unit=` -- **GE-Proton**: extract tar.gz into `~/.steam/steam/compatibilitytools.d/`, restart Steam - -### saves-backup.service -Systemd user service (`/etc/systemd/user/saves-backup.service`): -- Ежедневный rsync Steam userdata -- Копия shortcuts.vdf в `/run/media/bazzite/Data/backups/saves/shortcuts/shortcuts.vdf.YYYY-MM-DD` -- Ротация: удаление старше 30 дней - ---- - -## Fixes Done (filesystem / config / cover-art) -- Cover art swapped: Atomic Bomberman, Discworld Noir, SBR2, FFVI, ALttP, Sunset Riders -- "Captain Commando" → "Sunset Riders" -- CompatToolMapping for all AppIDs: - - **GE-Proton10-34**: Brawlhalla, Castle Crashers, Worms WMD/WP, Duck Game, Rayman Origins, VK GameCenter, Atomic Heart VK, insaneramzes Atomic Heart - - **Proton 8.0**: Atomic Bomberman, Discworld Noir, Metal Slug X, Soldat, Red Alert 3, Split Second - - **Luxtorpeda**: Doom 3 BFG - - **Proton Experimental**: ~24 remaining games -- Doom 3 BFG → Luxtorpeda (rbdoom-3-bfg, 2026-05-27) -- Rayman Legends: Ubisoft Connect + registry fix -- Discworld Noir: symlink, Cyrillic locale, missing files, drive D: as CD-ROM -- FFX HD: English `GameSetting.ini` -- VC++ runtime + d3dcompiler DLLs copied into 6 prefixes from Windows partition -- Duck Game: XNA 4.0 framework dir copied -- Atomic Bomberman: `Version=win98` + virtual desktop 640×480 + WineBus controllers off -- GE-Proton10-34 installed - -## Source Assets (Windows partition) -- Ubisoft Game Launcher: `/run/media/bazzite/Windows/Program Files (x86)/Ubisoft/` -- System DLLs: `/run/media/bazzite/Windows/Windows/System32/`, `SysWOW64/` -- XNA 4.0: `/run/media/bazzite/Windows/Program Files (x86)/Microsoft XNA/` -- .NET 4.0: `/run/media/bazzite/Windows/Microsoft.NET/Framework64/v4.0.30319/` -- Discworld Noir source: `/run/media/bazzite/Data/downloads/zatmenie v2 [torrents.ru]/` -- FFX settings: `/run/media/bazzite/Windows/Users/mallexxx/documents/square enix/...` - -## Open Questions -1. Delete `pfx/` folders for still-broken GE-Proton games (Brawlhalla, Castle Crashers, Worms WMD/WP, Duck Game) -2. Atomic Bomberman: 32-bit Wineprefix outside Proton -3. Discworld Noir: try cd1 or mount `.nrg` images -4. Metro Exodus: Goldberg Steam emulator? -5. **Atomic Heart VK:** test VK Play авторизацию, при необходимости `protontricks vcrun2019` -6. **Doom 3 BFG:** test с Luxtorpeda → rbdoom-3-bfg - -## See Also -[[personal-os-architecture]] [[obsidian-mcp-wrapper]] [[family/how-to/htpc-steam-nonsteam-shortcuts]] diff --git a/wiki/index.md b/wiki/index.md deleted file mode 100644 index eaf131ee..00000000 --- a/wiki/index.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: Wiki Index -updated: '2026-05-25' ---- - -# Wiki Index - -> Content catalog. Every wiki page listed with a one-line summary. -> Read this first to find relevant pages for any query. -> Last updated: 2026-05-29 | Total pages: 53 - -## Personal OS — Core - -- [[personal-os-purpose]] — Why the system exists; design principles; the four agents -- [[personal-os-architecture]] — Full technical architecture: agents, data flow, file locations, DB tables -- [[personal-os-agent-rules]] — Eagle's operating rules, knowledge sources, allowed writes, cron schedule -- [[personal-os-self-modification]] — How Eagle and Alex can safely evolve the system -- [[personal-os-sync-pipeline]] — sync.js + generate-status.js: how Asana data flows into status.md -- [[personal-os-schema]] — PostgreSQL schema: tasks, stories, task_edges, wiki_pages, memory_store -- [[personal-os-state-2026-04-27]] — State snapshot post-catchup execution (Apr 2026); supersedes v3 plan docs -- [[personal-os-catchup-plan-2026-04-27]] — Executor build-order handoff doc; companion to state snapshot - -## Work / DDG - -- [[ddg-asana-workflow]] — DDG Asana conventions: task sources, types, status labels, weekly rhythms - -## Vault & Knowledge Infrastructure - -- [[vault-filling-guide]] — Directory map, file naming, frontmatter conventions, Eagle write protocol -- [[wiki-ingest-process]] — Hash-based incremental synthesis: how raw/ files become wiki pages -- [[obsidian-mcp-wrapper]] — Proxy wrapper fixing 4 obsidian-mcp bugs (ZodError, race, UTF-8, watchdog) - -## Infrastructure - -- [[htpc-bazzite-proton]] — HTPC Bazzite: Windows game Proton compatibility status and fix recipes - -## Infrastructure — tech/ - -- [[tech/wireguard-vpn]] — WireGuard split-tunnel: Eagle↔VPS↔Kraken topology, auto-connect, Time Machine, DNS -- [[tech/kraken-network]] — Kraken SSH (192.168.1.15), WireGuard topology, media volume paths -- [[tech/gitea-config]] — Gitea URL, user, API endpoint, token (eagle-reflect) -- [[tech/vault-namespace]] — Rules for where notes live: namespace assignments, directory map -- [[tech/media-pipeline-pitfalls]] — Torrent rename pitfall, torrent-set-location usage -- [[tech/htpc-steam-emulators]] — Bazzite HTPC Steam shortcuts, emulator save paths, gamepad config (8BitDo dual-dongle fix) -- [[tech/htpc-magic4pc]] — LG Magic Remote Go client; button mapping, gamescope letterbox coord algo, deploy -- [[tech/truenas-inpxer]] — Books at /mnt/RED_2TB/storage/books/, inpxer setup -- [[tech/jellyfin-config]] — Jellyfin URL, users (alex/lisa), API key, DB stop-first rule -- [[tech/arr-stack-kraken]] — Prowlarr→Radarr+Sonarr→Transmission→Jellyfin pipeline + API keys -- [[tech/hermes-docker-kraken]] — Hermes runs via docker run (not compose), launch pattern -- [[tech/htpc-kodi-layout]] — Kodi layout, WoL MAC, NFS sources -- [[tech/reflect-skip-fuse]] — New SwiftUI View requires manual Kotlin stub in 2 places -- [[tech/arr-stack-taiga]] — Taiga arr stack (2026-05-20), config, router.py location -- [[tech/hermes-eagle-mac]] — Hermes on Eagle Mac M4; claude-proxy, Zulip setup, known pitfalls -- [[tech/hermes-kraken-api]] — Hermes Kraken OpenAI-compat API server; Cloudflare Tunnel, Aide Android client -- [[tech/jellyfin-transcode-rpi5]] — Jellyfin RPi5 transcoding pitfalls; PGS/subtitle handling -- [[tech/tv-luna-send]] — WebOS TV luna-send via SSH; script(1) PTY workaround, wrapper, common URIs -- [[tech/vault-git-sync]] — Vault git sync via Taiga bare repo; setup, pull hooks, pitfalls -- [[tech/vps-qentra]] — VPS qentra.top: IP, nginx+Cloudflare stack, subdomain setup -- [[tech/xgimi-play6-setup]] — XGIMI Play 6 (GMUI 6): ADB-over-network setup, launcher, keyboard - -## Entities - -- [[user-profile]] — Alex's profile; roles, working style, preferences -- [[entities/library-app]] — Personal book library web UI on TrueNAS; replacement for inpxer (May 2026) -- [[entities/psychologist-app]] — AI Psychologist App (Nolvu): dual-agent session design, privacy analytics - -## Comparisons - -- [[comparisons/hermes-native-vs-docker]] — Hermes on Eagle (native) vs Kraken (Docker); deployment trade-offs - -## Concepts — AI & Agents - -- [[concepts/autonomous-agent-safety]] — Design patterns for safe autonomous agents; distilled from security incident -- [[concepts/executor-orchestrator]] — Eagle-as-orchestrator spawning Executor worker; auto-approve protocol table -- [[concepts/executor-security-incident]] — Post-mortem: autonomous Asana boundary crossing (May 2026); root causes -- [[concepts/agent-memory-architecture]] — LLM agent memory taxonomy (arXiv 2603.07670) applied to personal-os -- [[concepts/knowledge-lifecycle]] — How knowledge flows from session to permanent wiki memory -- [[concepts/hermes-deployment-patterns]] — Three Hermes deployment models: Eagle native, Kraken Docker, Kraken API server -- [[concepts/multi-agent-design-patterns]] — Five reusable patterns: orchestrator/worker, scope tables, memory layers, role specialization - -## Concepts — Vault & Wiki - -- [[concepts/vault-agent-integration]] — How Eagle, wiki-ingest, and obsidian-mcp work as a unified vault layer -- [[concepts/vault-strategy]] — Three vault tasks that must not be mixed (enrichment, storage, agent-context) - -## Concepts — Media & Home - -- [[concepts/kraken-media-stack]] — Full Kraken media server stack; Jellyfin, Arr, Transmission overview -- [[concepts/watchlist-automation]] — Full watchlist automation flow; Radarr/Sonarr triggers to Jellyfin -- [[concepts/multi-host-cron-topology]] — Which jobs run on Eagle vs Kraken, why, and design principles -- [[concepts/htpc-bazzite-ecosystem]] — Full HTPC stack overview: Steam/Proton, Kodi, emulators, magic remote, input devices - -## Meta - -- [[research-queue]] — Wiki gap tracker; topics to research and crystallize -- [[SCHEMA]] — Domain rules, tag taxonomy, frontmatter conventions -- [[log]] — Chronological action log diff --git a/wiki/log.md b/wiki/log.md deleted file mode 100644 index 2deabb29..00000000 --- a/wiki/log.md +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: Wiki Log -updated: '2026-05-25' -type: meta ---- - -# Wiki Log - -> Chronological record of all wiki actions. Append-only. -> Format: `## [YYYY-MM-DD] action | subject` -> Actions: ingest, update, query, lint, create, archive, delete, bootstrap -> Rotate when this file exceeds 500 entries: rename to log-YYYY.md, start fresh. - -## [2026-04-27] bootstrap | Initial wiki pages from Personal OS docs -- Created from raw/ symlinks: personal-os-architecture, personal-os-purpose, - personal-os-agent-rules, personal-os-self-modification, personal-os-sync-pipeline, - personal-os-schema, ddg-asana-workflow, vault-filling-guide, wiki-ingest-process - -## [2026-05-09] create | obsidian-mcp-wrapper -- Documented obsidian-mcp-wrapper.js: 4 bugs fixed, architecture, config - -## [2026-05-13] bootstrap | wiki-curation cron job started on Eagle -- Eagle Hermes cron: daily 02:00, skill llm-wiki -- WIKI_PATH=~/obsidian/wiki configured - -## [2026-05-23] research | WireGuard VPN topology -- Created: tech/wireguard-vpn.md — split-tunnel Eagle↔VPS↔Kraken, auto-connect, Time Machine, DNS -- Source: family/how-to/wireguard-vpn.md -- Created: research-queue.md with 3 gap items detected -- Updated: index.md (count 27→28, added wireguard-vpn entry) - -## [2026-05-23] bootstrap | SCHEMA.md, index.md, log.md created -- Navigation files were missing; created with 12 existing pages catalogued -- Files created: SCHEMA.md, index.md, log.md -- Created: htpc-bazzite-proton.md (from family/projects/htpc-windows-games-fix.md) -- Created: concepts/vault-agent-integration.md (synthesis) -- Lint: no conflicts, no inbox items, no sessions to crystallize - -## [2026-05-24] update | Index rebuild + synthesis page -- Conflicts: 0 found -- Inbox: empty -- Sessions: none for 2026-05-24 (cron session 2026-05-23 was wiki curation itself — not crystallizable) -- Research queue: marked executor-orchestrator and executor-security-incident as completed -- Created: concepts/autonomous-agent-safety.md (synthesis across executor-security-incident + executor-orchestrator + personal-os-agent-rules) -- Updated: index.md — 17 missing pages added; count 28→43; fixed duplicate vault-filling-guide entry -- Updated: research-queue.md — 2 queue items marked completed, updated date -- Lint: 0 orphans (all pages have ≥1 inbound link); 0 broken frontmatter; tag drift noted (systemic — SCHEMA taxonomy predates actual page growth; no action this run) -- Validation: autonomous-agent-safety.md frontmatter valid, 3 outbound wikilinks ✅ - -## [2026-05-25] update | Crystallization + synthesis + frontmatter fixes -- Conflicts: 0 found (scan: all ~/obsidian/**/*.md) -- Inbox: empty -- Sessions: 0 sessions for 2026-05-25 -- Vault changes since 2026-05-24 02:00: psychologist-app/* (6 files), media-pipeline-file-routing.md, xgimi-play6-setup.md, vps-qentra.md (new wiki page), app-ideas-enriched/* (4 files) -- Crystallized: tech/xgimi-play6-setup.md (from family/how-to/xgimi-play6-setup.md) -- Crystallized: entities/psychologist-app.md (from personal/projects/psychologist-app/{session-design,analytics,onboarding-archetypes}.md) -- Synthesis: concepts/multi-agent-design-patterns.md — 5 patterns synthesized from executor-orchestrator + autonomous-agent-safety + agent-memory-architecture -- Fixed: tech/vps-qentra.md — frontmatter (type: infra→tech, tags taxonomy, related: inline→list, added dates) -- Fixed: tech/arr-stack-kraken.md — related: inline wikilink → YAML list -- Fixed: tech/arr-stack-taiga.md — related: inline wikilink → YAML list -- Updated: SCHEMA.md — added vps, media-pipeline, arr to Infrastructure taxonomy -- Updated: index.md — 4 pages added (vps-qentra, xgimi-play6-setup, psychologist-app, multi-agent-design-patterns); count 43→47 -- Lint: personal-os-architecture.md has confidence:1.0 (immutable) — skipped update check per SCHEMA rules -- Validation: all 7 modified/created files passed pre-commit checks ✅ - -## [2026-05-27] update | Crystallization from session + synthesis -- Conflicts: 0 found (scan: all ~/obsidian/**/*.md) -- Inbox: empty -- Vault changes since 2026-05-26 02:00: movies-watchlist.md (new entries), vps-qentra.md (Alex added Backup + Xray sections manually), family/how-to/xgimi-play6.md deleted (superseded by wiki/tech/xgimi-play6-setup.md), work briefs (skip) -- Session crystallized: session_20260527_014707_b9f09b (Kraken tunnel investigation + media-pipeline refactor + watchlist-sync migration) -- Updated: tech/media-pipeline-pitfalls.md — 2 new pitfalls: router subdirectory→stale Transmission downloadDir, Alpine container no docker-in-docker (sync.py solution) -- Updated: concepts/watchlist-automation.md — KP markdown link parsing bug (commit 2db1ed9), cron jobs migrated Eagle→Kraken (2026-05-27), Kraken HDD paths -- Updated: tech/vps-qentra.md — bumped updated date (Alex manually added Backup + Xray sections) -- Created: concepts/multi-host-cron-topology.md — synthesis: Eagle vs Kraken job distribution, design principles, migration history, duplication pitfall -- Updated: index.md — added multi-host-cron-topology; count 47→48 -- Lint: watchlist-automation.md has tags [watchlist, automation, synthesis] not in SCHEMA taxonomy (pre-existing); torrents tag on media-pipeline-pitfalls.md also pre-existing; no broken wikilinks in new/modified pages -- Validation: all 4 modified/created pages passed pre-commit checks ✅ - -## [2026-05-29] update | Crystallization + synthesis (Hermes deployment patterns) - -- Conflicts: 0 found (scan: all ~/obsidian/**/*.md) -- Previous run (2026-05-28): status=complete, no Unfinished ✅ -- Inbox: empty -- Sessions: none for 2026-05-29 (no sessions found) -- Vault changes since 2026-05-28 02:00: - - `family/how-to/magic4pc-webos.md` — detailed WebOS TV app: build, deploy, - auto-launch, Back+keyboard quirk - - `family/how-to/tv-luna-send.md` + `htpc-webos-luna.md` — luna-send SSH - workaround and wrapper script - - `family/how-to/htpc-migration-plan.md` — EmuDeck Flatpak save paths table, - ROM symlinks from Data partition - - `family/projects/aide-kraken-backend.md` — Hermes Kraken as OpenAI-compat - API backend for Android Aide app via Cloudflare Tunnel - - `family/schedule/vacation-july-august-2026.md` — personal schedule, skip -- Created: tech/tv-luna-send.md (from tv-luna-send.md + htpc-webos-luna.md) -- Created: tech/hermes-kraken-api.md (from aide-kraken-backend.md) -- Updated: tech/htpc-magic4pc.md — WebOS build/deploy/auto-launch/Back+keyboard -- Updated: tech/htpc-steam-emulators.md — EmuDeck save paths + ROM symlinks -- Synthesis: concepts/hermes-deployment-patterns.md — 3 deployment models: - Eagle native, Kraken Docker, Kraken API server (cross-refs hermes-eagle-mac + - hermes-docker-kraken + hermes-kraken-api) -- Updated: tech/hermes-docker-kraken.md — added related links to new pages -- Updated: tech/hermes-eagle-mac.md — added deployment-patterns cross-link -- Updated: index.md — 3 pages added; count 50→53; date 2026-05-29 -- Lint: all new pages have ≥1 inbound content link; 0 broken wikilinks in - new/modified pages; tags all from SCHEMA taxonomy ✅ -- Validation: all 5 new/modified wiki pages passed pre-commit checks ✅ - -## [2026-05-28] update | Crystallization + synthesis + lint fixes -- Conflicts: 0 found (scan: all ~/obsidian/**/*.md) -- Inbox: empty -- Vault changes since 2026-05-27 02:00: family/how-to/htpc-magic4pc.md (new — LG Magic Remote Go client), family/how-to/htpc-system.md (hardware + 8BitDo fix), wiki/tech/reflect-skip-fuse.md (Alex added #if SKIP vs SKIP_BRIDGE rule), wiki/concepts/watchlist-automation.md (Alex fixed watchlist-sync HDD path), work briefs (skip) -- Session 20260528_013724_360f62c1: cron session itself (01:37, 1 min) — not crystallizable -- Crystallized: tech/htpc-magic4pc.md (from family/how-to/htpc-magic4pc.md) — LG Magic Remote client arch, button mapping, coordinate algorithm, deploy steps -- Updated: tech/htpc-steam-emulators.md — added hardware section + 8BitDo dual-dongle USB port pitfall (from family/how-to/htpc-system.md) -- Synthesis: concepts/htpc-bazzite-ecosystem.md — ties together htpc-bazzite-proton + htpc-steam-emulators + htpc-kodi-layout + htpc-magic4pc; HTPC mode map, input device overview, VDF rules -- Lint fixes (7 pre-existing inline related: → proper YAML lists): truenas-inpxer, jellyfin-config, hermes-docker-kraken, kraken-network, gitea-config, vault-namespace, htpc-kodi-layout -- Lint fix (reflect-skip-fuse): related: "[[kraken-network]]" → proper list with correct related pages (psychologist-app, gitea-config) -- Updated: index.md — 2 pages added (htpc-magic4pc, htpc-bazzite-ecosystem); count 48→50 -- Validation: all 4 new/modified wiki pages passed pre-commit checks ✅; 8 lint-fixed pages have valid structure ✅ diff --git a/wiki/obsidian-mcp-wrapper.md b/wiki/obsidian-mcp-wrapper.md deleted file mode 100644 index 05f6f805..00000000 --- a/wiki/obsidian-mcp-wrapper.md +++ /dev/null @@ -1,114 +0,0 @@ -# obsidian-mcp-wrapper - -> **Файл**: `~/scripts/obsidian-mcp-wrapper.js` -> **Назначение**: прокси-обёртка над `obsidian-mcp`, решает четыре системных бага - ---- - -## Проблемы, которые решает - -### 1. ZodError при инициализации (obsidian-mcp v1.0.6) - -`obsidian-mcp` падал с ZodError сразу после запуска. Причина: Hermes отправляет -`notifications/initialized` с полем `"id": null`, а obsidian-mcp v1.0.6 использует -`.strict()` валидацию и не принимает лишние поля. - -**Fix**: wrapper перехватывает все notification-сообщения (без `result`/`error`) с `id === null` -и удаляет поле `id` перед передачей в child. - -### 2. Race condition при gateway restart - -При рестарте Hermes gateway поднимает новый процесс `obsidian-mcp-wrapper`. Первые -параллельные tool-вызовы приходят пока child ещё инициализируется (~500ms) → они -тайм-аутились, circuit breaker открывался (3 фейла → 60s cooldown). - -**Fix**: wrapper буферизует все tool-вызовы до завершения handshake -(`initialize` → ответ → `notifications/initialized`), потом флашит очередь. - -### 3. Corrupted large payloads (UTF-8 chunk split) - -При больших tool-вызовах (~200KB+) Node.js доставляет stdin в нескольких chunk-ах. -Старый код делал string split — JSON разрезался по байтам → UTF-8 multibyte символы -портились, `JSON.parse` падал, сообщение дропалось молча. - -**Симптом**: `edit_note` с большим контентом тихо зависал (30s timeout), в логах: -``` -[obsidian-wrapper] Non-JSON from Hermes (forwarding verbatim): {"jsonrpc": "2.0", "method": "tools/call", "id": 3, "params": {"name": "edit-not -``` - -**Fix**: stdin и stdout читаются через `Buffer.concat` + `Buffer.slice` на `0x0a`. -Строка собирается полностью до передачи в `JSON.parse`. - -### 4. Per-call watchdog (зависший child) - -Если child не ответил на `tools/call` / `tools/list` / `resources/*` за **5s** — -watchdog убивает процесс. После авторестарта call автоматически уходит в голову -очереди и ретраится. - -**Fix**: `armWatchdog(callLine)` → `setTimeout 5000ms` → `child.kill()` → `startChild()`. - ---- - -## Как работает - -``` -Hermes (stdin) → wrapper → obsidian-mcp (child) - ↑ auto-restart при краше (до 10 раз) -``` - -**Состояния**: -- `ready = false` — child стартует, все tool-вызовы в очередь -- `ready = true` — handshake завершён, очередь флашится, всё проходит напрямую - -**Restart логика**: -1. Child упал → `ready = false`, `restarts++` -2. Новый child спавнится -3. Wrapper реплеит сохранённый `initialize` → ждёт ответа с `serverInfo` -4. Отправляет `notifications/initialized` (не форвардит Hermes — он не просил) -5. `ready = true` → флаш очереди - -**Shutdown**: -На stdin EOF (`Hermes` закрыл процесс) — child убивается без авторестарта, wrapper выходит чисто. - -**Логи** (все в stderr с timestamp): -``` -[obsidian-wrapper] 2026-05-09T12:00:00.000Z Spawning obsidian-mcp (vault=/Users/admin/obsidian) -[obsidian-wrapper] 2026-05-09T12:00:00.500Z Hermes → child (handshake complete): notifications/initialized -[obsidian-wrapper] 2026-05-09T12:00:00.501Z Child ready — flushing queue (3 items) -[obsidian-wrapper] 2026-05-09T12:00:01.200Z Stripped id:null from notification: notifications/initialized -[obsidian-wrapper] 2026-05-09T12:00:06.000Z WATCHDOG: child did not respond in 5000ms for tools/call #7 — killing and restarting -``` - ---- - -## Конфиг Hermes - -`~/.hermes/config.yaml`: -```yaml -obsidian: - command: node - args: [/Users/admin/scripts/obsidian-mcp-wrapper.js] -``` - -Wrapper сам вызывает `/opt/homebrew/bin/obsidian-mcp /Users/admin/obsidian`. - ---- - -## Производительность - -- Инициализация: ~587ms (без ZodError) -- Overhead wrapper: negligible (pure Node.js child_process, нет npm-зависимостей) -- MAX_RETRY: 10 -- CALL_TIMEOUT_MS: 5000ms (watchdog) - ---- - -## История - -**2026-05-09 (1)** — создан после диагностики 58 ошибок `obsidian/... call failed` в логах Hermes. -Корневая причина — ZodError + race condition при старте. Wrapper написан вместо патча -исходников obsidian-mcp (патч не нужен, wrapper чище и не ломается при обновлении пакета). - -**2026-05-09 (2)** — фикс large payload: Buffer-based line splitting вместо string split -(`edit_note` с большим контентом молча дропался). Добавлен per-call watchdog (5s timeout → kill & retry). -MAX_RETRY повышен с 5 до 10. diff --git a/wiki/personal-os-agent-rules.md b/wiki/personal-os-agent-rules.md deleted file mode 100644 index 07062598..00000000 --- a/wiki/personal-os-agent-rules.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -namespace: work -tags: [system, agent, eagle, rules] -last_updated: 2026-04-28 -confidence: 1.0 ---- - -# Personal OS — Agent Rules & Architecture - -Eagle (Орёл) is the Zulip-facing Hermes agent. This page documents what Eagle knows about its own environment and how to reason about it. - -## Data Flow - -``` -Asana API - → sync.js (every 30 min, workdays via Hermes cron) - → PostgreSQL (tasks, stories, task_edges, sync_state, task_annotations) - → generate-status.js - → ~/Developer/personal-os/asana_context.md ← raw Asana context (inbox-check) - → ~/context/status.md ← Eagle reads THIS -``` - -Eagle **only reads** `~/context/status.md`. It never touches the DB directly or calls Asana API. - -## Eagle's Knowledge Sources - -1. `~/context/status.md` — live Asana + ActivityWatch snapshot (updated every 30 min) -2. `~/Developer/personal-os/briefs/daily/YYYY-MM-DD.md` — today's brief -3. `~/Developer/personal-os/briefs/weekly/plan-MONDAY.md` — weekly plan -4. `~/obsidian/wiki/` — knowledge base (via obsidian MCP) -5. `~/Developer/personal-os/agent/` — playbooks and rules (via file tools) - -## Feedback Loop - -When Alex corrects something: -1. Edit the brief directly (show diff first, confirm before writing) -2. If systemic → edit the prompt template in `agent/prompts/` -3. Log correction silently to `corrections_log` table: - -```sql -INSERT INTO corrections_log (date, week_number, source, original_plan, correction, deferred_gids, reason_tag) -VALUES (current_date, EXTRACT(WEEK FROM current_date)::int, - '', '', '', - ARRAY[]::text[], ''); -``` - -`source` values: `zulip_pushback` | `morning_brief_correction` | `manual` -`reason_tag` examples: `ship-review-crunch` | `urgent-bug` | `meeting-day` | `over-estimated` | `scope-change` - -Never announce the log insertion. It is silent instrumentation. - -## Self-Diagnostics - -If pipeline seems stale, Eagle can check: -```bash -stat -f "%Sm" ~/context/status.md -# Should be < 40 min old on workdays -``` - -If sync is broken: -```bash -bash ~/scripts/run-pipeline.sh -# Runs sync.js + generate-status.js + healthcheck -``` - -If wiki is stale: -```bash -bash ~/scripts/run-wiki-ingest.sh -# Runs at 22:00 via launchd; call manually if needed -``` - -## Cron Schedule (Hermes) - -| Job | Schedule | Channel | -|-----|----------|---------| -| data-pipeline | */30 7-21 workdays | silent | -| morning-brief | 08:30 workdays | #daily-brief | -| eod-summary | 18:00 workdays | #daily-brief | -| inbox-check | */30 9-19 workdays | #inbox | -| weekly-plan | Mon 08:00 | #daily-brief | -| weekly-review | Fri 17:00 | #daily-brief | -| retrospector | Fri 17:30 | #retrospector | -| commit-vault | 23:00 daily | silent | - -wiki-ingest runs at 22:00 via **launchd** (not Hermes) — because it needs Mac filesystem access. - -## Allowed File Writes - -Eagle can write to: -- `briefs/daily/YYYY-MM-DD.md` -- `briefs/weekly/plan-MONDAY.md` -- `briefs/weekly/YYYY-MM-DD.md` -- `briefs/inbox/YYYY-MM-DD.md` -- `agent/prompts/*.md` (with confirmation) -- `~/obsidian/work/projects/SLUG.md` -- `~/obsidian/work/decisions/YYYY-MM-TOPIC.md` -- `~/obsidian/personal/` -- `~/obsidian/family/` - -Never write to `obsidian/wiki/` directly — that's wiki-ingest's job. -Never write `corrections_log.md` — use the SQL INSERT above (table, not file). - -## Activity Classification - -Work activity is classified via `aw-projects.json`. Projects with `namespace: "personal"` (e.g., AXPressDeck, media_files_db) appear as a footnote in the Activity section of status.md but are **not** counted as work time and **not** upserted to `activity_daily`. - -To re-classify a project (personal ↔ work), ask Eagle to edit `aw-projects.json`. diff --git a/wiki/personal-os-architecture.md b/wiki/personal-os-architecture.md deleted file mode 100644 index 2325a1ce..00000000 --- a/wiki/personal-os-architecture.md +++ /dev/null @@ -1,161 +0,0 @@ ---- -namespace: work -tags: [system, architecture] -last_updated: 2026-04-28 -confidence: 1.0 ---- - -# Personal OS — Architecture - -## Why It Exists - -See: `personal-os-purpose.md` - -## Agents - -### Стратег (Strategist) — data pipeline, no conversation -- `~/scripts/run-pipeline.sh` → sync.js + generate-status.js every 30 min (workdays via Hermes cron) -- Writes `~/context/status.md` and `~/Developer/personal-os/asana_context.md` -- Writes daily AW activity summaries to `activity_daily` table with quadrant classification -- No Zulip output — pure data layer - -### Орёл / Eagle (Tactician + reactive layer) — Hermes Zulip agent -- Reads `~/context/status.md`, daily/weekly briefs, vault via obsidian MCP -- Zulip streams: `daily-brief` `inbox` `focus` `executor` `projects` `journal` `retrospector` -- Cron jobs: generate-daily-brief (07:00 MTWRF), morning-brief (08:30 MTWRF), eod-summary (18:00 MTWRF), inbox-check (30 min 09–19 MTWRF), weekly-plan (Mon 08:00), weekly-review (Fri 17:00), retrospector (Fri 17:30), executor-autonomous (every 30 min 09–18 MTWRF), commit-vault (23:00 daily) -- Logs corrections to `corrections_log` table (SQL INSERT, silently on pushback) -- **Never accesses Asana API directly** — only reads pre-rendered markdown and DB - -### Ретроспектор (Retrospector) — Friday pattern analysis -- Runs as separate Hermes cron at 17:30 Friday → `#retrospector` -- Sources: corrections_log table, status.md subtask counts, obsidian git log, activity_daily quadrants, stories visibility metric -- Prompt: `~/Developer/personal-os/agent/prompts/retrospector.md` - -### Исполнитель (Executor) — two modes - -**Manual mode**: triggered by "fix bug [GID]" in #executor -- Single STOP gate after analysis; then autonomous: fix → build → test → draft PR → CI loop -- Prompt: `~/Developer/personal-os/agent/prompts/executor-bug-fix.md` - -**Autonomous mode**: hourly cron (09–18 workdays) → #executor -- Maintains a queue from: My Hack Days, Watched, O-L Backlog, stale My Tasks -- Analyzes tasks → posts "[Auto] Ready to start" with complexity/feasibility -- Waits for "go {gid}" to start; no reply = moves to next analysis -- Max 1 active fix at a time; handles CI/review on open draft PRs -- Stops touching a PR once Alex moves it out of draft or pushes commits -- No Asana comments; no touching other people's PRs -- Queue state in `executor_queue` table; live plan: `~/Developer/personal-os/briefs/executor-queue.md` -- Prompt: `~/Developer/personal-os/agent/prompts/executor-autonomous.md` - -**Shared**: -- Worktree at `~/DuckDuckGo/apple-browsers.git/.claude/worktrees/executor-{gid}-{slug}/` -- Always `git fetch origin main` + branch from `origin/main` -- State machine in `executor_runs` table -- For UI tests: spins VM via ddg-vm MCP (virfield), cleans up on PR close/merge - -**Eagle commands in #executor**: -| Command | Effect | -|---------|--------| -| `fix bug {gid}` | Spawn manual executor (separate agent) | -| `go {gid}` | Approve autonomous task → starts next tick | -| `skip {gid}` | Skip task in queue | -| `stop` | Pause current autonomous task | -| `next` | Pause current, analyze next | -| `resume {gid}` | Re-queue paused task | -| `queue` | Show current executor-queue.md | - -## Data Flow - -``` -Asana API - → sync.js (30 min, Hermes cron, silent) - → PostgreSQL: tasks, stories, task_edges, sync_state, task_annotations - -ActivityWatch (local daemon) - → generate-status.js (reads AW HTTP API) - → activity_daily (upserts daily project/quadrant summaries) - -generate-status.js - → ~/context/status.md ← Eagle reads this - → ~/Developer/personal-os/asana_context.md ← inbox-check reads this - -Eagle corrections in Zulip - → corrections_log table (INSERT on pushback, no announcement) - → Retrospector reads weekly - -Executor runs - → executor_runs table (state machine) - → ~/DuckDuckGo/apple-browsers.git/.claude/worktrees/ - → GitHub draft PRs (--draft, --assignee @me, no reviewers) -``` - -## Key File Locations - -| File / Path | Purpose | -|-------------|---------| -| `~/context/status.md` | Live Asana + AW snapshot. Written by generate-status.js. Eagle reads this. | -| `~/Developer/personal-os/asana_context.md` | Raw Asana context for inbox-check | -| `~/Developer/personal-os/agent/prompts/` | All agent prompts (Hermes cron + on-demand) | -| `~/.hermes/SOUL.md` | Eagle's identity, rules, vault write permissions | -| `~/Developer/personal-os/config.json` | Asana workspace/user GIDs, section GIDs | -| `~/Developer/personal-os/aw-projects.json` | ActivityWatch project classification rules | -| `~/.hermes/config.yaml` | Hermes config: model, MCP servers, cron settings | -| `~/obsidian/` | Vault — git repo, NAS remote, obsidian-mcp for search | -| `~/Developer/personal-os/logs/` | heartbeat.log, wiki-ingest-YYYY-MM-DD.md | -| `~/Developer/personal-os/briefs/` | daily/, weekly/, inbox/ — agent-written brief files | -| `~/DuckDuckGo/apple-browsers.git/` | Browser repo (bare), worktrees as sibling dirs | -| `~/DuckDuckGo/apple-browsers.git/.claude/worktrees/` | Executor worktrees | - -## Database Tables - -| Table | Written by | Read by | -|-------|-----------|---------| -| tasks | sync.js | generate-status.js, executor, status queries | -| stories | sync.js | generate-status.js, executor, retrospector | -| task_edges | sync.js | subtask traversal | -| sync_state | sync.js | generate-status.js header | -| task_annotations | manual / Eagle | generate-status.js irrelevant filter | -| activity_daily | generate-status.js | retrospector quadrant drift | -| corrections_log | Eagle on pushback | retrospector pattern analysis | -| executor_runs | executor (manual + autonomous) | generate-status.js active runs, executor state machine | -| executor_queue | executor-autonomous | generate-status.js queue display, autonomous tick state | - -## MCP Servers - -**Hermes agents:** -| Name | Command | Used for | -|------|---------|---------| -| obsidian | `/opt/homebrew/bin/obsidian-mcp ~/obsidian` | Vault search, read, write | - -**Claude Code / `claude -p` sessions:** -| Name | Command | Used for | -|------|---------|---------| -| ddg-vm | `npx tsx ~/Developer/virfield/server/mcp-server.ts` | VM lifecycle for UI tests | -| obsidian | `/opt/homebrew/bin/obsidian-mcp ~/obsidian` | Vault access | - -## launchd Agents - -| Label | Schedule | Purpose | -|-------|----------|---------| -| personal.os.heartbeat | :05 every hour | Runs run-pipeline.sh directly (no Claude auth needed); also triggers missed Hermes jobs after wake | -| personal.os.wiki-ingest | 22:00 daily | `claude -p` wiki synthesis (needs filesystem access) | - -## Vault Structure - -``` -~/obsidian/ -├── wiki/ ← LLM-generated + hand-written (confidence: 1.0 = never overwrite) -│ ├── personal-os-architecture.md (this file) -│ ├── personal-os-purpose.md -│ ├── personal-os-agent-rules.md -│ ├── personal-os-self-modification.md -│ ├── personal-os-sync-pipeline.md -│ ├── personal-os-schema.md (auto-generated) -│ ├── ddg-asana-workflow.md -│ └── vault-filling-guide.md -├── raw/ ← symlinks to external source files (schema.sql, etc.) -├── work/ -│ └── wiki/ -│ └── apple-browsers/ ← .cursor/rules copies (.md) + vm-ui-testing.md -└── personal/ family/ -``` diff --git a/wiki/personal-os-catchup-plan-2026-04-27.md b/wiki/personal-os-catchup-plan-2026-04-27.md deleted file mode 100644 index 4bc52e44..00000000 --- a/wiki/personal-os-catchup-plan-2026-04-27.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -source: raw/personal-os-catchup-plan-2026-04-27.md -content_hash: 5081ceb719104e1b7c6b5edd642c1daf38b3fd7cf1a96442a00516e7cdb15379 -namespace: work -last_synced: 2026-04-28 -confidence: 0.8 -tags: [personal-os, planning, catchup, executor, retrospector] ---- - -# Personal OS — Catch-Up Plan (2026-04-27) - -Handoff document for the executor agent: what to build next, in what order, and why. Companion to [[personal-os-state-2026-04-27]]. - -## Context - -Alex (macOS Browser DRI at DuckDuckGo, ADHD profile, async-first) needs the Personal OS to hold work context outside his head — so comments don't get lost, focus is protected, and career goals don't get crushed by current projects. - -Original four-agent design — Стратег / Тактик / Ретроспектор / Исполнитель. Stratan and Retrospector ✅ shipped; Tactic 🟡 partial; Executor 🟡 v1 with manual STOP gates only. - -**Catching up on:** career tracking, inbox triage hygiene, focus-aware ping gating, structured `corrections_log`, quadrant column on `activity_daily`, Executor v2, MS365 MCP wiring, vault consolidation, Executor PR template. - -## Architectural principle (reinforced) - -No new YAML files. No new shell scripts. No new launchd plists. Everything extends existing components: postgres tables, `generate-status.js` queries, prompt files in `agent/prompts/`, Eagle's `SOUL.md` rules. See [[personal-os-architecture]]. - -## Six deliverables (dependency-ordered) - -### 1.1 Schema migration - -Three changes — see [[personal-os-schema]]: -- `corrections_log` (id, date, week_number, source, original_plan, correction, deferred_gids[], reason_tag) — Tactic writes, Retrospector aggregates -- `executor_runs` (task_gid, worktree_path, branch_name, pr_url, state, ci_attempts, thread_id, timestamps) — state machine for autonomous Executor -- `activity_daily.quadrant` column — values: `project | aor | career | strategy | other` - -Why tables not markdown: Retrospector needs aggregates ("X deferred 3+ times in 4 weeks"); SQL trivial, LLM-parsing markdown each time is fragile. - -### 1.2 generate-status.js — three new SQL blocks - -- **Career: Advisor pipeline** — open tasks tagged "Project Advisor", surface as `## ⚡ Career — Advisor Opportunities` -- **Career: Visibility gaps** — Assessments / O-N / O-L tasks where Alex hasn't commented in 7+ days -- **Quadrant classification at AW write time** — `PROJECT_TO_QUADRANT` map, with current top-priority project read dynamically from config (not hardcoded — drifts wrong silently otherwise) - -### 1.3 inbox-triage.md — STEP 0 gating + overdue exclusion - -Two-part gate added at the top of the prompt (not a wrapper script — wrapper bypasses agent judgment): - -- **Focus check**: read latest `activity_daily` focus_score + active calendar event. Skip if in meeting, or focus_score > 60 in editor for >20min, unless 🔴 sections older than 3h. -- **Scope filter**: inbox = NEW signal only. Exclude overdue (those belong in daily-brief), already-responded, system events, bot noise. Include only new human comments, new assignments, ship/TD status changes, mentions. - -### 1.4 retrospector.md — three new SQL blocks - -Replace markdown `corrections_log.md` reads with: -- **Correction patterns** — `reason_tag` GROUP BY HAVING COUNT >= 3 over 4 weeks -- **Quadrant drift** — 4-week × quadrant pivot; flag any quadrant <5% for 3+ weeks (career gets the strongest flag) -- **Visibility this week** — count of strategic comments by Alex; surfaces career signal as a measurable proxy for the EP3 "thin Strategic Leadership" gap - -### 1.5 Eagle SOUL.md — corrections_log writeback - -When user pushes back in any channel, BEFORE responding: classify pushback type, infer reason_tag from message context, INSERT into `corrections_log` via psql, then respond normally. Don't announce the insert. Eagle is already in conversation — capturing in-context beats post-hoc log parsing. - -### 1.6 Executor v2 — single STOP gate, then autonomous - -Replace v1's many gates with **one gate after Analysis** (the consequential decision). Then: fix → build → test → branch (`executor/-`) → push → `gh pr create --draft --assignee @me` (no `--reviewer`) → self-review comment → CI poll loop (every 10min, max 3 auto-fix attempts). - -**Hard prohibitions**: never push non-`executor/*` branches, never non-draft PRs, never `--reviewer`, never `gh pr merge`, never modify `.github/` or deps without thread confirmation. - -Draft + assignee=@me + no reviewers gives a durable, ADHD-friendly surface (visible in "assigned to me", ignored by branch-protection auto-merge, no reviewer noise). - -### 1.7 MS365 MCP into Hermes - -One-time Hermes MCP config change benefits multiple prompts (inbox-triage, weekly-plan, daily-brief). Used in STEP 0 to detect active meetings via `outlook_calendar_search`. MS365 chosen over Google because it's the actual workspace. - -### 1.8 Vault consolidation - -Move into `~/obsidian/work/wiki/`: process docs from `~/Developer/personal-os/`, the UI testing skill, copies of `apple-browsers/.cursor/*.mdc` files. Decision rule: process/convention/knowledge → vault; runtime configs → original location. **Verify each prompt/skill end-to-end after move** — silent path-reference breakage is the failure mode. Copy `.mdc` (don't move) — Cursor still reads them in place. - -### 1.9 PR template — Executor variant - -Team's PR template requires manual confirmation of task/reviewer/description. For autonomous flow all three are deterministic. Use **inline template generation** (Option B) in the Executor prompt — auto-generate body from analysis + diff. Draft state is the safety net; Alex polishes on flip-to-ready. - -## Execution order - -1, 2, 4, 5 unblocked. 3 needs MS365 (#2). 6 needs schema (#1) + quadrants (#5). 7 needs schema (#1). 8, 9 unblocked. 10 (Executor v2) needs 1, 8, 9. **No new Discord channels needed.** - -## "Done" looks like - -Friday Retrospector says specific things ("deferred bug work 4× for ship-review-crunch"); inbox shows only new human signals (silent during meetings); `## ⚡ Career` section in status.md; pushback creates one `corrections_log` row; `fix [task]` in `#executor` produces an analysis post → approval gate → draft PR within 30min for trivial bugs; vault contains all `.mdc` + UI skill + process docs reachable via obsidian-mcp. - -## Related - -[[personal-os-state-2026-04-27]] [[personal-os-architecture]] [[personal-os-schema]] [[personal-os-agent-rules]] [[personal-os-self-modification]] [[ddg-asana-workflow]] diff --git a/wiki/personal-os-purpose.md b/wiki/personal-os-purpose.md deleted file mode 100644 index 93e43055..00000000 --- a/wiki/personal-os-purpose.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -namespace: work -tags: [system, purpose, adhd, design] -last_updated: 2026-04-28 -confidence: 1.0 ---- - -# Personal OS — Purpose - -## Why It Exists - -Alex is a macOS Browser Developer / DRI at DuckDuckGo. Async-first company, primary channels Asana and Slack. ADHD profile. - -The Personal OS exists to hold work context **outside Alex's head** — so that context isn't lost during deep focus, transitions, or when switching back from a meeting. - -Without it, three things happen regularly: -1. A comment sits on an Asana task for days — Alex never saw it because he was in Xcode -2. A career-level task (Ship Review, Tech Design review) gets deferred until it becomes a bottleneck -3. End of day: "what did I actually do today?" — no clear answer, no signal for tomorrow - -## Design Principles - -**Principle 1 — Context is the product, not notifications.** -The system's job is to maintain a live, accurate picture of what's happening. Eagle reads that picture and speaks when something actually matters. It is not a notification firehose. - -**Principle 2 — Protect focus.** -If Alex is in Xcode or Cursor, don't interrupt unless there's a red signal older than 3 hours. ADHD makes context switches expensive — the system should absorb noise, not amplify it. - -**Principle 3 — No hallucinated state.** -Eagle never guesses about Asana tasks. All Asana data flows through sync.js → PostgreSQL → generate-status.js → status.md. Eagle reads markdown, not the API. This means the data is always consistent and never stale by more than 30 minutes. - -**Principle 4 — Career goals are first-class.** -The system explicitly tracks: Project Advisor opportunities, visibility gaps (Ship Reviews where Alex hasn't commented), Tech Design reviews pending. These surface in status.md and the daily brief. Without explicit tracking they'd be invisible. - -**Principle 5 — No new infra.** -The system has enough moving parts. New capabilities go into existing components: Postgres tables, generate-status.js queries, prompt files in `agent/prompts/`, SOUL.md rules. No new YAML files, no new shell scripts, no new launchd plists unless there is no other way. - -## The Four Agents - -| Agent | Role | When | -|-------|------|------| -| **Стратег (Strategist)** | Data pipeline — reads Asana + ActivityWatch, writes status.md | Every 30 min, workdays | -| **Орёл / Eagle (Tactician)** | Discord-facing reactive agent — briefs, inbox, focus gating | Cron + on-demand | -| **Ретроспектор (Retrospector)** | Weekly pattern analysis — corrections, quadrant drift, visibility | Friday 17:30 | -| **Исполнитель (Executor)** | On-demand bug-fix worker — analysis → fix → PR → CI loop | Explicit trigger only | - -Eagle is the only agent Alex directly talks to. The others are background infrastructure. - -## What "Work Context" Means - -The system tracks four categories, mapped to `activity_daily.quadrant`: - -| Quadrant | What it covers | Why it matters | -|----------|---------------|----------------| -| `project` | The current top-priority feature/bug | Time here should dominate most weeks | -| `aor` | AOR maintenance: code review, bug fixes, blocklist | Required to keep the area healthy | -| `career` | Project Advisor, Ship Reviews, Tech Design, visibility | Easily deferred; system forces it into view | -| `strategy` | Planning, Personal OS, Asana organisation | Meta-work; needs a floor, not a ceiling | - -Personal pet projects (AXPressDeck, media_files_db, etc.) are tracked separately and not counted as work time. See `aw-projects.json` (`namespace: "personal"` entries). - -## What It Does Not Do - -- Does not make decisions for Alex — it informs -- Does not send notifications during focus (deep focus gate in inbox STEP 0) -- Does not access Asana API directly from Eagle — only reads pre-rendered status.md -- Does not create PRs, commits, or messages without explicit confirmation (except Executor, after its single approval gate) - -## See Also - -- `personal-os-architecture.md` — full technical architecture, agents, data flow, file locations -- `personal-os-agent-rules.md` — Eagle's operating rules and allowed writes -- `personal-os-self-modification.md` — how Eagle (and Alex) can evolve the system diff --git a/wiki/personal-os-schema.md b/wiki/personal-os-schema.md deleted file mode 100644 index 0ab9e5bb..00000000 --- a/wiki/personal-os-schema.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -source: raw/schema.sql -content_hash: 71b47e47b483834c887de14c76d5b16506d90ad64198d76a92a7b3731132dab8 -namespace: work -last_synced: 2026-04-27 -confidence: 0.9 -tags: [schema, postgres, database, asana, wiki] ---- - -# Personal OS Database Schema - -Postgres schema (`personal_os`) backing the Asana mirror, agent annotations, -file ingestion pipeline, semantic wiki, and memory store. Requires the -`vector` (pgvector) and `pg_trgm` extensions. Bootstrap with -`psql -U admin -d personal_os -f schema.sql`. - -## Asana mirror - -- **`tasks`** — one row per Asana task GID, upserted on each sync. - Stores due/start dates, completion, My Tasks section, assignee/creator, - primary project, timestamps, full `raw_json`, plus a `source` enum: - `my_tasks` (assigned to me) > `delegated` (I created, others assigned) - > `following` (CC'd) > `project` (project member, fallback). - Sync bookkeeping: `fetched_at`, `stories_fetched_before` cursor. -- **`stories`** — raw event log per task, keyed by Asana story GID. - `resource_subtype` covers comments, assignment changes, due-date edits, - section moves, dependency edits, attachments, completion, etc. -- **`task_edges`** — directed graph between tasks. `relation_type`: - `subtask`, `dependency` (blocked-by), `dependent` (blocking), - `project_sibling`, `mention` (referenced in a story). - `related_gid` may not yet exist in `tasks`. -- **`task_annotations`** — agent or user notes per (task, annotation_type). - Types: `irrelevant`, `watching`, `needs_action`, `snoozed` - (with `snoozed_until`). Never written by the fetcher. -- **`sync_state`** — one row per sync stream - (`my_tasks`, `following`, `delegated`, `project:{gid}`, - `workspace_events`). Tracks cursor, last sync, last full sync. -- **`task_embeddings`** — pgvector(1024) per task, HNSW index with - cosine ops; populated separately from sync. - -The **`active_tasks`** view filters out completed and irrelevant tasks -and tasks snoozed past today, ordered by source priority then due date -then modified-at. Starting point for daily review. - -## Phase 0 additions (2026-04-27) - -All core tables gain `namespace TEXT NOT NULL DEFAULT 'work'` so a single -DB can serve work/personal/family contexts. `tasks` also gets -`possibly_deleted` and `last_seen_in_full_sync` to track tasks that -disappear between full syncs without explicit deletion events. - -## File ingestion → wiki - -- **`file_references`** — files (via macOS security-scoped - `bookmark_data` + cached `last_known_path`) and web URLs - queued for wiki ingestion. Tracks `content_hash` (SHA256), - `mime_type`, `tags`, a `modification_log` JSONB, and a - `wiki_stale` flag the [[wiki-ingest-process]] consumes. - Namespace-checked (`work`/`personal`/`family`). -- **`wiki_pages`** — LLM-synthesised markdown, never a raw copy. - Has `sources` JSONB (file_ref/url/title), `confidence` float, - `superseded_by` self-FK for version chains, `stale` flag, - `last_synced_hash`, and a pgvector(1536) embedding for semantic - search. The optional ivfflat index is left commented; rebuild - once the table has 1000+ rows. - -## Memory store - -**`memory_store`** — semantic memory from Discord, Claude sessions, -and manual entries. `type` ∈ {fact, preference, decision, person}, -`source` ∈ {discord, claude, manual}, with entities JSONB, -confidence, optional `expires_at` (null = permanent), and a -pgvector(1536) embedding. Used by Hermes for cross-session context. - -## Indexing notes - -- Trigram GIN on `tasks.name` enables fuzzy task search. -- `tasks_due_on` is partial (only non-completed tasks). -- pgvector embedding indexes for `wiki_pages` and `memory_store` - are deferred until the tables have meaningful row counts. -- `task_embeddings` uses HNSW; the wiki/memory stores use ivfflat - (commented) — different recall/build trade-off per workload. - -## Key constraints - -- All `namespace` columns are CHECK-constrained to - `('work','personal','family')` on the new (Phase 0+) tables. -- Cascade deletes flow from `tasks` → `stories`, `task_edges`, - `task_annotations`, `task_embeddings`. - -## Related -[[personal-os-architecture]] [[wiki-ingest-process]] diff --git a/wiki/personal-os-self-modification.md b/wiki/personal-os-self-modification.md deleted file mode 100644 index c299b1b3..00000000 --- a/wiki/personal-os-self-modification.md +++ /dev/null @@ -1,152 +0,0 @@ ---- -namespace: work -tags: [system, self-modification, eagle, meta] -last_updated: 2026-04-28 -confidence: 1.0 ---- - -# Personal OS — Self-Modification Guide - -How Eagle (and Alex via Claude Code) can safely evolve the system without breaking it. - -**Rule**: Always show a diff/draft first, confirm, then apply. Commit the vault after. - ---- - -## What Eagle Can Change (no approval needed — show draft first) - -### 1. Prompt files (`~/Developer/personal-os/agent/prompts/*.md`) - -Eagle reads and writes its own prompts. When Alex says "add X to the morning brief" or "change how inbox triage handles Y": - -1. Read the current prompt: `~/Developer/personal-os/agent/prompts/.md` -2. Draft the change, show the diff in Discord -3. On confirmation: write the file -4. Commit: `cd ~/Developer/personal-os && git add agent/prompts/.md && git commit -m "[YYYY-MM-DD] prompt: "` - -**Do not** change `executor-bug-fix.md` without explicit confirmation — it controls autonomous code changes. - -### 2. SOUL.md (`~/.hermes/SOUL.md`) - -Eagle's identity, rules, and operating context. Eagle can propose changes to: -- Allowed vault write paths -- Focus gating rules -- Channel routing - -Same flow: draft → confirm → write → no vault commit needed (SOUL.md is outside vault). - -### 3. ActivityWatch project rules (`~/Developer/personal-os/aw-projects.json`) - -To classify a new project as work or personal: -1. Read current `aw-projects.json` -2. Add entry with `project`, `namespace` (omit for work, `"personal"` for pet projects), and `rules` -3. Show draft, confirm, write -4. Commit: `cd ~/Developer/personal-os && git add aw-projects.json && git commit -m "[YYYY-MM-DD] aw: classify "` - -The `namespace: "personal"` field excludes a project from work activity in status.md and activity_daily. - -### 4. Vault knowledge pages (`~/obsidian/wiki/`, `~/obsidian/work/wiki/`) - -Eagle does **not** write to `wiki/` — that's the wiki-ingest job (22:00 launchd). But Eagle **can** write to: -- `~/obsidian/work/projects/SLUG.md` — project notes -- `~/obsidian/work/decisions/YYYY-MM-TOPIC.md` — decisions -- `~/obsidian/personal/` — personal notes -- `~/obsidian/family/` — family docs - -After writing: `cd ~/obsidian && git add -A && git commit -m "[YYYY-MM-DD] "` - -### 5. Correction logging (corrections_log table) - -Eagle silently logs a row whenever Alex pushes back on a suggestion. No approval needed — this is continuous background instrumentation, not a visible change. - -```sql -INSERT INTO corrections_log (date, week_number, source, original_plan, correction, deferred_gids, reason_tag) -VALUES (current_date, EXTRACT(WEEK FROM current_date)::int, - '', '', '', - ARRAY[]::text[], ''); -``` - ---- - -## What Requires Approval (always confirm explicitly) - -### Schema changes (PostgreSQL) - -New tables, columns, or indexes require a SQL migration. Pattern: -1. Draft the SQL in Discord, explain the purpose -2. On "go": run via `psql personal_os -c "..."` -3. Update `~/obsidian/wiki/personal-os-schema.md` (this is auto-generated at 22:00, but a manual update is fine) - -Current tables: tasks, stories, task_edges, sync_state, task_annotations, activity_daily, corrections_log, executor_runs. - -### New Hermes cron jobs - -Add to `~/.hermes/config.yaml`. Format: -```yaml -crons: - - id: my-new-job - schedule: "30 9 * * 1-5" - prompt: | - Run: ~/Developer/personal-os/agent/prompts/my-prompt.md - channel: "#channel-name" -``` -Must confirm before writing — a broken cron syntax silently prevents Hermes from starting. - -### New launchd agents (`~/Library/LaunchAgents/`) - -New plist files. Rarely needed — only if a job requires Mac filesystem access and can't run inside Hermes (e.g., wiki-ingest). Confirm before writing and before loading with `launchctl`. - -### Executor prompt (`executor-bug-fix.md`) - -Controls autonomous code changes. Changes here need explicit approval because a mistake could cause the Executor to behave incorrectly on real PRs. - -### Hermes model or MCP configuration (`~/.hermes/config.yaml`) - -Model upgrades, new MCP servers. Show the diff; confirm before writing. - ---- - -## How generate-status.js Gets Extended - -When a new data signal should appear in status.md: - -1. Add a SQL query function (e.g., `getNewSignal()`) -2. Add a render function (e.g., `renderNewSignal(data)`) -3. Add both to `main()`: Promise.all for the query, the render call in `parts` -4. Test: `node ~/Developer/personal-os/generate-status.js` and read `~/context/status.md` -5. Commit - -**Never** edit generate-status.js to change how Asana sync works — that's sync.js territory. - ---- - -## Debugging the System - -| Symptom | Check | -|---------|-------| -| status.md is stale (> 40 min old) | `stat -f "%Sm" ~/context/status.md` — if old, run `bash ~/scripts/run-pipeline.sh` | -| Hermes cron didn't fire | Check heartbeat: `tail -20 ~/Developer/personal-os/logs/heartbeat.log` | -| Eagle gave wrong Asana data | The DB may be stale — run `node ~/Developer/personal-os/sync.js` manually | -| activity_daily missing today | generate-status.js runs upsert — check `select * from activity_daily where bucket_day = current_date` | -| corrections_log empty | Eagle only inserts on pushback — expected to be sparse | -| Executor in stuck state | `SELECT id, state, updated_at FROM executor_runs WHERE state NOT IN ('complete','abandoned');` | - ---- - -## Safe Operations Checklist - -Before making any system change: -- [ ] Read the current file/config before proposing a change -- [ ] Show the diff, not just a description -- [ ] Wait for explicit confirmation -- [ ] Apply the change -- [ ] Verify: run the component or check output -- [ ] Commit if in a git repo (`personal-os` or `obsidian`) - ---- - -## See Also - -- `personal-os-architecture.md` — full system map -- `personal-os-agent-rules.md` — Eagle's rules and channel routing -- `personal-os-purpose.md` — why this system exists diff --git a/wiki/personal-os-state-2026-04-27.md b/wiki/personal-os-state-2026-04-27.md deleted file mode 100644 index b7f798a2..00000000 --- a/wiki/personal-os-state-2026-04-27.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -source: raw/personal-os-state-2026-04-27.md -content_hash: 1640cb63145b49263b9476e2c39fe443ac561fdf6c27faccc50cfc8568552614 -namespace: work -last_synced: 2026-04-28 -confidence: 0.8 -tags: [personal-os, state, executor, infrastructure] ---- - -# Personal OS — State Snapshot (2026-04-27) - -Current state of the system after the [[personal-os-catchup-plan-2026-04-27]] was executed. Supersedes earlier state and v3 plan documents. - -## Infrastructure (✅ live) - -- **Postgres on Mac** — tables: `tasks`, `stories`, `task_edges`, `sync_state`, `signal_queue`, `activity_daily` (+ `quadrant` col), plus new `corrections_log`, `executor_runs`. See [[personal-os-schema]]. -- **sync.js** — 4-source Asana fetch, incremental deltas, sweepRecentlyCompleted -- **generate-status.js** — DB → `status.md` + `asana_context.md`; live blocks: 5 advisor opps, 8 visibility gaps, 10 executor queue items in first run -- **ActivityWatch** — DDG browser + Xcode watchers -- **Hermes v0.11.x** — launchd daemon `ai.hermes.gateway`, Claude Code OAuth, `claude-sonnet-4-6` -- **Discord bot Орёл#0898** — channels `#daily-brief #inbox #focus #executor #projects #journal #retrospector` - -See [[personal-os-architecture]] and [[personal-os-sync-pipeline]] for component detail. - -## Schedule - -**Hermes cron jobs (8):** data-pipeline (every 30min), morning-brief (08:30), eod-summary (18:00), inbox-check (every 30min, 9-19), weekly-plan (Mon 08:00), weekly-review (Fri 17:00), retrospector (Fri 17:30 → `#retrospector`), commit-vault (23:00). - -**launchd agents (Mac-level, fire on wake):** -- `personal.os.heartbeat` — :05 hourly watchdog, triggers missed Hermes one-per-day jobs -- `personal.os.wiki-ingest` — 22:00 daily, runs local `claude -p` (filesystem access requires local subprocess, not Hermes API agent) - -## Vault - -`~/obsidian/` — git remote `ssh://truenas_admin@mallexxx.duckdns.org/mnt/RED_2TB/storage/git/obsidian-vault.git`. Layout: `wiki/` (LLM-generated + hand-written, see [[wiki-ingest-process]]), `raw/` (symlinks), `work/` and `personal/` (Eagle-writable per [[vault-filling-guide]]), `family/`. Phase 8 of catchup added 43 `.cursor/rules/*.mdc` files under `work/wiki/apple-browsers/`. - -## Catch-up plan execution status - -| # | Item | Status | -|---|------|--------| -| 1 | Schema (corrections_log, executor_runs, quadrant) | ✅ | -| 2 | MS365 MCP in Hermes | 🟡 cloud connector only; no local npm package; available to `claude -p` jobs once added to CLI env | -| 3 | inbox-triage STEP 0 | ✅ | -| 4 | generate-status: advisor + visibility + executor queue | ✅ | -| 5 | generate-status: quadrant + activity_daily upsert | ✅ | -| 6 | retrospector SQL blocks | ✅ | -| 7 | SOUL.md corrections_log INSERT | ✅ | -| 8 | Vault consolidation (43 .mdc) | ✅ | -| 9 | Executor PR template inline | ✅ | -| 10 | Executor v2 prompt | ✅ written, not yet run end-to-end | - -## Executor v2 architecture (Phase 4 plan) - -Autonomous worker: evaluates backlog → picks task → spawns sub-agent in Discord thread under `#executor` → streams progress → produces draft PR → self-reviews → CI loop → surfaces in daily/weekly briefs. - -**Triggers:** user-initiated (`fix [task]` in `#executor`), scheduled (Friday weekly-review queue), status-driven (Eagle reads `## ⚡ Executor Queue` from status.md). - -**Qualification SQL:** assigned to Alex, not completed, no stories in 14+ days, due within 30 days. - -**Worker flow:** Eagle creates Discord thread → spawns sub-agent (`--worktree` mode, workdir `~/DuckDuckGo/apple-browsers.git/.claude/worktrees/executor--/`) → posts streaming updates per phase → opens PR → self-review comment → polls `gh pr checks` every 10min → on red, auto-fix max 3 attempts then escalate. - -**Phases:** 4a evaluation engine · 4b worker spawning + threads · 4c PR + CI loop · 4d feedback loop on PR comments · 4e scheduled evaluation. - -## Key decisions (divergence from earlier plan v3) - -1. **wiki-ingest** moved from Hermes cron → launchd `claude -p` subprocess. Filesystem I/O requires local process; Hermes API agents have no filesystem. -2. **personal-wiki MCP** dropped, replaced with stock `obsidian-mcp` against `~/obsidian/`. The DB-backed wiki was never built; vault is the source of truth now. -3. **Single heartbeat watchdog** instead of per-job launchd plists — simpler, covers wake-from-sleep for all one-per-day jobs. -4. **Retrospector** extracted to standalone `retrospector.md` + own cron + `#retrospector` channel, separating "what moved" (review) from "what's the pattern" (retro). -5. **NAS git path** moved to `/mnt/RED_2TB/storage/git/` — `/home/` lives on TrueNAS boot pool which is wiped on OS updates. -6. **Phase 2-family deferred** until after Phase 4 — Executor v2 has higher leverage than family infra. -7. **Executor v1 manual-only** with explicit STOP gates — first autonomous code-changing agent stays conservative. -8. **wiki-ingest prompt** rewritten DB-first → file-based with SHA256 frontmatter `content_hash`. See [[wiki-ingest-process]]. - -## Open questions before Executor v2 starts (all resolved) - -- Repo: `~/DuckDuckGo/apple-browsers.git/` bare repo, sibling worktrees, main at `main/` -- Worktree path: `.claude/worktrees/executor-{gid}-{slug}/` -- Xcode scheme: `DuckDuckGo macOS`, `.xcworkspace` required, xcbeautify required -- PR template: `pull-request.mdc` strict gates overridden by Executor v2 (task known, reviewer=@me, description auto-generated) -- Cleanup: `git worktree remove --force` + `git push --delete` + stop/delete VM -- UI test VM: ddg-vm MCP at `~/Developer/virfield/server/mcp-server.ts`, VirtualBuddy at `~/Documents/VirtualBuddy/` - -## Tech debt - -- Morning brief never smoke-tested (first real run = next 08:30) — Medium -- `work/projects/` empty (Eagle fills on first relevant conversation) — Low -- `executor-bug-fix.md` v1 still manual-only — replaced by v2 architecture above — Medium -- wiki-ingest `claude -p` runs without `--allowedTools` — Low -- **NAS SSH key in boot-pool `/home/`** — High; `authorized_keys` will be wiped on TrueNAS update; move under `/mnt/RED_2TB/` -- Hermes memory `~/.hermes/memory/` not backed up — Low - -## Deferred — Phase 2-family - -VPS (Ubuntu 24.04 $5/mo) `family_db` postgres + family Hermes instance + iCloud vault sync (`~/Library/Mobile Documents/iCloud~md~obsidian/`) for wife's iPhone Obsidian + NAS hourly rsync. Resumes after Phase 4. - -## Related - -[[personal-os-catchup-plan-2026-04-27]] [[personal-os-architecture]] [[personal-os-schema]] [[personal-os-sync-pipeline]] [[personal-os-agent-rules]] [[personal-os-self-modification]] [[personal-os-purpose]] [[wiki-ingest-process]] [[ddg-asana-workflow]] [[vault-filling-guide]] diff --git a/wiki/personal-os-sync-pipeline.md b/wiki/personal-os-sync-pipeline.md deleted file mode 100644 index 590ce9c9..00000000 --- a/wiki/personal-os-sync-pipeline.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -namespace: work -tags: [system, sync, pipeline, debugging] -last_synced: 2026-04-27 -confidence: 1.0 ---- - -# Personal OS — Sync Pipeline - -## Components - -### sync.js -Pulls from 4 Asana sources into PostgreSQL. Run: `node ~/Developer/personal-os/sync.js` - -**Sources fetched:** -1. `fetchMyTasks()` — My Tasks sections by GID (section-by-section) -2. `fetchFollowingTasks()` — tasks I follow, 7-day chunks to work around 100-result cap -3. `fetchDelegatedTasks()` — created by me, assigned to others -4. `fetchProjectTasks()` — tasks from projects I'm a member of (lookback window on full sync) -5. `sweepRecentlyCompleted()` — catch completed tasks missed by above - -**Incremental sync**: uses `modified_since` cursor from `sync_state` table. -**Full sync**: triggered when `full_sync_at` is older than configured threshold. - -### generate-status.js -Reads from PostgreSQL → writes `asana_context.md` + `status.md`. -Run: `node ~/Developer/personal-os/generate-status.js` - -### run-pipeline.sh -Wrapper: runs sync.js + generate-status.js + healthcheck. -`~/scripts/run-pipeline.sh` - -Healthcheck: `asana_context.md` must be < 40 minutes old. Exits 1 if stale. - -## Known Bugs (Fixed) - -### possibly_deleted + overdue tasks appearing -**Root cause**: Full sync marks tasks absent from Asana response as `possibly_deleted=true`. -These tasks remained `completed=false`, causing them to appear overdue. - -**Fix 1 — generate-status.js**: Added `AND t.possibly_deleted = FALSE` to all 5 active-task queries. - -**Fix 2 — sync.js**: Added `sweepRecentlyCompleted()` called after `syncMyTasks()`. -Uses `searchTasksForWorkspace(completed:true, completed_at.after=cursor)` to catch tasks -that vanished from sections (because completed tasks are excluded from section membership results). - -### Completion gap -`getTasksForSection` drops completed tasks. `fetchFollowingTasks` has `completed:false` filter. -→ Completion events never reach DB incrementally. -→ `sweepRecentlyCompleted()` fills this gap. - -## Debugging Checklist - -**Pipeline seems stuck:** -```bash -bash ~/scripts/run-pipeline.sh -# Check exit code and output -``` - -**Check when last sync ran:** -```sql -SELECT key, last_sync_at, full_sync_at FROM sync_state ORDER BY last_sync_at DESC; -``` - -**Check possibly_deleted tasks (should be 0 active):** -```sql -SELECT count(*) FROM tasks WHERE possibly_deleted=true AND completed=false; -``` - -**Check asana_context.md freshness:** -```bash -stat -f "%Sm" ~/Developer/personal-os/asana_context.md -``` - -**Manual full sync (reset cursor):** -```sql -UPDATE sync_state SET cursor = null, full_sync_at = null WHERE key = 'my_tasks'; -``` -Then run `node sync.js`. - -## Files - -- `~/Developer/personal-os/sync.js` — main sync script -- `~/Developer/personal-os/generate-status.js` — status generation -- `~/Developer/personal-os/asana.js` — thin Asana API client -- `~/Developer/personal-os/config.json` — workspace GID, user GID, section GIDs -- `~/.config/personal-os/env` — ASANA_API_KEY, POSTGRES_URL - -## Related - -[[personal-os-architecture]] [[personal-os-agent-rules]] [[ddg-asana-workflow]] diff --git a/wiki/raw/inbox/processed/research-vault-strategy-memory-20260516.md b/wiki/raw/inbox/processed/research-vault-strategy-memory-20260516.md deleted file mode 100644 index c1055aed..00000000 --- a/wiki/raw/inbox/processed/research-vault-strategy-memory-20260516.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -type: research -date: '2026-05-16' -topics: - - vault-strategy - - memory-architecture - - enrichment-patterns ---- -Сегодня (2026-05-16) провели большую research-сессию по vault strategy и memory architecture. Ключевые темы для кристаллизации в wiki: - -## 1. Obsidian Vault Strategy — итог - -Три разных задачи (не смешивать): -- **Vault Enrichment** — frontmatter, aliases, wikilinks на личные заметки → personal/family searchable -- **LLM Wiki (Karpathy pattern)** — накопление research: сессии → wiki pages → compounding knowledge base -- **Cross-domain Enrichment** — личные данные × external signals → personalized insights - -Ключевой принцип: topic maps (family/index.md, personal/index.md) как source of truth для кластеров. Воркеры читают карту, не хардкодят связи. - -## 2. Agent Memory Architecture (research arXiv 2603.07670, zylos.ai 2026-04) - -Три уровня (cognitive science taxonomy): -- **Episodic** — сессионные логи (Hermes: SQLite + session_search) ✅ -- **Semantic** — факты/предпочтения (MEMORY.md + USER.md) — нужна curation -- **Procedural** — навыки и workflows (skills/) ✅ - -Правило overflow для MEMORY.md: -- > 150 chars или содержит инструкции → перенести в vault, оставить pointer -- MEMORY.md = short stable facts only -- wiki/tech/ = detailed pitfalls, patterns, debug notes - -Ключевой вывод из arXiv 2603.07670: -- Без memory агент деградирует (Generative Agents: 48ч без рефлексии → repetitive) -- Gap между "есть память" и "нет памяти" > gap между разными LLM backbone -- Summarization drift: после 3+ циклов сжатия критические инструкции теряются → нужен vault как immutable store - -## 3. Enrichment patterns (Проект 4) - -Два режима: -- **Enrichment** (разовый): vault note + external context → enriched note рядом -- **Monitoring** (регулярный): external stream → фильтр через vault profile → дайджест/алерт - -Примеры: app-ideas → конкурентный анализ; books list → learning path; wishlists → profile-aware рекомендации. - -## Источники -- arXiv 2603.07670 — Memory for Autonomous LLM Agents (март 2026) -- zylos.ai — AI Agent Memory Architectures survey (апрель 2026) -- personal/projects/personal-os/obsidian-vault-strategy.md — наш полный план diff --git a/wiki/research-queue.md b/wiki/research-queue.md deleted file mode 100644 index be25939f..00000000 --- a/wiki/research-queue.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Research Queue -updated: '2026-05-24' -type: meta ---- - -# Research Queue - -> Topics detected as gaps in the wiki — mentioned in vault but no wiki page. -> Ordered by priority. Completed items move to ## Completed with link + date. - -## Queue - -(empty) - -## Completed - -- [x] WireGuard VPN → [[tech/wireguard-vpn]] (2026-05-23) -- [x] Executor Architecture v2 → [[concepts/executor-orchestrator]] (2026-05-19) -- [x] Executor Security Incident → [[concepts/executor-security-incident]] (2026-05-22) diff --git a/wiki/tech/arr-stack-kraken.md b/wiki/tech/arr-stack-kraken.md deleted file mode 100644 index 2fa383cd..00000000 --- a/wiki/tech/arr-stack-kraken.md +++ /dev/null @@ -1,136 +0,0 @@ ---- -title: Arr Stack — Kraken -created: '2026-05-23' -updated: '2026-05-27' -type: tech -namespace: family -tags: [arr, radarr, sonarr, prowlarr, transmission, jellyfin, infra, kraken] -related: - - "[[tech/jellyfin-config]]" - - "[[tech/arr-stack-taiga]]" - - "[[concepts/kraken-media-stack]]" ---- - -# Arr Stack — Kraken - -## Pipeline - -``` -Prowlarr → Radarr + Sonarr → Transmission → Jellyfin - ↓ - router.py (cron 10min) - ↓ - symlinks → /media/{movies,cartoons,series,documentaries,...}/ -``` - -Два параллельных пути поступления контента: - -1. **Radarr/Sonarr** → качают в `/media/movies-radarr/` и `/media/series-sonarr/` -2. **Transmission (ручные торренты)** → `on-download-complete.sh` → `sync.py` → `/media/{movies,cartoons,...}/` - -### router.py — жанровая маршрутизация - -`router.py` читает NFO-файлы (которые Radarr/Sonarr создают при загрузке), определяет жанр и возрастной рейтинг, и создаёт symlink в нужную Jellyfin-библиотеку: - -| Источник | Условие | Цель | -|---|---|---| -| movies-radarr/ | Documentary | `/media/documentaries/` | -| movies-radarr/ | Animation + !R/18+ | `/media/cartoons/` | -| movies-radarr/ | всё остальное | `/media/movies/` | -| series-sonarr/ | Documentary | `/media/documentaries-series/` | -| series-sonarr/ | Animation + !TV-MA | `/media/cartoons-series/` | -| series-sonarr/ | всё остальное | `/media/series/` | - -**Расположение:** `/srv/dev-disk-by-uuid-49e8f586-3839-4c5d-a1e1-58bfc3579ade/docker/media-pipeline/router.py` -**Запуск:** `python3 router.py --dry-run` (проверка) / `python3 router.py --apply` (исполнение) - -### media-router.sh — cron-скрипт для Telegram-уведомлений - -Обёртка над `router.py`, которая: -- запускает `router.py --apply` -- если `Nothing to do` — **SILENT**, ничего не шлёт -- если созданы symlink'и или ошибка — отправляет отчёт в Telegram Kraken - -**Расположение:** рядом с `router.py` — `media-router.sh` -**Cron (Kraken crontab):** каждые 10 минут -**Telegram:** kraken_htpc_bot → чат @mallex87 - -### sync.py — обработка ручных торрентов (Transmission) - -`sync.py` работает внутри Transmission-контейнера. При завершении загрузки: -1. Определяет название через TMDB API -2. Определяет жанр -3. Перемещает файл в `/media/{movies,cartoons,series,documentaries}/` -4. Обновляет `downloadDir` в Transmission через RPC - -**Расположение:** `/srv/.../docker/media-pipeline/sync.py` -**Триггер:** `on-download-complete.sh` (смонтирован в Transmission как `/config/on-download-complete.sh:ro`) - -## Transmission - -- **download-dir:** `/downloads` (без `complete`) -- **incomplete-dir:** `/downloads/incomplete` -- **Язык:** отключён auth для локальных -- **RPC:** `localhost:9091` - -При перемещении файлов для уже завершённых торрентов: -1. Переименовать файл/папку под кейс торрента (Linux ext4 case-sensitive) -2. Вызвать `torrent-set-location` с `move=false` -3. Запустить торрент на сидирование - -## Cron'ы на Kraken (crontab) - -``` -0 * * * * bash ~/scripts/sync-vault.sh # Obsidian sync -0 * * * * pgs-to-srt.sh /media/downloads # PGS→SRT новые -0 3 * * * pgs-to-srt.sh /media # PGS→SRT вся библиотека -0 1 * * * bash ~/scripts/watchlist-nightly.sh # watchlist nightly -0 9 * * 0 bash ~/scripts/watchlist-discover.sh # watchlist discover -*/10 * * * * bash .../media-pipeline/media-router.sh # media router (Telegram) -``` - -## API Keys - -| Service | API Key | -|-------------|----------------------| -| Radarr | `cbcb8ec3...` | -| Sonarr | `15fbec32...` | -| Prowlarr | `134ac38a...` | - -(Full keys truncated — retrieve from each service's settings page.) - -## Ports (default Docker network) - -All services accessible at `kraken:`: - -| Service | Port | -|--------------|------| -| Radarr | 7878 | -| Sonarr | 8989 | -| Prowlarr | 9696 | -| Transmission | 9091 | -| Jellyfin | 8096 | - -## Jellyfin библиотеки - -| Библиотека | Тип | Путь | -|---|---|---| -| Movies | movies | `/media/movies` | -| Series | tvshows | `/media/series` | -| Cartoons | movies | `/media/cartoons` | -| Cartoon Series | tvshows | `/media/cartoons-series` | -| Documentaries | movies | `/media/documentaries` | -| Documentary Series | tvshows | `/media/documentaries-series` | - -> `movies-radarr` и `series-sonarr` НЕ добавлены в Jellyfin — router.py создаёт symlink'и из них в перечисленные пути. - -## Известные проблемы - -- **17 фильмов в Radarr `hasFile=False`** — ждут подходящего релиза в Prowlarr. Scream (1996) в процессе загрузки. -- **Prowlarr** — если долго не находит релизы, проверить статус индексеров (`/api/v1/health`). - -## Notes - -- See [[arr-stack-taiga]] for Taiga (secondary) arr stack -- Media pipeline pitfalls: [[media-pipeline-pitfalls]] -- Синтез: [[concepts/kraken-media-stack]] diff --git a/wiki/tech/arr-stack-taiga.md b/wiki/tech/arr-stack-taiga.md deleted file mode 100644 index 8064641a..00000000 --- a/wiki/tech/arr-stack-taiga.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Arr Stack — Taiga -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: family -tags: [arr, taiga, infra, media, pitfalls] -related: - - "[[tech/arr-stack-kraken]]" ---- - -# Arr Stack — Taiga - -Secondary arr stack on Taiga (TrueNAS), added 2026-05-20. - -## Notes from Setup (2026-05-20) - -- Config and pitfalls recorded during initial Taiga arr stack deployment -- `router.py` was customized — check `/mnt/RED_2TB/docker/arr-taiga/router.py` - for current state - -## Key Differences from Kraken Stack - -- Taiga = TrueNAS host (storage-focused) -- Kraken = Raspberry Pi 5 (playback-focused) -- Taiga stack handles acquisition; Kraken handles serving to Jellyfin - -## Pitfalls - -(Details were referenced but not captured. Update this page after next -Taiga arr maintenance session.) diff --git a/wiki/tech/gitea-config.md b/wiki/tech/gitea-config.md deleted file mode 100644 index cd73c2d4..00000000 --- a/wiki/tech/gitea-config.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Gitea Config -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: personal -tags: [infra, gitea, git, credentials] -related: - - "[[tech/kraken-network]]" ---- - -# Gitea Config - -**URL:** `http://git.mallexxx.duckdns.org` (external) / `http://172.16.3.4:3000` (internal LAN) -**User:** `git_admin` - -## API Token - -Token name: `eagle-reflect` -Token value: `f2e679a571f4c599d64b384a711043f995fd8844` - -Used by Eagle for repo operations (push, PR creation, hook management). - -## Notes - -- External URL uses DuckDNS DDNS pointing to home IP -- Internal API endpoint preferred when on home network diff --git a/wiki/tech/hermes-docker-kraken.md b/wiki/tech/hermes-docker-kraken.md deleted file mode 100644 index a8069da1..00000000 --- a/wiki/tech/hermes-docker-kraken.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Hermes Docker on Kraken -created: '2026-05-23' -updated: '2026-05-29' -type: tech -namespace: personal -tags: [hermes, docker, kraken, infra, how-to] -related: - - "[[tech/kraken-network]]" - - "[[concepts/hermes-deployment-patterns]]" - - "[[tech/hermes-kraken-api]]" ---- - -# Hermes Docker on Kraken - -## Key Rule - -Hermes runs via **`docker run`**, NOT `docker compose`. No compose file. - -## Launch Pattern - -```bash -docker run -d \ - --name hermes \ - --restart unless-stopped \ - -v ~/.hermes:/root/.hermes \ - ... \ - hermes-image:tag -``` - -(Add actual flags from the running container: `docker inspect hermes`) - -## Notes - -- Using `docker run` keeps restart behavior explicit -- No compose means no accidental `docker compose down` wipes it -- Config/memory volume: `~/.hermes` on Kraken host diff --git a/wiki/tech/hermes-eagle-mac.md b/wiki/tech/hermes-eagle-mac.md deleted file mode 100644 index ad8f6edf..00000000 --- a/wiki/tech/hermes-eagle-mac.md +++ /dev/null @@ -1,229 +0,0 @@ ---- -title: Hermes на Eagle (Mac M4 Max) — Настройка и подводные камни -type: reference -namespace: work -tags: - - hermes - - mac - - eagle - - claude-proxy - - zulip - - pitfalls -created: '2026-05-21' -updated: '2026-05-22' -last_synced: '2026-05-22' -confidence: 0.9 ---- -# Hermes на Eagle (Mac M4 Max) — Настройка и подводные камни - -Hermes работает нативно (не в Docker) на Mac через `hermes gateway`. -Транспорт — Zulip (запущен в Docker). Провайдер модели — openclaw-claude-proxy -(см. ниже). - -## Компоненты - -| Компонент | Расположение | Запуск | -|-----------|-------------|--------| -| Hermes config | `~/.hermes/config.yaml` | — | -| claude-proxy (Claude proxy) | `/opt/homebrew/bin/claude-proxy` | launchd `ai.claude-proxy` | -| Zulip stack | `~/Developer/zulip/docker-compose.yml` | `docker compose up -d` | -| Obsidian MCP | mcpvault | встроен в Hermes toolset | - ---- - -## openclaw-claude-proxy — обход rate limit Claude API - -### Проблема - -`provider: claude-code` в Hermes использует OAuth-токен напрямую через -API Anthropic — и упирается в rate limit подписки. Лимиты сбрасываются -раз в час. API-ключа нет (политика организации). - -### Почему не cmappy - -cmappy (`claude-max-proxy-py`) молча выбрасывает поле `tools` из запроса — -передаёт только текст в `claude --print`. Результат: Hermes не может -использовать **ни один инструмент** (скиллы, MCP, терминал). Только голый -чат. - -### Решение: openclaw-claude-proxy - -[mehdic/claude-proxy](https://github.com/mehdic/claude-proxy) (npm: -`openclaw-claude-proxy`) — Node.js сервер, запускает `claude --print` как -subprocess и предоставляет OpenAI-совместимый `/v1/chat/completions` на -порту 3456. **Поддерживает tool_use** — инжектирует схемы инструментов в -системный промпт, парсит JSON tool_call из ответа, возвращает стандартный -OpenAI `tool_calls`. Caller (Hermes) сам выполняет инструменты. - -**Важно:** `CLAUDE_PROXY_TOOLS_TRANSLATION=1` НЕ включать — этот режим -выполняет MCP инструменты внутри CLI и Hermes ничего не получает. - -### Установка - -```bash -npm install -g openclaw-claude-proxy -``` - -### Wrapper-скрипт (обязателен для launchd) - -`~/.local/bin/claude-proxy-start.sh`: -```bash -#!/bin/zsh -# launchd не наследует среду login-сессии — токен нужно загружать явно -set -a -source /Users/admin/.hermes/.env 2>/dev/null -set +a -export PATH="/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:$PATH" -exec /opt/homebrew/bin/claude-proxy 3456 -``` - -**Pitfall:** без явного `source ~/.hermes/.env` claude-proxy не видит -`CLAUDE_CODE_OAUTH_TOKEN` и прогревочные процессы падают с "Not logged in". - -**Pitfall:** без явного PATH Claude CLI не найден (`/opt/homebrew/bin/claude` -не в launchd PATH). - -### launchd сервис - -`~/Library/LaunchAgents/ai.claude-proxy.plist`: -```xml - - - - - Labelai.claude-proxy - ProgramArguments - - /Users/admin/.local/bin/claude-proxy-start.sh - - EnvironmentVariables - - HOME/Users/admin - - RunAtLoad - KeepAlive - StandardOutPath - /Users/admin/.hermes/logs/claude-proxy.log - StandardErrorPath - /Users/admin/.hermes/logs/claude-proxy.log - - -``` - -```bash -launchctl load ~/Library/LaunchAgents/ai.claude-proxy.plist -``` - -**Pitfall при перезагрузке:** если старый процесс ещё держит порт 3456: -```bash -lsof -ti :3456 | xargs kill -9 -launchctl unload ~/Library/LaunchAgents/ai.claude-proxy.plist -launchctl load ~/Library/LaunchAgents/ai.claude-proxy.plist -``` - -### Конфигурация Hermes - -`~/.hermes/config.yaml` (секция model): -```yaml -model: - default: claude-sonnet-4-6 - # provider: claude-code # отключён — упирается в rate limit OAuth API - provider: custom - base_url: 'http://localhost:3456/v1' -``` - -**Pitfall:** `provider: openai` не существует в Hermes — нужно `custom`. - -**Pitfall:** `base_url` должен включать `/v1` (Hermes дописывает -`/chat/completions`). Без `/v1` → 404. - ---- - -## Zulip Docker — подводные камни - -### RabbitMQ: пользователи сбрасываются после перезапуска - -**Симптом:** Zulip отдаёт 500 на `/api/v1/register`. В логах RabbitMQ — -паника Khepri (Raft WAL). Пользователи в RabbitMQ исчезают. - -**Причина:** RabbitMQ 4.x использует Khepri вместо Mnesia. При переполнении -диска WAL не может записаться → Khepri сбрасывает состояние → пользователи -исчезают. `RABBITMQ_DEFAULT_USER/PASS` применяются только при **первом -старте** с пустым volume — повторный запуск их не восстанавливает. - -**Решение:** - -1. `docker system prune` — освободить место на диске (Docker VM sparse disk - не освобождает место автоматически). -2. Добавить `RABBITMQ_ERLANG_COOKIE` в env rabbitmq (стабилизирует cookie - через перезапуски). -3. При повреждённом volume — стереть и пересоздать: - ```bash - docker compose down - docker volume rm zulip_zulip-rabbitmq - docker compose up -d - ``` - -### Log rotation (обязательно!) - -Без ротации логи заполняют Docker VM (~6 ГБ за несколько месяцев). - -`docker-compose.yml` — добавить к каждому сервису: -```yaml -# zulip: -logging: - driver: json-file - options: - max-size: "50m" - max-file: "5" - -# rabbitmq, memcached, redis: -logging: - driver: json-file - options: - max-size: "20m" - max-file: "3" -``` - -### Docker VM sparse disk - -Mac Docker Desktop использует sparse virtual disk. Место, освобождённое -внутри VM, не возвращается хосту автоматически. `docker system prune` -запускает compaction. - ---- - -## Obsidian MCP - -Везде используется `mcpvault` (не `obsidian-mcp`). - -| Конфиг | Путь | -|--------|------| -| Claude Code CLI | `~/.claude/.mcp.json` | -| Claude Desktop App | `~/Library/Application Support/Claude/claude_desktop_config.json` | -| Hermes | встроен через toolset | - -Пример конфига (одинаковый для обоих): -```json -{ - "mcpServers": { - "obsidian": { - "command": "mcpvault", - "args": ["/Users/admin/obsidian"] - } - } -} -``` - -**Pitfall:** `obsidian-mcp` (npm) был удалён — если остался в конфиге, -Claude падает с "Failed to spawn process". Проверить логи: -`~/Library/Logs/Claude/mcp-server-obsidian.log`. - ---- - -## Связанные страницы - -- [[tech/hermes-docker-kraken]] — Hermes на Кракене (Docker) -- [[tech/kraken-network]] — сетевая топология -- [[concepts/hermes-deployment-patterns]] — сравнение трёх моделей деплоя Hermes diff --git a/wiki/tech/hermes-kraken-api.md b/wiki/tech/hermes-kraken-api.md deleted file mode 100644 index b04d8efe..00000000 --- a/wiki/tech/hermes-kraken-api.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: Hermes Kraken — OpenAI-Compatible API Server -created: '2026-05-29' -updated: '2026-05-29' -type: tech -namespace: personal -tags: [hermes, kraken, infra, agent, how-to] -sources: - - family/projects/aide-kraken-backend.md -confidence: medium -related: - - "[[tech/hermes-docker-kraken]]" - - "[[tech/vps-qentra]]" ---- - -# Hermes Kraken — OpenAI-Compatible API Server - -Hermes on Kraken exposes an OpenAI-compatible `/v1/chat/completions` -endpoint (`gateway/platforms/api_server.py`). Exposed externally via -Cloudflare Tunnel → used by the Android **Aide** app as a Hermes-backed -assistant. - -## Architecture - -``` -Android (Aide) - └── HTTPS → hermes.kraken.qentra.top/v1/chat/completions - ↓ Cloudflare Tunnel - cloudflared (Kraken, host network) - ↓ localhost:8642 - hermes-kraken (docker run, network_mode: host) - ↓ - Hermes gateway → Gemini / OpenRouter / ... -``` - -`network_mode: host` means port 8642 is directly on the Kraken host — -no port mapping needed. - -## Config (Kraken /opt/data/config.yaml) - -```yaml -api_server: - enabled: true - port: 8642 - host: "0.0.0.0" - key: "" # openssl rand -hex 32 -``` - -Restart container via Portainer or: -```bash -BASE=http://localhost:9000 -KEY="ptr_AJY+Ba9A7f6pcAHZfDD5koU4stkKgJCdbTEXLDLxn0g=" -EP=3 -CID=$(curl -s -H "X-API-Key: $KEY" \ - "$BASE/api/endpoints/$EP/docker/containers/json" \ - | jq -r '.[] | select(.Names[] | contains("hermes-kraken")) | .Id') -curl -s -X POST -H "X-API-Key: $KEY" \ - "$BASE/api/endpoints/$EP/docker/containers/$CID/restart" -``` - -Health check: `curl -s http://localhost:8642/health` - -## Cloudflare Tunnel Setup - -Tunnel name: `kraken`. Public hostname (CF Zero Trust dashboard): -- **Hostname:** `kraken.qentra.top` -- **Type:** HTTP (not SSH) -- **URL:** `localhost:8642` - -SSH to Kraken still works via VPS reverse tunnel (port 2223) — the CF -hostname change does not affect SSH access. - -## Aide Android Client Config - -Provider: Custom Endpoint - -| Field | Value | -|-------|-------| -| Base URL | `https://kraken.qentra.top/v1` | -| API Key | secret from config.yaml | -| Model | `hermes-agent` (maps to Hermes internally) | - -## What Was Not Changed - -- cloudflared container — already running -- VPS reverse SSH tunnel — unaffected -- `network_mode: host` on hermes-kraken — already set - -## See Also - -- [[tech/hermes-docker-kraken]] — how Hermes runs on Kraken (docker run - pattern, no compose) -- [[tech/vps-qentra]] — VPS qentra.top: Cloudflare + nginx stack diff --git a/wiki/tech/htpc-kodi-layout.md b/wiki/tech/htpc-kodi-layout.md deleted file mode 100644 index 36afc967..00000000 --- a/wiki/tech/htpc-kodi-layout.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: HTPC Kodi Layout & WoL -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: family -tags: [htpc, kodi, wol, infra, how-to] -related: - - "[[tech/htpc-steam-emulators]]" ---- - -# HTPC Kodi Layout & WoL - -## Wake on LAN - -HTPC MAC address stored in router DHCP config. WoL command: - -```bash -wakeonlan -``` - -Or via Kodi remote / Home Assistant automation. - -## Kodi Layout - -- Home screen: custom skin (record actual skin name here) -- Sources: NFS mounts from TrueNAS (`/mnt/RED_2TB/...`) -- Add-ons: check Kodi installed add-ons list - -Note: specific layout details were not migrated. Update this page -when next doing HTPC maintenance. diff --git a/wiki/tech/htpc-magic4pc.md b/wiki/tech/htpc-magic4pc.md deleted file mode 100644 index cc4c7d89..00000000 --- a/wiki/tech/htpc-magic4pc.md +++ /dev/null @@ -1,195 +0,0 @@ ---- -title: HTPC — magic4pc (LG Magic Remote) -created: '2026-05-28' -updated: '2026-05-29' -type: tech -namespace: family -tags: [htpc, how-to, pitfalls] -sources: - - family/how-to/htpc-magic4pc.md - - family/how-to/magic4pc-webos.md -confidence: medium -related: - - "[[htpc-bazzite-proton]]" - - "[[tech/htpc-steam-emulators]]" - - "[[tech/tv-luna-send]]" ---- - -# HTPC — magic4pc (LG Magic Remote) - -Go-client for using the LG Magic Remote (webOS TV app) as HTPC -mouse/keyboard input. Fork: `mallexxx/magic4pc_altclient` branch -`bazzite-linux`. - -LG TV: `192.168.1.75`, HTPC: `192.168.1.86`. - -## Architecture - -- **TV server**: webOS app on LG TV → sends UDP to fixed source - port **9106** -- **HTPC client**: `/usr/local/bin/magic4pc`, UDP listener -- **xdotool**: single persistent process via stdin pipe (mouse + - keyboard) -- **ydotool**: gamescope-specific keys (Ctrl+1, Ctrl+2) via - `/run/user/1000/.ydotool_socket` - -Session detection: -- `isGamescopeSession()` — scans `/proc/*/cmdline` for `kwin_wayland`; - if absent → gamescope (Steam Big Picture mode) -- `activeDisplay()` — KDE uses Xwayland display from kwin args; gamescope - uses `:1` (game) if visible windows present, else `:0` (Steam BP) - -## Button Mapping - -| Button | Keycode | Gamescope | KDE Desktop | -|--------|---------|-----------|-------------| -| Red | 403 | Ctrl+1 (Steam menu) | Super | -| Green | 404 | Escape | Escape | -| Yellow | 405 | Ctrl+2 (Steam QAM) | Middle click | -| Blue | 406 | Right click | Right click | -| Back | 461 | Mouse X1 | Mouse X1 | -| D-pad | 37-40 | Arrow keys | Arrow keys | -| Ch+/Ch- | 33/34 | PageUp/Down | PageUp/Down | -| Play/Stop/Pause | 415/413/19 | XF86Audio* | XF86Audio* | -| Touch (swipe) | — | mousemove (scaled) | mousemove | -| Tap | — | Left click | Left click | - -## Mouse Coordinate Mapping - -TV sends coordinates in 0–1920 × 0–1080 space. - -**In gamescope:** uses letterbox algorithm. -1. Find active window: (a) under cursor via `getmouselocation`, or - (b) largest bounding-box window (non-popup, highest ID) -2. Compute 16:9 letterbox viewport from window width: - `lb_h = win_w * 9/16` -3. Compute offset: `off_y = -(lb_h - win_h) / 2` -4. Map: `x11_x = tv_x * scale + off_x`; clip negatives to 0 - -**In KDE:** `getdisplaygeometry` → scale = display / 1920×1080. - -## Key Pitfalls - -| Problem | Fix | -|---------|-----| -| TV "service error" / won't reconnect | Fixed source UDP port 9106 | -| TV stuck "waiting for client" | Server keepalive timeout 10s | -| KDE XTest prompt on every click | Single persistent xdotool process | -| KDE XTest prompt after xdotool restart | `XwaylandEisNoPrompt=true` in kwinrc | -| Wrong mouse coordinates | Dynamic scale via `xdotool getdisplaygeometry` | -| Binary lost after `rpm-ostree upgrade` | Rebuild and redeploy | - -## Deploy - -```bash -# Build on Mac -cd ~/Developer/magic4pc_altclient -GOOS=linux GOARCH=amd64 go build -o magic4pc . - -# Copy + restart on HTPC -scp magic4pc htpc:/home/bazzite/magic4pc/magic4pc -echo bazzite | sudo -S systemctl stop magic4pc.service -echo bazzite | sudo -S cp /home/bazzite/magic4pc/magic4pc \ - /usr/local/bin/magic4pc -echo bazzite | sudo -S systemctl start magic4pc.service -``` - -Sudoers rule (no-password systemctl): -``` -bazzite ALL=(ALL) NOPASSWD: /usr/bin/systemctl -``` - -## WebOS TV App — Build & Deploy - -The TV-side is a React/Enact WebOS app + Node.js service bundled into -an IPK. Sources: `~/Developer/magic4pc/webos/`. - -### Build - -```bash -cd ~/Developer/magic4pc/webos -NODE_OPTIONS=--openssl-legacy-provider npm run build -``` - -**Pitfall:** `--openssl-legacy-provider` is required — the old webpack -is incompatible with Node.js 25+. - -### Package IPK - -```bash -/Users/admin/webOS_TV_SDK/CLI/bin/ares-package dist/ service/ --outdir . -``` - -**Pitfall:** both `dist/` and `service/` arguments are required — -omitting `service/` excludes the Node.js service from the IPK. -**Pitfall:** `npm run package` = `ares-package -n` (unsigned) — TV -rejects unsigned packages. Use the SDK command directly. - -### Deploy (deploy.sh) - -```bash -cd ~/Developer/magic4pc/webos && ./deploy.sh -``` - -Script flow: build → package → scp → close → remove → install → launch. -Uses [[tech/tv-luna-send]] wrapper for close/remove/launch. -For install (subscribe mode) — direct `ssh+script` with polling on -`"state":"installed"`. - -**Pitfall:** `ares-install` / `ares-launch` are unreliable — they don't -wait for completion. Use `luna-send dev/install` via `script` wrapper. - -### Version in UI - -Displayed as `1.1.0 (YYYY-MM-DD HH:MM)` — injected by webpack at -build time via `process.env.BUILD_DATE`. - -## Auto-launch on Boot/Wake - -Magic4pc launches a configured app when the TV boots or wakes. - -| File | Location | Purpose | -|------|----------|---------| -| `magic4pc-settings` | PERSISTENT_DIR | Selected app ID | -| `magic4pc-last-app` | PERSISTENT_DIR | Last foreground app | -| `magic4pc-run-state` | `/tmp/` | `running` after first launch | - -`PERSISTENT_DIR = /media/developer/apps/usr/palm/services/me.wouterdek.magic4pc.service` - -Logic: -- **Boot/wake:** `/tmp` is cleared → no `run-state` → `freshStart=true` - → launches configured app -- **Manual launch:** `run-state=running` already present → skips auto-launch - -The `init.d` script on TV (`/var/lib/webosbrew/init.d/magic4pc`) removes -`run-state` on suspend so wake triggers fresh launch. Always edit in -repo (`tv-scripts/init.d-magic4pc.sh`), never directly on TV. - -## WebOS Back Key + System Keyboard - -When the system keyboard is open, **Back #1** is consumed by the OS -(closes keyboard) — the `keydown` DOM event and `onButtonDown` are -**not** fired. **Back #2** arrives normally. - -Fix used in `MainPanel.js` (`_kbWasOpen` flag): - -```js -// Input.onActivate: -this._kbWasOpen = true; - -// onButtonDown on Back: -if (this.state.wolMacActive || this._kbWasOpen) { - this._kbWasOpen = false; - return; // suppress panel close -} -``` - -Approaches that don't work: `Popup.noAutoDismiss`, timeout heuristic, -polling `document.activeElement` (keyboard is a system overlay, focus -never moves to INPUT). - -## See Also - -- [[htpc-bazzite-proton]] — Proton game compatibility on this HTPC -- [[tech/htpc-steam-emulators]] — Steam, emulators, gamepad config -- [[tech/tv-luna-send]] — luna-send SSH wrapper for WebOS TV commands diff --git a/wiki/tech/htpc-steam-emulators.md b/wiki/tech/htpc-steam-emulators.md deleted file mode 100644 index 167ddb78..00000000 --- a/wiki/tech/htpc-steam-emulators.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: HTPC Steam & Emulators -created: '2026-05-23' -updated: '2026-05-29' -type: tech -namespace: family -tags: [htpc, steam, emulators, gamepad, how-to, pitfalls] -sources: - - family/how-to/htpc-migration-plan.md -related: - - "[[htpc-kodi-layout]]" - - "[[htpc-bazzite-proton]]" - - "[[tech/htpc-magic4pc]]" ---- - -# HTPC Steam & Emulators - -Bazzite HTPC at `192.168.1.86`. See [[htpc-bazzite-proton]] for Proton -game compatibility details. - -## Hardware - -- CPU: Intel Core i7-6800K, RAM: 32 GB, GPU: AMD Radeon RX 570 -- TV: LG webOS at `192.168.1.75` (HDMI) -- OS: Bazzite 44 (Fedora-based, immutable OSTree, `bazzite-deck` variant) - -## Gamepads — 8BitDo Ultimate (2 dongles) - -**Critical:** both 8BitDo Ultimate dongles (`2dc8:3106`) must be on -**separate physical USB ports**, not sharing a USB hub. If both share -the Huasheng USB2.0 HUB on port 006, the second dongle fails to -enumerate (`#Ifs=0 Cfg#=0`) and creates no `/dev/input/js`. - -**Working USB layout:** -- Port 005 (direct xHCI, no hub) → 8BitDo #1 (`E417D8D87F0C`) -- Port 006 → Hub Port 001 → 8BitDo #2 (`E417D8C197E4`) -- Port 006 → Hub Port 004 → Xbox 360 Wireless Receiver - -**Symptoms of wrong layout:** lsusb shows both but second has `#Ifs=0`; -only one `/dev/input/js`; Steam sees one controller. - -## Rules - -- Game save paths: managed per-emulator; see emulator config in Bazzite -- Gamepad config: stored in Steam controller profiles, backed up to - `~/controller-profiles/` -- Steam shortcuts for non-Steam Windows games: use Proton Experimental - -## EmuDeck Save Paths (Flatpak) - -| Emulator | Save path | -|----------|-----------| -| RetroArch | `~/.var/app/org.libretro.RetroArch/config/retroarch/saves/` | -| Dolphin (GC/Wii) | `~/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/` | -| Citra / Lime3DS | `~/.var/app/org.citra_emu.citra/` | -| PCSX2 (PS2) | `~/.var/app/net.pcsx2.PCSX2/config/PCSX2/memcards/` | -| RPCS3 (PS3) | `~/.var/app/net.rpcs3.RPCS3/config/rpcs3/dev_hdd0/` | -| PPSSPP (PSP) | `~/.var/app/org.ppsspp.PPSSPP/config/ppsspp/PSP/SAVEDATA/` | -| melonDS (NDS) | `~/.var/app/net.kuribo64.melonDS/` | -| Ryujinx (Switch) | `~/.var/app/org.ryujinx.Ryujinx/config/Ryujinx/bis/user/save/` | -| Steam | `~/.steam/steam/userdata/` | - -## ROM Symlinks (Data partition → EmuDeck) - -Emulators expect ROMs at `~/Emulation/roms//`. Symlinks from -the Data partition (`/run/media/bazzite/Data/`): - -```bash -ln -s "/run/media/bazzite/Data/n64 roms" ~/Emulation/roms/n64 -ln -s "/run/media/bazzite/Data/snes roms" ~/Emulation/roms/snes -ln -s "/run/media/bazzite/Data/gba roms" ~/Emulation/roms/gba -ln -s "/run/media/bazzite/Data/3ds roms" ~/Emulation/roms/3ds -ln -s "/run/media/bazzite/Data/ps2 roms" ~/Emulation/roms/ps2 -ln -s "/run/media/bazzite/Data/dolphin roms" ~/Emulation/roms/wii -ln -s "/run/media/bazzite/Data/cemu roms" ~/Emulation/roms/wiiu -ln -s "/run/media/bazzite/Data/mame roms" ~/Emulation/roms/mame -ln -s "/run/media/bazzite/Data/sega roms" ~/Emulation/roms/genesis -ln -s "/run/media/bazzite/Data/nes" ~/Emulation/roms/nes -``` - -After symlinking, run **Steam ROM Manager** (EmuDeck) from Desktop Mode -to import ROMs into Steam with cover art. - -## Non-Steam Windows Games - -`/run/media/bazzite/Data/games/` — 38 pre-installed games (Bayonetta, -Cuphead, GTA V, Witcher 3, etc.). Add as Non-Steam games with -Proton Experimental. - -`/run/media/bazzite/Data/steam/steamapps/common/` — already-Steam games -(Gang Beasts, Shovel Knight, etc.). Add as a second Steam library path. diff --git a/wiki/tech/jellyfin-config.md b/wiki/tech/jellyfin-config.md deleted file mode 100644 index e8d03731..00000000 --- a/wiki/tech/jellyfin-config.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Jellyfin Config -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: family -tags: [jellyfin, infra, media, credentials] -related: - - "[[tech/arr-stack-kraken]]" ---- - -# Jellyfin Config - -**URL:** `http://kraken:8096` - -## Users - -| User | Password | Notes | -|------|----------|-------| -| alex | (set) | Admin | -| lisa | (none) | Cartoons library only | - -## API Key - -`87af49b6ff62ea68da6abdab0d7a4fbc` - -Used by automation scripts (watchlist-sync, media-pipeline agents). - -## Database / Maintenance - -- **Before any DB operation:** `docker stop jellyfin` first -- Jellyfin runs as a Docker container on Kraken -- Config stored in `/opt/jellyfin/config/` (check docker-compose for exact path) diff --git a/wiki/tech/jellyfin-transcode-rpi5.md b/wiki/tech/jellyfin-transcode-rpi5.md deleted file mode 100644 index 5d3fe57c..00000000 --- a/wiki/tech/jellyfin-transcode-rpi5.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: Jellyfin Транскод на RPi5 — PGS/Subtitle Pitfalls -type: reference -namespace: work -tags: - - jellyfin - - kraken - - transcode - - subtitles - - pitfalls -created: '2026-05-18' -updated: '2026-05-18' ---- -# Jellyfin Транскод на RPi5 — PGS/Subtitle Pitfalls - -## Контекст - -Клиент: Konka TV с WebOS. Сервер: Raspberry Pi 5 (Крaken, ARM64). - -## Direct Play условия - -Direct Play работает при выполнении всех условий: -- Аудио: AAC -- Субтитры: **отсутствуют** (или внешние SRT, без burn-in) - -## Проблема PGS/ASS субтитров - -PGS и ASS (SSA) субтитры вызывают **burn-in** — Jellyfin рендерит субтитры прямо в видеопоток. - -**Результат:** полный транскод на CPU → **275% CPU load** на RPi5 → лаги, перегрев. - -**Экспериментальный PGS rendering** в настройках Jellyfin — **не помогает** на RPi5. - -## Решение: конвертация PGS → SRT - -Установка через uv (arm64/aarch64 совместимо): -```bash -~/.local/bin/uv tool install pgsrip -sudo apt-get install -y libgl1 libglib2.0-0 tesseract-ocr tesseract-ocr-rus tesseract-ocr-eng -``` - -Скрипт конвертации: -``` -/srv/dev-disk-by-uuid.../docker/media-pipeline/pgs-to-srt.sh -``` - -```bash -# один файл -pgs-to-srt.sh /media/movies/Film.mkv - -# вся директория -pgs-to-srt.sh /media -``` - -Логи: `/srv/.../docker/media-pipeline/pgs-to-srt.log` - -Скрипт: -- Скипает файлы без PGS-дорожек (S_HDMV) -- Скипает если .srt уже есть рядом -- Пишет лог с timestamp - -После конвертации Jellyfin читает внешние `.srt` без транскода. - -## Transmission completion hook - -Хук `/config/on-download-complete.sh` (монтируется в контейнер `:ro`) после завершения загрузки: -1. Запускает media-pipeline sync -2. Запускает pgs-to-srt.sh для скачанного файла/директории - -Лог: `/srv/.../docker/media-pipeline/download-complete.log` - -## Итог по субтитрам - -| Тип | Direct Play | Транскод | -|-----|------------|---------| -| Нет субтитров | ✅ | — | -| Внешний SRT | ✅ | — | -| ASS/SSA | ❌ | burn-in, 275% CPU | -| PGS (MKS/MKV) | ❌ | burn-in, 275% CPU | - -## NFD/NFC filename encoding pitfall - -**Проблема:** HTPC сохраняет имена файлов в NFD, Kraken — в NFC. -→ Jellyfin видит **две** папки: одна с `.avi` файлом (NFD), другая с `.nfo` (NFC). -→ NFO не применяется — Jellyfin берёт NFD-папку (с видео) и игнорирует NFC-папку (с NFO). -→ Метаданные пустые. - -**Фикс A (быстрый):** скопировать `movie.nfo` + `poster.jpg` в NFD-папку: -```bash -# python3 — использовать bytes для путей -import os, shutil -nfc_path = "…/Movie.NFC/movie.nfo" -nfd_path = "…/Movie.NFD/movie.nfo" -shutil.copy(nfc_path.encode(), nfd_path.encode()) -``` - -**Фикс B (радикальный):** переименовать всё в NFC (нормализовать). - -**Диагностика:** -```bash -ls -la | cat -v # покажет NFD-escape символы как ^ escape sequences -python3 -c "import os; [print(repr(f)) for f in os.listdir('.')]" -``` - -## Связанные страницы - -- [[concepts/kraken-media-stack]] — полный медиастек: *arr + Jellyfin + media-pipeline -- [[tech/kraken-network]] — инфра Кракена, HDD error recovery diff --git a/wiki/tech/kraken-network.md b/wiki/tech/kraken-network.md deleted file mode 100644 index fa702dc2..00000000 --- a/wiki/tech/kraken-network.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Kraken Network & Infra -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: personal -tags: [infra, kraken, ssh, wireguard, network] -related: - - "[[tech/arr-stack-kraken]]" ---- - -# Kraken Network & Infra - -## SSH Access - -``` -ssh kraken -``` - -IP: `192.168.1.15` (wlan0, primary). SSH alias `kraken` resolves via `~/.ssh/config`. - -## WireGuard Topology - -Split-tunnel: Eagle ↔ VPS ↔ Kraken. Full details: [[tech/wireguard-vpn]]. - -- Eagle: `10.99.0.2`, Kraken: `10.99.1.2`, VPS relay: `10.99.0.1`/`10.99.1.1` -- `wg-auto.sh` on Eagle (LaunchDaemon) — up when off home Wi-Fi, down at home -- VPS as relay; two interfaces (wg0/wg1) avoid hairpin forwarding - -## Media Volume Mount Paths - -Docker containers on Kraken mount media from NAS over NFS/SMB. -Paths were documented here — check docker-compose files in -`/opt/media-toolbox-kraken` for current mount config. diff --git a/wiki/tech/media-pipeline-pitfalls.md b/wiki/tech/media-pipeline-pitfalls.md deleted file mode 100644 index ad788003..00000000 --- a/wiki/tech/media-pipeline-pitfalls.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: Media Pipeline Pitfalls -created: '2026-05-23' -updated: '2026-05-27' -type: tech -namespace: family -tags: [media-pipeline, pitfalls, torrents, infra] -related: - - "[[tech/arr-stack-kraken]]" - - "[[concepts/watchlist-automation]]" ---- - -# Media Pipeline Pitfalls - -## Torrents — Do Not Rename Files - -Never rename torrent source files or folders while a torrent is active. -Transmission tracks files by path. Renaming breaks the association and -causes re-download or stalled seeding. - -Правильный порядок (когда файл уже лежит в нужном месте, но с другим кейсом): -1. Переименовать файл/папку на диске (Linux ext4 case-sensitive) -2. Вызвать `torrent-set-location` с новым путём + `move=false` -3. Запустить торрент на сидирование - -## torrent-set-location Updates downloadDir - -`torrent-set-location` in the Transmission RPC updates `downloadDir` in -the torrent metadata. Use this when moving completed files, not a manual -rename. Sequence: - -1. Move files to new location on disk -2. Call `torrent-set-location` with the new path + `move=false` -3. Verify torrent goes back to seeding state - -## Router Creates Subdirectories — Transmission downloadDir Stale - -`router.py` creates subdirectory per title under the genre folder -(lowercase name, e.g. `/media/cartoons/бобик в гостях у барбоса/`). -Transmission still holds the old `downloadDir` pointing to the parent -(`/media/cartoons/`). Result: torrents show "No data found" error. - -Fix: -1. Find the actual subdirectory on disk -2. Call `torrent-set-location` with the subdirectory path + `move=false` -3. Transmission verifies and resumes seeding - -## Alpine Container — No Docker-in-Docker - -`on-download-complete.sh` runs inside the Transmission Alpine container. -Docker CLI is not available there — using `docker run` inside the container -fails silently or errors. Python 3.14 IS available in the Alpine image. - -Solution: `sync.py` (Python3, ~190 lines) in the same container: -- Reads `config.json` for sorting rules + credentials (same file as linker container) -- Queries TMDB for genre routing -- Creates hardlinks + calls Transmission RPC `torrent-set-location` -Location: `/srv/.../docker/media-pipeline/sync.py` - -## Transmission download-dir — без /complete - -download-dir: `/downloads` (не `/downloads/complete`). -incomplete-dir: `/downloads/incomplete` (enabled). - -Менять через остановку Transmission → правка `settings.json` → запуск. - -## media-router.sh — Telegram-уведомления - -Скрипт-обёртка над `router.py`. Запускается из crontab каждые 10 минут. -- При `Nothing to do` — SILENT -- При активности — отправляет отчёт в Telegram Kraken (kraken_htpc_bot) -- `BOT_TOKEN` и `CHAT_ID` хардкодом в скрипте - -## Удаление дубликатов из downloads/complete - -После перемещения файлов в `/media/{movies,cartoons,series,...}/`: -1. Проверить, что файлы в movies — **реальные** (-rwx), не symlink'и -2. Проверить что inode разные (это копии, не один файл) -3. Удалить из `downloads/complete/` -4. Обновить путь в Transmission - -## General Rules - -- Never touch source files/folders (media-pipeline USER.md rule) -- `resolve-manual` is emergency-only -- NFO files: do not create manually; let the pipeline handle them -- Never delete test files from the pipeline project diff --git a/wiki/tech/reflect-skip-fuse.md b/wiki/tech/reflect-skip-fuse.md deleted file mode 100644 index 4323473c..00000000 --- a/wiki/tech/reflect-skip-fuse.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Reflect — Skip Fuse (SwiftUI/Kotlin) -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: personal -tags: [reflect, swift, kotlin, ios, android, pitfalls] -related: - - "[[entities/psychologist-app]]" - - "[[tech/gitea-config]]" ---- - -# Reflect — Skip Fuse (SwiftUI/Kotlin) - -## Key Pitfall - -When adding a **new SwiftUI View** to the Reflect iOS codebase, Skip Fuse -does **not** auto-generate the Kotlin counterpart. A manual Kotlin stub is -required in **2 places**: - -1. The View class file in the Android module -2. The registration/factory in the Android navigation/router - -## Why - -Skip Fuse transpiles shared SwiftUI code to Kotlin, but new View types -require explicit Kotlin stubs until Skip's transpilation coverage catches up. - -## Checklist for New SwiftUI Views - -- [ ] Add SwiftUI view as normal in iOS target -- [ ] Create matching Kotlin stub in `android/src/.../views/` -- [ ] Register in Android router/factory -- [ ] Run `./gradlew build` to verify no missing class errors diff --git a/wiki/tech/truenas-inpxer.md b/wiki/tech/truenas-inpxer.md deleted file mode 100644 index 5752f6d8..00000000 --- a/wiki/tech/truenas-inpxer.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: TrueNAS Inpxer / Books Setup -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: family -tags: [truenas, books, infra, storage] -related: - - "[[tech/kraken-network]]" ---- - -# TrueNAS Inpxer / Books Setup - -## Books Storage Path - -``` -/mnt/RED_2TB/storage/books/ -``` - -Books are stored on the RED_2TB pool. Inpxer (or similar indexer) serves -the library from this location. - -## Related TrueNAS Notes - -- General TrueNAS access: [[family/how-to/truenas-access]] -- Remote access reverse proxy: [[personal/docs/truenas-remote-access-reverse-proxy]] -- Rclone backup: [[family/how-to/truenas-rclone-backup]] - -Note: Inpxer-specific config was not migrated — add details here when -revisiting this setup. diff --git a/wiki/tech/tv-luna-send.md b/wiki/tech/tv-luna-send.md deleted file mode 100644 index ce26aa27..00000000 --- a/wiki/tech/tv-luna-send.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: WebOS TV — luna-send via SSH -created: '2026-05-29' -updated: '2026-05-29' -type: tech -namespace: family -tags: [htpc, how-to, pitfalls] -sources: - - family/how-to/tv-luna-send.md - - family/how-to/htpc-webos-luna.md -confidence: medium -related: - - "[[tech/htpc-magic4pc]]" - - "[[tech/htpc-kodi-layout]]" ---- - -# WebOS TV — luna-send via SSH - -`luna-send` on WebOS writes output to the TTY, not stdout. SSH without a -PTY produces no output. The `script(1)` workaround captures output via a -pseudo-TTY. - -TV IP: `192.168.1.75` (aliases: `root@LGwebOSTV`, `root@tv`). - -## The Problem - -```bash -ssh root@192.168.1.75 "luna-send -n 1 -f luna://..." # → silent -ssh -t root@192.168.1.75 "luna-send -n 1 -f luna://..." # → still silent -``` - -Root cause: `luna-send` detects whether its stdout is a TTY and refuses to -write to a pipe. - -## The Fix: script(1) - -```bash -ssh root@192.168.1.75 \ - "script -q -c \"luna-send -n 1 -f luna://com.webos.applicationManager/running '{}'\" \ - /tmp/o.txt; cat /tmp/o.txt" -``` - -`script(1)` allocates a pseudo-TTY and records output to `/tmp/o.txt`. -The wrapper then reads the file, filters the Script header/footer lines, -and removes the temp file. - -## Wrapper: tv-luna-send.sh - -Location: `~/Automation/tv-luna-send.sh` on Eagle. - -```bash -# Usage (same flags as luna-send) -~/Automation/tv-luna-send.sh [luna-send flags] luna://service/method 'json' - -# List running apps -~/Automation/tv-luna-send.sh \ - -n 1 -f luna://com.webos.service.applicationmanager/running '{}' - -# Close an app -~/Automation/tv-luna-send.sh \ - -n 1 -f luna://com.webos.service.applicationmanager/closeByAppId \ - '{"id":"me.wouterdek.magic4pc"}' - -# Launch an app -~/Automation/tv-luna-send.sh \ - -n 1 -f luna://com.webos.applicationManager/launch \ - '{"id":"me.wouterdek.magic4pc"}' - -# Query magic4pc service status -~/Automation/tv-luna-send.sh \ - -n 1 -f luna://me.wouterdek.magic4pc.service/query '{}' -``` - -Set `TV_HOST` env to override the default target (`root@LGwebOSTV`). -DNS resolves via home router at `192.168.1.1`. - -## Common Luna URIs - -| URI | Purpose | -|-----|---------| -| `.../applicationmanager/running` | List running apps | -| `.../applicationmanager/closeByAppId` | Close app by ID | -| `.../appInstallService/dev/install` | Install IPK (subscribe) | -| `.../appInstallService/dev/remove` | Remove app | -| `.../applicationManager/launch` | Launch app | -| `.../applicationManager/getForegroundAppInfo` | Get active app | -| `...magic4pc.service/query` | Magic4pc service status | - -Full service prefix: `com.webos.service.applicationmanager`, -`com.webos.appInstallService`, `com.webos.applicationManager`. - -## Limitation: Subscribe Mode (-i) - -`luna-send -i` (infinite subscribe, used for `dev/install`) does **not** -work through the wrapper — it never terminates normally. The -`magic4pc/webos/deploy.sh` handles install directly via `ssh+script` with -inline polling for `"state":"installed"`. - -## Where Used - -`magic4pc/webos/deploy.sh` — close, remove, and launch steps in the deploy -pipeline. See [[tech/htpc-magic4pc]] for the full magic4pc build and deploy -workflow. diff --git a/wiki/tech/vault-git-sync.md b/wiki/tech/vault-git-sync.md deleted file mode 100644 index 8c93bb2f..00000000 --- a/wiki/tech/vault-git-sync.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Vault Git Sync — Setup & Pitfalls -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: wiki -tags: [vault, git, sync, infra, obsidian] ---- - -# Vault Git Sync - -Obsidian vault is a bare git repo on TrueNAS (`mallexxx.duckdns.org:/mnt/RED_2TB/storage/git/obsidian-vault.git`). -Three hosts sync to it: Eagle, Kraken, Taiga. - -## Sync Strategy (correct) - -All hosts must follow this order: - -``` -1. stash local changes (git stash) -2. pull from remote (git fetch + git merge) -3. pop stash (git stash pop) -4. commit if anything new (git add -A + git commit) -5. push (git push) -``` - -**Why this order matters:** `git add -A` before pull stages deletions of files -that exist on remote but not locally. This caused Taiga to delete 32+ wiki files -on 2026-05-23 (two incidents: 3a44a55, c9020c4). - -## Scripts - -| Host | Script | Status | -|--------|------------------------------------|----------------| -| Eagle | `~/scripts/sync-vault.sh` | ✅ Correct | -| Kraken | `~/scripts/sync-vault-partial.sh` | ✅ Correct | -| Taiga | `/opt/data/sync-vault.sh` | ✅ Fixed 2026-05-23 | - -All scripts now use scoped `git add personal/ family/ .obsidian/` (not `git add -A`) before stash. -Taiga additionally uses sparse checkout (only `personal/` and `family/`) — double safeguard: -even if a bug reintroduces `git add -A`, sparse checkout means wiki/ is never checked out locally. - -## Taiga Architecture - -Taiga is TrueNAS running Hermes in Docker (`/mnt/RED_2TB/docker/hermes/`). -The sync script runs **inside the container** with: -- `GIT_WORK_TREE=/vault` → mounted from `/mnt/RED_2TB/storage/obsidian` -- `GIT_DIR=/vault.git` → mounted from `/mnt/RED_2TB/storage/git/obsidian-vault.git` (the bare repo itself) - -Taiga IS the repo — no remote push needed. Eagle pushes to `nas/main`, which is this same bare repo. - -Script location: `/mnt/RED_2TB/docker/hermes/config/sync-vault.sh` (= `/opt/data/sync-vault.sh` inside container) - -SSH access: `ssh taiga` (alias in ~/.ssh/config → `truenas_admin@mallexxx.duckdns.org`) - -To deploy a script fix: -```bash -scp ~/scripts/sync-vault-taiga.sh taiga:/mnt/RED_2TB/docker/hermes/config/sync-vault.sh -``` - -**NEVER use local IP for TrueNAS** — always `mallexxx.duckdns.org` or `ssh taiga`. - -## .gitignore - -Plugin binaries are excluded to prevent cross-device obsidian-git version conflicts: - -``` -.obsidian/plugins/obsidian-git/main.js -.obsidian/plugins/obsidian-git/styles.css -.obsidian/plugins/obsidian-git/manifest.json -``` - -Each device manages its own plugin binaries via Obsidian's built-in update mechanism. -`data.json` (plugin config) IS tracked — shared settings across devices. - -## Incident: 2026-05-23 - -**Root cause:** Taiga's `/opt/data/sync-vault.sh` did `git add -A` before `git pull`. - -**Sequence:** -- 22:02 UTC Eagle created 15 wiki files (d757029, 6dc4b89) -- 00:00 UTC Taiga ran sync → staged deletions (local didn't have wiki/) → commit 3a44a55 -- 03:02 UTC Taiga ran again → deleted 8 more files (c9020c4) - -**Recovery:** `git checkout -- ` for each file from last-good commits. -32 files restored in commit 620e2df. - -## Stash Cleanup - -Orphaned stashes from obsidian-git mobile syncs accumulate. Safe to drop: -```bash -git stash drop stash@{N} # drop specific, or: -git stash clear # drop all (only if no unrecovered work) -``` diff --git a/wiki/tech/vault-namespace.md b/wiki/tech/vault-namespace.md deleted file mode 100644 index c9a71fd8..00000000 --- a/wiki/tech/vault-namespace.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Vault Namespace Rules -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: personal -tags: [vault, meta, conventions] -related: - - "[[vault-filling-guide]]" ---- - -# Vault Namespace Rules - -Rules for where notes live in the Obsidian vault. See also [[SCHEMA]] for -full frontmatter conventions. - -## Namespace Assignments - -- `personal`: Eagle infra, personal projects, dev tooling -- `family`: Kraken media stack, HTPC, Jellyfin, family content -- `work`: DuckDuckGo / DDG tasks and tooling - -## Directory Map - -``` -wiki/concepts/ — how-it-works explanations -wiki/tech/ — infra how-tos, tool configs, pitfalls -wiki/ideas/ — speculative, not yet decided -personal/projects/ — project status & decisions -family/projects/ — family-shared project status -family/how-to/ — family infra procedures -``` - -Note: this file was reconstructed from a lost pointer. Extend with actual -rules as they emerge. diff --git a/wiki/tech/vps-qentra.md b/wiki/tech/vps-qentra.md deleted file mode 100644 index b53cc32c..00000000 --- a/wiki/tech/vps-qentra.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: VPS qentra.top -created: '2026-05-24' -updated: '2026-05-27' -type: tech -namespace: personal -tags: [infra, vps] -confidence: medium -related: - - "[[tech/kraken-network]]" - - "[[tech/wireguard-vpn]]" ---- - -# VPS qentra.top - -**IP:** 91.207.28.205 -**Stack:** nginx + Python 3.11, Cloudflare proxy -**Panels:** panel.qentra.top:5430, v.qentra.top:8964 - -## Subdomain Setup - -1. Add Cloudflare A-record → 91.207.28.205 -2. Add nginx vhost in `/etc/nginx/sites-enabled/` - -## Backup - -Ежедневный бэкап конфигов через cron (04:00): -- Скрипт: `/root/vps-backup.sh` -- Cron: `/etc/cron.d/vps-backup` -- Куда: `/root/backups/` (`vps-config-YYYY-MM-DD_HHMMSS.tar.gz`) -- Ретеншн: 90 дней - -**Что бэкапится:** -| Файл | Описание | -|------|----------| -| `xray/config.json` | Xray конфиг (все inbound/outbound, клиенты) | -| `x-ui/config.json` | 3X-UI панель (полная копия клиентов) | -| `systemd/xray.service` | systemd unit Xray | -| `cron/xray-update` | Еженедельное обновление Xray и 3X-UI | -| `nginx/sites-enabled/nolvu` | nginx vhost → nolvu.qentra.top | -| `nginx/sites-available/panel` | nginx vhost → panel.qentra.top | -| `nginx/sites-available/xray` | nginx vhost → v.qentra.top (WS прокси) | -| `nginx/nginx.conf` | Основной конфиг nginx | -| `scripts/add-client.sh` | OpenVPN скрипты | -| `scripts/revoke-client.sh` | OpenVPN скрипты | -| `scripts/setup-openvpn.sh` | OpenVPN скрипты | - -**Восстановление:** -```bash -tar xzf /root/backups/vps-config-latest.tar.gz -C / -# После восстановления — перезапустить сервисы: -systemctl daemon-reload -systemctl restart xray nginx -``` - -## Xray (VLESS+REALITY) - -- **Inbound 443** — REALITY, 4 клиента - - `2D9F24C4-21FE-4784-9843-F11C384DA67A` — `user1` (телефон) - - `f80b579b-baa6-4887-a76e-682635335c15` — `natali` - - `62814419-722a-4f45-b560-eaed2d0df6af` — `alexander_martemyanov` - - `23aa4d8e-ef16-43ab-bdef-3d2c11d8ef02` — `taiga` (TrueNAS vless-proxy) -- **Inbound 8964** — WebSocket, через nginx v.qentra.top/qentra - - `2D9F24C4-21FE-4784-9843-F11C384DA67A` — `124hyews` - - `d10834e6-ba84-4dbd-b5e6-b5f4df9e64d6` — `natali@duck.com` -- PrivateKey: `CMu-Sz49V5HW-s2c0P33EDlCwY-JMhQbxfdn7LhvY1A` -- Публичный ключ (для клиентов): `Rtkptj9Cij2go_oE0Klgf_Mwfhq-d_oaW4mQubHzXm0` - -**Важно:** REALITY на 443, nginx на 8443 + 80. При перезапуске — сначала Xray (забирает 443), потом nginx. - -## See Also - -- [[tech/kraken-network]] — Kraken home network topology -- [[tech/wireguard-vpn]] — WireGuard tunnel used for Eagle↔VPS traffic diff --git a/wiki/tech/wireguard-vpn.md b/wiki/tech/wireguard-vpn.md deleted file mode 100644 index f0efa07c..00000000 --- a/wiki/tech/wireguard-vpn.md +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: WireGuard VPN — Eagle to Kraken -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: personal -tags: [infra, kraken] -sources: [family/how-to/wireguard-vpn.md] -confidence: high ---- - -# WireGuard VPN — Eagle to Kraken - -Split-tunnel VPN connecting Eagle (Mac M4, home) to Kraken (RPi5, home) via -a VPS relay. Enables SSH to Kraken from anywhere and routes Time Machine -backups over the tunnel. Two VPS interfaces avoid hairpin forwarding. - -## Topology - -``` -Eagle (10.99.0.2) ←→ wg0 VPS (10.99.0.1) ←→ wg1 VPS (10.99.1.1) ←→ Kraken (10.99.1.2) - :51820 :51821 -``` - -SNAT rewrites source address: Eagle packets arrive at Kraken with src -`10.99.1.1` (VPS wg1), not Eagle's `10.99.0.2`. FORWARD runs wg0→wg1 -on the VPS with nftables. - -## VPN Addresses - -| Node | VPN IP | -|------|--------| -| VPS wg0 | 10.99.0.1 | -| VPS wg1 | 10.99.1.1 | -| Eagle | 10.99.0.2 | -| Kraken | 10.99.1.2 | - -`kraken` hostname resolves via dnsmasq on VPS (`DNS = 10.99.0.1` in Eagle's -wg0.conf). DNS is scoped to the `kraken` domain only (see DNS section). - -## Persistence - -| Component | Node | How it survives reboot | -|-----------|------|------------------------| -| wg-quick@wg0 + wg-quick@wg1 | VPS | systemd enabled | -| PostUp FORWARD + SNAT rules | VPS | embedded in `/etc/wireguard/wg0.conf` | -| nftables (10.99.0.0/16 forward) | VPS | `/etc/nftables.conf`, systemd enabled | -| dnsmasq (`kraken` → 10.99.1.2) | VPS | `/etc/dnsmasq.d/vpn-hosts.conf`, systemd enabled | -| wg-quick@wg0 | Kraken | systemd enabled | -| wg-auto LaunchDaemon | Eagle | `/Library/LaunchDaemons/top.eagle.wg-auto.plist` | - -## Auto-Connect on Eagle - -`/usr/local/bin/wg-auto.sh` polls every 30 seconds via launchd -(`StartInterval`, **not** WatchPaths): - -- At home (router MAC `f0:79:59:77:9b:70` visible on ARP) → `wg-quick down` -- Off home network → `wg-quick up` - -**Why StartInterval and not WatchPaths:** WatchPaths triggered a race — -`wg-quick down` changes DNS via `networksetup`, which writes to -`/Library/Preferences/SystemConfiguration/`, which re-fires launchd, -tearing the tunnel down immediately after connecting. - -## DNS (Scoped Resolver) - -wg0.conf uses **no global `DNS =`**. PostUp/PostDown manage a -macOS scoped resolver for the `kraken` domain only: - -``` -PostUp = mkdir -p /etc/resolver && \ - echo "nameserver 10.99.0.1" > /etc/resolver/kraken && \ - killall -HUP mDNSResponder -PostDown = rm -f /etc/resolver/kraken && killall -HUP mDNSResponder -``` - -Result: only `kraken` resolves via VPS dnsmasq. Global DNS and Wi-Fi IP -are untouched — prevents address-bar breakage during tunnel transitions. - -## Time Machine - -| Setting | Value | -|---------|-------| -| Old destination (broken) | `smb://timemachine@kraken._smb._tcp.local./TimeMachine` | -| New destination (working) | `smb://timemachine@kraken/TimeMachine` | - -mDNS (`_smb._tcp.local`) doesn't work off the local LAN. VPN DNS (`kraken` -→ 10.99.1.2 via dnsmasq) works from anywhere. Container on Kraken: -`mbentley/timemachine:smb`, `restart: unless-stopped`. - -## Public Keys - -| Node | Public Key | -|------|------------| -| VPS wg0 | `6W6hSw0JFLm0BbyeNp1g7wF7dKKTZmGvPRdir68mz0w=` | -| VPS wg1 | `ssRV2497NQ3Lfzvx/FLO0jDlcCXdK/RReJQ36i0yuR8=` | -| Eagle | `dDgIjBUNguodOHWoz7iFsImvKhteodHcFWM8mMe4UiE=` | -| Kraken | `8kIdCKMIoMsW09/aQX6+pU0SS/rN4PysJL59w17eGRg=` | - -## Diagnostics - -```bash -# Eagle — check tunnel state -sudo wg show -ping kraken - -# VPS -ssh root@91.207.28.205 "wg show all" - -# Kraken -ssh kraken "sudo wg show" - -# Eagle auto-connect log -cat /var/log/wg-auto.log -``` - -## Related - -- [[tech/kraken-network]] — Kraken SSH access, media volume paths -- [[personal-os-architecture]] — Eagle hardware, home infra overview diff --git a/wiki/tech/xgimi-play6-setup.md b/wiki/tech/xgimi-play6-setup.md deleted file mode 100644 index 38e29827..00000000 --- a/wiki/tech/xgimi-play6-setup.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: XGIMI Play 6 — Setup Guide -created: '2026-05-25' -updated: '2026-05-25' -type: tech -namespace: family -tags: [infra, htpc, how-to] -sources: - - family/how-to/xgimi-play6-setup.md -confidence: medium -related: - - "[[tech/htpc-kodi-layout]]" - - "[[tech/htpc-steam-emulators]]" ---- - -# XGIMI Play 6 — Setup Guide - -Chinese GMUI 6 version. ADB over network only (USB ADB non-functional). -IP on home network: `192.168.1.58`. - -## Key Constraints - -- **Architecture:** arm64-v8a (MT9639 chip) — verify all APKs -- **OS:** GMUI 6.0 (Android 11) — Wireless ADB not available (needs Android 12+) -- **ADB:** Network-only via port 5555 - -## Bootstrap Sequence - -### 1. Install via USB flash (before ADB is up) - -APKs must be renamed: `file.apk` → `file.apk.1` (flash drive workaround). -Flash must be FAT32. Install via built-in file manager. - -Install in this order: -1. SystemUI Tuner (github.com/zacharee/Tweaker) — enables ADB -2. Projectivy Launcher — replaces stock XGIMI launcher - -### 2. Enable ADB - -Settings → find ADB → enable. Connect from Mac: - -```bash -brew install android-platform-tools -adb connect 192.168.1.58:5555 -adb devices -``` - -### 3. Install remaining apps via ADB - -```bash -adb -s 192.168.1.58:5555 install /path/to/file.apk -``` - -Recommended apps: LeanKey Keyboard, VLC, Total Commander, -YouTube ReVanced, Кинопоиск TV (4pda.to, regular .apk not .apks). - -### 4. Replace launcher - -```bash -# Disable stock launcher -adb -s 192.168.1.58:5555 shell pm disable-user --user 0 com.xgimi.home -# Set Projectivy as default -adb -s 192.168.1.58:5555 shell cmd package set-home-activity \ - com.spocky.projengmenu/.ui.main.MainActivity -``` - -### 5. Keyboard - -```bash -# Disable Sogou Chinese IME -adb -s 192.168.1.58:5555 shell pm disable-user --user 0 \ - com.sohu.inputmethod.sogou.tv -# Enable LeanKey -adb -s 192.168.1.58:5555 shell ime enable \ - org.liskovsoft.androidtv.rukeyboard/com.liskovsoft.leankeyboard.ime.LeanbackImeService -adb -s 192.168.1.58:5555 shell ime set \ - org.liskovsoft.androidtv.rukeyboard/com.liskovsoft.leankeyboard.ime.LeanbackImeService -``` - -Language switch: long-press **Space** or **Menu** on remote. - -### 6. Russian system language - -```bash -adb -s 192.168.1.58:5555 shell setprop persist.sys.locale ru-RU && \ -adb -s 192.168.1.58:5555 reboot -``` - -## Useful Commands - -```bash -# Check connectivity -nc -zv 192.168.1.58 5555 - -# List all packages -adb -s 192.168.1.58:5555 shell pm list packages - -# Launch app -adb -s 192.168.1.58:5555 shell monkey -p com.package.name 1 - -# Re-enable a disabled package -adb -s 192.168.1.58:5555 shell pm enable com.package.name - -# Find correct launcher activity name -adb -s 192.168.1.58:5555 shell cmd package resolve-activity \ - --brief -c android.intent.category.HOME com.package.name -``` - -## Rollback - -```bash -# Restore stock launcher -adb -s 192.168.1.58:5555 shell pm enable com.xgimi.home -# Restore Chinese keyboard -adb -s 192.168.1.58:5555 shell pm enable com.sohu.inputmethod.sogou.tv -``` - -## See Also - -- [[tech/htpc-kodi-layout]] — HTPC Kodi layout (related home theater setup) -- [[tech/htpc-steam-emulators]] — Bazzite HTPC (different device, same home AV context) diff --git a/wiki/user-profile.md b/wiki/user-profile.md deleted file mode 100644 index b956791a..00000000 --- a/wiki/user-profile.md +++ /dev/null @@ -1,152 +0,0 @@ ---- -namespace: personal -created: '2026-05-15' -updated: '2026-05-16' -last_synced: '2026-05-16' -tags: - - profile - - user - - alex -confidence: 0.9 ---- -# User Profile — Alex - -> Этот файл читают enrichment- и monitoring-агенты как источник истины о пользователе. -> Обновлять при любых изменениях в жизни. Дата последнего обновления: 2026-05-15. - ---- - -## Идентификация - -- **Имя:** Александр (Alex) -- **ДР:** 11.08.1987, Лев -- **GitHub:** mallexxx -- **ADHD** — диагностирован. Гиперфокус, трудности с переключением, поздний старт (~11:00), уходит в работу до 20:00+ - ---- - -## Локации - -| Место | Статус | -|-------|--------| -| Бишкек | Основное проживание. Коворкинг для работы. WireGuard домой → Kraken. | -| Новосибирск (Тайга) | Дом. Летний отпуск + зимовка (ноябрь–март). | -| Алтай | Дача, строится. | -| Дубай | Жил 2 года. Разрабатывал Quran Memorization Program для iPad. | - ---- - -## Семья - -- **Жена:** Наталия -- **Дочь:** Лиза, 7 лет — [[father-profile]] для деталей -- Живут вместе в Бишкеке - ---- - -## Работа - -- **Должность:** macOS Browser Developer / DRI -- **Компания:** DuckDuckGo (async-first, Asana + Zulip) -- Приносит доход, но устал. Хочет в инди. -- **Направление:** serial indie startuper — найти большое решение, реализовать одну небольшую фичу хорошо. Пока сложно с идеями. -- **Активный проект:** AI-психолог / рефлексия-компаньон (Reflect) — приложение для психологической рефлексии без sycophancy. Anti-sycophancy via dual-bot архитектура (Narrator + Analyst). Стек: Skip.tools (SwiftUI → Android), Claude Sonnet/Haiku backend, OpenAI Realtime API для голоса. Планируется в App Store. Юрисдикция — Казахстан ИП или Эстония OÜ. -- **Идеи приложений:** [[app-ideas]] - ---- - -## Навыки - -### Разработка -- Swift / macOS / iOS — основной стек (DDG browser, AXPressDeck, Quran app) -- JavaScript / Node.js -- Docker, WireGuard, Home Assistant, Zigbee -- Arduino, прошивки микроконтроллеров -- AI agents, MCP, LLM orchestration (personal-os) - -### Руками -- Ремонт авто + компьютерная диагностика -- Стройка (два дома построил, вник в процесс полностью) -- Сборка мебели, ремонты -- Паяльник, электроника, электрика - ---- - -## Текущий жизненный контекст - -- Недавно бросил пить (май 2026) — мотивация: неприятные инциденты + ультиматум жены + разговор с другом Серёгой → личное решение -- **Регуляторный стек вместо алкоголя:** зал, сауна, массаж, баня+квас, б/а IPA, чтение вечером, прогулки пешком 20 мин до коворкинга -- Ходит в спортзал (рядом с коворкингом, есть сауна) -- Коворкинг в Бишкеке — структура для ADHD, разделяет работу и семью -- Работает над personal-os как системой для себя - ---- - -## Интересы - -- Home automation (Home Assistant, Zigbee, RPi) -- 3D-печать — [[3d-print-wishlist]] -- **Видеоигры:** игровой ПК собран как TV-приставка (лончер, джойстики, эмуляторы настроены). Играет редко — паттерн накопления без использования. Прогресс: прошёл с Лизой уровень Shovel Knight, запустил Witcher 3 (вводная сцена). -- Настолки: Руммикуб, Шакал, Ticket to Ride, Hive, Rush Hour, Диксит -- Совместные игры с Лизой — [[games-wishlist]] -- Геокэшинг -- Хайкинг (Алтай и окрестности) -- **Готовка:** рецепты собирает, готовит редко в одиночку. В компании / на выезде — шашлыки, куурдак, плов в казане (НГ в Сибири). Паттерн: нужен социальный контейнер. -- Кино — [[movies-watchlist]] -- Чтение — [[books-reading-list]] (широкий диапазон: философия, история, sci-fi, психология); читает вечером регулярно -- Электроника / DIY - ---- - -## Музыка - -- Закончил музыкальную школу по фортепиано -- Ходил на курсы гитары дважды (последний раз ~пол года, потом стоп); сейчас играет на 3 аккордах -- Гитара: **LAVA ME** — лежит, не используется -- Музыкальный гаджет: **Teenage Engineering Pocket Operator** — побаловался, лежит -- Хорошо поёт (каraoke — [[karaoke-songs]]) -- Сделал несколько треков сам (нужно курировать и доделывать) -- Экспериментирует с **Bulka** (AI layer over Strudel — music programming) -- Сохранены курсы (Instagram): продюсирование + импровизация на фортепиано — не начаты -- Паттерн: покупает/сохраняет → не использует без внешней структуры (→ [[psychology/profile]]) - ---- - -## Планы поездок 2026 - -| Период | Направление | Статус | -|--------|-------------|--------| -| Скоро | Алматы — Cirque du Soleil | Планируется | -| 20.07–14.11 | Новосибирск + трип на машине в Братск (к родителям Наталии) | Планируется | -| Ноябрь–март | Новосибирск (зимовка + НГ) → обратно в Бишкек | Регулярно | -| Желаемое | Турция / острова — куда вписать непонятно | Wishlist | - ---- - -## Психологическое направление - -- С психологом не работает (сессии были, но не регулярно) -- Хочет добавить в personal-os: регулярные дайджесты, проработки, анализ прогресса -- AI-психолог как постоянный компонент системы -- Идея непредвзятого агента: обсуждать Алекса "о нём" (в 3м лице), а не "обо мне" — чтобы избежать сycophancy → [[unprejudiced-ai-psychologist]] -- Искать скиллы AI-психолога для ассистентов - ---- - -## Финансы - -- Вёл детальную Excel-таблицу с мультивалютными счетами и расходами -- Последнее время не ведёт — "денег хватает" -- Открытые вопросы: инвестиционная стратегия, дополнительный доход, пенсионное планирование -- Есть идея budget-app в [[app-ideas]] и [[budget-app-features]] - ---- - -## Неизвестно / уточнить - -- [ ] ДР Наталии -- [ ] ДР Лизы (точная дата) -- [ ] Митя (одноклассник) — ДР "14.04 или около того", уточнить -- [ ] Лена Москаленко — ДР "12 сентября что ли", уточнить (попробовать через ВКонтакте) -- [ ] Школа Изобретателей — что за программа, чему учат -- [ ] Музыкальный плейлист Лизы — добавить в её профиль diff --git a/wiki/vault-filling-guide.md b/wiki/vault-filling-guide.md deleted file mode 100644 index 8cdba0cf..00000000 --- a/wiki/vault-filling-guide.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -namespace: work -tags: [system, vault, guide] -last_synced: 2026-04-27 -confidence: 1.0 ---- - -# Vault Filling Guide - -How to populate `~/obsidian/`. Eagle can write to any section below except `wiki/` and `raw/`. - -## Directory Map - -``` -~/obsidian/ -├── wiki/ ← LLM-generated ONLY (wiki-ingest). Never write here manually. -├── raw/ ← Symlinks to external files ONLY. Never write content here. -├── work/ ← Alex's work notes. Eagle can write with confirmation. -│ ├── projects/ One file per active project. -│ ├── decisions/ Architectural/process decisions with date prefix. -│ └── tech-design/ References to designs, review notes. -├── personal/ ← Alex's personal notes. Eagle can write with confirmation. -│ ├── documents/ WHERE docs live (not the docs themselves). -│ ├── instructions/ Personal how-tos and procedures. -│ └── projects/ Personal side projects. -└── family/ ← Household knowledge. Eagle can write with confirmation. - ├── how-to/ Practical guides (devices, home equipment, procedures). - ├── documents/ WHERE family documents live. - ├── contacts/ Emergency contacts, doctors, services. - └── schedule/ Recurring schedules, school, events. -``` - -## File Naming - -- `work/projects/` → `kebab-case-project-name.md` (e.g. `ios-duck-ai-toggle.md`) -- `work/decisions/` → `YYYY-MM-topic.md` (e.g. `2026-04-personal-os-arch.md`) -- `family/how-to/` → `kebab-case-topic.md` (e.g. `truenas-access.md`, `router-reset.md`) -- `family/contacts/` → `emergency.md`, `doctors.md`, `services.md` -- `family/documents/` → `apartment.md`, `insurance.md`, `passports.md` (location pointers, not the files) - -## Frontmatter - -Every file should have: -```yaml ---- -namespace: work | personal | family -tags: [tag1, tag2] -created: YYYY-MM-DD -updated: YYYY-MM-DD ---- -``` - -## What Goes Where - -| Info type | Location | -|-----------|----------| -| Active work project status, decisions, links | `work/projects/SLUG.md` | -| "We decided X because Y" (architectural) | `work/decisions/YYYY-MM-TOPIC.md` | -| Home network / NAS / router config | `family/how-to/DEVICE.md` | -| Where passport/insurance/lease is stored | `family/documents/TOPIC.md` | -| Emergency contacts, doctors | `family/contacts/CATEGORY.md` | -| Recurring events, school schedule | `family/schedule/TOPIC.md` | -| Personal project notes | `personal/projects/SLUG.md` | -| Personal procedures (backups, etc.) | `personal/instructions/TOPIC.md` | - -## Eagle Write Protocol - -1. Show draft content before writing (never silently create) -2. Confirm namespace (`work` / `personal` / `family`) -3. Write the file -4. Run `cd ~/obsidian && git add -A && git commit -m "..."` to save - -## What Eagle Should NOT Do - -- Write anything to `wiki/` — that's wiki-ingest's job -- Modify `raw/` — those are symlinks managed manually -- Create files without showing the content first -- Overwrite existing files without showing a diff diff --git a/wiki/wiki-ingest-process.md b/wiki/wiki-ingest-process.md deleted file mode 100644 index 5e801b25..00000000 --- a/wiki/wiki-ingest-process.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -source: raw/wiki-ingest-prompt.md -content_hash: 29f6a0914d428cf62eeb2a832d6b3048edf3e1d16aa7714c09f686377394d128 -namespace: work -last_synced: 2026-04-27 -confidence: 0.9 -tags: [wiki, ingest, agent, prompt] ---- - -# Wiki Ingest Process - -The agent prompt that maintains `~/obsidian/wiki/` as a synthesised -knowledge base over external project files exposed via symlinks in -`~/obsidian/raw/`. Run locally by `claude -p` (the launchd job -`run-wiki-ingest.sh` at 22:00) — not via API, because file-system -writes require a local Claude Code session. See -[[personal-os-architecture]] for where this fits in the broader system. - -## Discovery loop - -For every file in `~/obsidian/raw/`: - -1. Read the file (skip if the symlink target is missing). -2. Compute SHA256 with `shasum -a 256`. -3. Look for a wiki page whose frontmatter has `source: raw/`. -4. If a page exists and its `content_hash` already matches, skip. -5. Otherwise enqueue for synthesis. - -If nothing changed, the agent prints -"Wiki is up to date. Nothing to ingest." and exits. - -## Synthesis rules - -- Wiki pages are named by **topic**, not source filename - (e.g. `personal-os-schema.md`, not `schema.md`). -- Output is a **synthesis**, never a verbatim copy. Extract facts, - decisions, and structure. Hard cap of 800 words per page; split - into linked pages if the topic is larger. -- Use `[[double brackets]]` for cross-references between wiki pages. - -## Page format - -Frontmatter is the source of truth for incremental ingestion: - -```yaml -source: raw/ -content_hash: -namespace: work -last_synced: -confidence: 0.8 -tags: [tag1, tag2] -``` - -Body has a title, synthesis prose, a `## Key Points` list, and a -`## Related` line of `[[wiki-links]]`. - -## Confidence ladder - -- **1.0** — reserved for human-written notes in `work/`, `personal/`, - `family/`. The agent must never edit these files. -- **0.9** — highly structured / authoritative source (e.g. a schema). -- **0.8** — clear single source. Default. -- **0.6** — inferred or partial content. - -## Hard rules - -- Never copy source files verbatim — always synthesise. -- Never edit any file with `confidence: 1.0`. -- Never process files in `namespace: family` unless explicitly told. -- Always update `content_hash` and `last_synced` after writing a page. -- Skip broken symlinks; do not create a wiki page for them. - -## Reporting - -After the run, the agent emits a summary: - -``` -Wiki Ingest — - -Processed: N files -Created: N new pages -Updated: N pages -Skipped: N (unchanged) - -Pages updated: -- wiki/ (source: raw/) -``` - -## Key Points -- Hash-based incremental: re-runs are cheap when nothing changed. -- Topic-named pages decouple the wiki from source-file naming. -- Frontmatter `source` + `content_hash` is the ingestion contract; - the [[personal-os-schema]] mirrors the same idea in `wiki_pages`. -- Human-edited (confidence 1.0) pages are immutable to the agent — - the trust boundary between synthesis and curated knowledge. -- Local-only execution: writes to `~/obsidian/` need a real FS, - so the job runs under launchd via `claude -p`, not the API. - -## Related -[[personal-os-architecture]] [[personal-os-schema]] diff --git a/work/briefs/daily/2026-05-23.md b/work/briefs/daily/2026-05-23.md deleted file mode 100644 index df9d888b..00000000 --- a/work/briefs/daily/2026-05-23.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -## Daily Brief — 2026-05-23 (Saturday) - -### ✨ Morning -On this day in 1995, Sun Microsystems unveiled Java to the world — its mascot Duke was originally a stage prop, a "dancing software agent" demo'd to convince the audience that programs could leap between machines. Three decades later it still runs roughly everything you can't see. - -🚶 Step outside for a walk before opening anything — it's the weekend. - -## Plan for Today - -1. ☕ Saturday — off per weekly plan. Nothing scheduled. -2. Optional, ≤10 min: glance at [iOS Address onboarding kickoff](https://app.asana.com/0/0/1214592943696234) — see if Dominik replied to your async-kickoff question from Thursday. No action needed; just primes Monday. - -*(Everything else is queued for Mon 2026-05-25 — see [weekly plan](/Users/admin/obsidian/work/briefs/weekly/plan-2026-05-18.md).)* - ---- - -### 🔴 Urgent / Overdue -**None require action today (weekend).** Queued for Monday morning per the weekly plan: - -- 🔴 **OVERDUE** [DRI] — [PR Check is failing on main](https://app.asana.com/0/0/1214797526093576) — due 2026-05-15 (8d overdue), `inbox`. Main-branch CI failure; P1-style signal that's been sitting. Diagnose first thing Monday before deep work. -- 🟠 **NEEDS ACTION (Mon)** [DRI] — [PR: iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1214425079182350) — due 2026-05-26. Alessandro asked 2026-05-22 whether the toggle should remain hidden until onboarding completes; Alex committed publicly to "review pass on Monday and assign to [reviewer]." Alex IS the blocker. -- 🟠 **NEEDS ACTION (Mon)** [DRI] — [Full Analysis](https://app.asana.com/0/0/1214900901154134) — due 2026-05-22 (1d overdue), `inbox`. Title is ambiguous — open Monday and either action or re-scope/close. - -**Backlog cluster (informational, not urgent):** ~13 items in `quick_wins` / `do_later` / `hack_days` aged 30–400+ days (Feature flag warnBeforeQuit, Pinned tab opens link in background, Address bar text selection, Assertion Failure Pixel Anomaly 2025/09/15, Tab preview stuck, Duo login Grafana, etc.). Explicitly deprioritized sections — leave for a dedicated backlog pass, not urgent. - -### 🟠 Needs Action Today -None — weekend. - -### 🟡 Delegated — Follow Up Needed -- ⚠️ HR-adjacent flag: there's an HR-related task ([Alex Shurgin – HR](https://app.asana.com/0/0/1215056211788084)) in `inbox` modified yesterday. Handle privately when at desk; not a delegated-followup item, just a heads-up. -- **[Privacy Triage: Apple — iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1214965405681675)** — Jake Abel, due 2026-05-21 (2d overdue). **Blocks closing the demo-tracker TP.** Nudge on Monday: "Hey Jake — any blockers on the triage? Trying to wrap the TP this week." -- **[Pinned tab activates in other window unpinning](https://app.asana.com/0/0/1210705465887828)** — Juan Pereira, due 2026-05-22 (1d overdue). macOS bug; low-urgency. Nudge if no movement by Tue. - -*(No merged-but-not-closed GitHub correlations to flag — the one delegated PR row had no GitHub match.)* - -### 🔵 Rhythms -- **TP**: [iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1213551050320249) — `top_priority`, last activity 2026-05-22. Transitioning to [iOS Address onboarding](https://app.asana.com/0/0/1214592943696234) on Mon 2026-05-25. **Next TP Thread open ✅** — Alex commented 2026-05-22 on both the TP-Threads task and the new TP task announcing the handoff. -- **No active rotation** (macOS Maintenance just completed yesterday; Tom Strba picks up May 29 cycle). -- **Upcoming this week:** - - **Mon 2026-05-25** — O-N Weekly + O-L Weekly + async kickoff of new TP. Items prepped in weekly plan; no extra prep needed today. - - **Tue 2026-05-26** — 1:1 with Dominik (confirmed not OOO). **Career agenda items not yet added** to [Dominik :: Alex Regular 1:1 Agenda](https://app.asana.com/0/0/1214933759913756) — weekly plan calls for Project Advisor / Primary AOR target / Christie EP2 status / EP3 gap items. 15-min task; do it Mon or early Tue. Also Apple Weekly Team Meeting same day. - - **Wed 2026-05-27** — 🏖️ AFK (holiday). - ---- - -*Generated 2026-05-23 from `asana_context.md` snapshot @ 04:23 UTC + weekly plan. Yesterday's brief (2026-05-22) not on disk — anchor derived from weekly plan + DB state only.* diff --git a/work/briefs/daily/2026-05-24.md b/work/briefs/daily/2026-05-24.md deleted file mode 100644 index 72f4088c..00000000 --- a/work/briefs/daily/2026-05-24.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -## Daily Brief — 2026-05-24 (Sunday) - -### ✨ Morning -On this day in 1883, the Brooklyn Bridge opened to the public. A week later a stampede killed a dozen people who feared it was collapsing — so P.T. Barnum settled the matter by parading 21 elephants across it to prove it was solid. The bridge stayed up; the circus moved on. - -💧 Start with a glass of water before anything else — it's a slow Sunday. - -## Plan for Today - -1. ☕ Sunday — off per weekly plan. No actions required. -2. Optional, ≤5 min: glance at [iOS Address onboarding kickoff](https://app.asana.com/0/0/1214592943696234) — confirm Dominik replied to your async-kickoff question (still showing modified 2026-05-23). If he did, you're set for Monday's async kickoff; if not, plan to ping him first thing Mon. - -*(Everything substantive is queued for Mon 2026-05-25 — see [weekly plan](/Users/admin/obsidian/work/briefs/weekly/plan-2026-05-18.md). New TP cycle starts tomorrow.)* - ---- - -### 🔴 Urgent / Overdue -**None require action today (weekend).** Carried from yesterday — queued for Monday morning per the weekly plan: - -- 🔴 **OVERDUE** [DRI] — [PR Check is failing on main](https://app.asana.com/0/0/1214797526093576) — due 2026-05-15 (9d overdue), `inbox`. Main-branch CI failure; P1-style signal that's been sitting. Diagnose first thing Monday before deep work. -- 🟠 **NEEDS ACTION (Mon)** [DRI] — [PR: iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1214425079182350) — due 2026-05-26. Alessandro's 2026-05-22 toggle question still unanswered; Alex publicly committed to "review pass on Monday and assign to [reviewer]." Alex IS the blocker. -- 🟠 **NEEDS ACTION (Mon)** [DRI] — [Full Analysis](https://app.asana.com/0/0/1214900901154134) — due 2026-05-22 (2d overdue), `inbox`. Title is ambiguous — open Monday and either action or re-scope/close. - -**Backlog cluster (informational, not urgent):** ~13 items in `quick_wins` / `do_later` / `hack_days` aged 30–400+ days. Explicitly deprioritized sections — leave for a dedicated backlog pass. - -### 🟠 Needs Action Today -None — weekend. - -### 🟡 Delegated — Follow Up Needed -- **[Privacy Triage: Apple — iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1214965405681675)** — Jake Abel, due 2026-05-21 (3d overdue). **Blocks closing the demo-tracker TP.** Nudge Monday morning: "Hey Jake — any blockers on the triage? Trying to wrap the TP this week." -- **[Pinned tab activates in other window unpinning](https://app.asana.com/0/0/1210705465887828)** — Juan Pereira, due 2026-05-22 (2d overdue). macOS bug; low-urgency. Nudge if no movement by Tue. - -*(No merged-but-not-closed GitHub correlations to flag — only delegated PR row has no GitHub match.)* - -### 🔵 Rhythms -- **TP**: [iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1213551050320249) — `top_priority`, last activity 2026-05-22. Transitioning to [iOS Address onboarding](https://app.asana.com/0/0/1214592943696234) on Mon 2026-05-25. **Next TP Thread open ✅** — handoff already announced. -- **No active rotation** (macOS Maintenance handed off; Tom Strba picks up May 29 cycle). -- **Upcoming this week:** - - **Mon 2026-05-25** — O-N Weekly + O-L Weekly + async kickoff of new TP. Items prepped in weekly plan. - - **Tue 2026-05-26** — 1:1 with Dominik (confirmed not OOO). ⚠️ **Career agenda items still not added** to [Dominik :: Alex Regular 1:1 Agenda](https://app.asana.com/0/0/1214933759913756) — Project Advisor / Primary AOR target / Christie EP2 status / EP3 gap. 15-min task; do Mon or early Tue. Also Apple Weekly Team Meeting same day. - - **Wed 2026-05-27** — 🏖️ AFK (holiday). - ---- - -*Generated 2026-05-24 from `asana_context.md` snapshot @ 01:07 UTC + weekly plan. Quiet day: 0 new comments in last 24h, 7 task changes (mostly auto-completes from yesterday's maintenance cycle).* diff --git a/work/briefs/daily/2026-05-25.md b/work/briefs/daily/2026-05-25.md deleted file mode 100644 index 529e5b95..00000000 --- a/work/briefs/daily/2026-05-25.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -## Daily Brief — 2026-05-25 - -### ✨ Morning -Today is **Towel Day** — the annual celebration of Douglas Adams and *The Hitchhiker's Guide to the Galaxy*. Adams wrote: "A towel is about the most massively useful thing an interstellar hitchhiker can have." Don't panic. -🚶 Take a short walk before diving in. - -## Plan for Today - -1. ⚡ Close [Alex M next Top Priority (May/25)](https://app.asana.com/0/0/1215058019347550) — thread opened May 22, purpose served, auto-reminder fired. Mark complete. [2 min] -2. 🔴 **Try Visiting a Site: Background [1d]** — due TODAY. Alessandro confirmed design (May 19): taller background. Implement or explicitly defer to follow-up project. -3. 🔴 **PR: iOS Demo tracker blocking** — Monday review pass + respond to Alessandro's toggle question → assign PR to Pete. Due tomorrow. -4. 🟠 Fix CI on PR #4668 (UTI onboarding dialog flow) — red CI blocking review. -5. 🟠 DRI async: respond to Alessandro's May 21 request to run test cases after rebase. -6. 🟠 iOS Address onboarding TP kick-off (new TP starts today) — post async kick-off comment. -7. 🟠 Postmortems: Security Triage ×2 — created May 21, 4 days with no draft. -8. 📋 7 PR reviews queued — batch after TP block. - ---- - -### 🔴 Urgent / Overdue - -**[OVERDUE] DRI** — [iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1213551050320249) (due 2026-05-22) -Context: PR merged to release branch (May 20). UTI issues task still open and blocking public UTI release. Alessandro (May 21) recommended running test cases again after rebase — Alex hasn't responded. -Action: Reply in [DRI async task](https://app.asana.com/0/0/1213551072611261) confirming test result; close TP task once UTI task ships. - -**[OVERDUE] DRI** — [PR Check failing on main - testWhenTabWithConnectionLostError...](https://app.asana.com/0/0/1213975496167929) (due 2026-04-22, active section, 5 weeks stale) -Context: CI test failure sitting in `active` section for over a month. -Action: Triage — check current state on main, fix or document as known issue with ETA. - -**[NEEDS CLOSE]** — [Alex M next Top Priority (May/25)](https://app.asana.com/0/0/1215058019347550) (due 2026-05-23) -Context: You announced next TP on May 22, auto-reminder fired May 24. -Action: Close/mark complete. - -**[STALE] DRI** — [Full Analysis](https://app.asana.com/0/0/1214900901154134) (due 2026-05-22) -Context: You posted comprehensive GDPR/Hermes analysis on May 20. Appears complete. -Action: Close task if analysis is final. - -**Backlog cluster** (inbox/planning items with stale dates, no recent activity — informational only, not ranked): -Bug: Tab preview stuck (2025-04) · Duo login to Grafana (2025-07) · Assertion Failure Pixel Anomaly (2025-09) · Review Overdue Tasks Summary (2026-01) · Text selection in address bar (2026-05-01) · Pinned tab opens link in background (2026-05-01). Fold into quarterly triage. - ---- - -### 🟠 Needs Action Today - -**DRI — New TP kick-off** -[iOS Address onboarding conflicts with unified input and ship AI onboarding winner](https://app.asana.com/0/0/1214592943696234) — due 2026-06-05 -You posted May 22: "starting the project next week (May/25)"; kick-off slots taken, proposing async. -Action: Post async kick-off comment; confirm with Costas async is OK. - -**AUTHOR — PR: iOS Demo tracker blocking** (due 2026-05-26) -[PR: iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1214425079182350) -Alessandro asked (May 22): "Shouldn't the toggle remain hidden until onboarding completes?" — unanswered. Pete is waiting for assignment. -Action: Respond to Alessandro's toggle question → do review pass → assign PR to Pete. - -**DRI — Due today** -[Try Visiting a Site: Background [1d]](https://app.asana.com/0/0/1214828145455342) -Alessandro confirmed design (May 19): taller background to fill empty screen. Costas noted nice-to-have — port to follow-up if time doesn't allow. -Action: Implement OR move to follow-up project and close. - -**DRI — UTI active blocker** -[Address Universal Input (UTI) issues](https://app.asana.com/0/0/1214965000075517) — no due date, blocking public UTI release -PR #4668 (Fix UTI mode onboarding dialog flow): 🔴 CI failing, no reviewer. -Action: Fix CI on #4668. - -**DRI — Postmortems (4 days old, no drafts)** -[Postmortem: Security Triage: AI Agent use via likely external Discord service](https://app.asana.com/0/0/1214996544314182) -[Postmortem: Security Triage AI: edit link](https://app.asana.com/0/0/1214996544314187) -Both created May 21, assigned to Alex, no content added. -Action: Draft both postmortems; at minimum add a status comment with timeline. - -**PR Reviews — batch (7 requests)** -Batch after TP block: macOS: Simplify TabBarViewController · Bump nativeStorage to 100% · Enable ad blocking soft launch · Improve value transformer failure observability · Avoid force unwrap crash in debugDescription · Fix maestro tests · Enable iPad toggle iOS 7.211 - ---- - -### 🟡 Delegated — Follow Up Needed - -**OVERDUE** -[Privacy Triage: Apple - iOS: Demo tracker blocking](https://app.asana.com/0/0/1214965405681675) — Jake Abel, due 2026-05-21 (4 days overdue). No activity since May 20. -Follow-up: "Jake — any update on the privacy triage? It was due May 21." - -[Pinned tab activates in other window unpinning](https://app.asana.com/0/0/1210705465887828) — Juan Pereira, due 2026-05-22 (3 days overdue). -Follow-up: "Juan — any progress on the pinned tab unpinning bug?" - -**DUE TODAY — new TP project** -[Hide Free plan • Upgrade in onboarding [0.5d]](https://app.asana.com/0/0/1215009192158952) — due today, no assignee recorded. -[Disable back button during duck.ai onboarding [1d]](https://app.asana.com/0/0/1215009192158960) — due today, no assignee recorded. -Action: Confirm who owns these tasks or explicitly assign. - -**STALE (batch follow-up)** -Login autofill empty field (Deepankar, due 2025-11-17) · assertionFailure when DBP url opened (Anh Do, due 2025-12-12) · Localization - 2-5 days (unassigned, due 2026-04-28). Recommend one message per person to close or re-scope. - ---- - -### 🔵 Rhythms - -**TP:** [iOS Address onboarding conflicts with unified input and ship AI onboarding winner](https://app.asana.com/0/0/1214592943696234) — starting today, due 2026-06-05. -Prev TP (Demo tracker): PR merged to release branch, UTI task pending → close once UTI ships. -Next TP Thread: ✅ Opened May 22 — close the [thread task](https://app.asana.com/0/0/1215058019347550) today (item #1 in plan). - -**Upcoming this week:** -- 📅 Today: O-N Weekly + O-L Weekly meetings (Dominik hosting O-L — agenda light, add topics if needed) -- 📅 Tomorrow (May 26): Apple Weekly Team Meeting + 1:1 with Dominik — agenda items ready? -- 🏖️ Wednesday May 27: AFK (holiday) — anything to hand off before EOD tomorrow? -- 📅 June 8–12: WWDC'26 (partly AFK) diff --git a/work/briefs/daily/2026-05-26.md b/work/briefs/daily/2026-05-26.md deleted file mode 100644 index a8f3b425..00000000 --- a/work/briefs/daily/2026-05-26.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -## Daily Brief — 2026-05-26 - -### ✨ Morning -On this day in 1969, Apollo 10 splashed down after circling the Moon just 8 miles above its surface — the closest humans had been without landing. NASA deliberately loaded the lunar module with insufficient fuel to prevent the crew from attempting a landing on their own. The ultimate trust exercise. -💧 Start with a glass of water. - -## Plan for Today - -1. ⚡ [Desktop Browser Feature Owner Survey](https://app.asana.com/0/0/1214940335721015) — anonymous, 5-min timebox, due today. [5 min] -2. 🔴 Prep [1:1 agenda](https://app.asana.com/0/0/1214933759913756) — add 4 career items before meeting today (Project Advisor, Primary AOR, Christie EP2/3, EP3 gap). -3. 🔴 [PR: iOS Demo tracker](https://app.asana.com/0/0/1214425079182350) — Pete reassigned after test steps issue; due today. Update steps → re-assign to Pete. -4. 🟠 Reply to Costas: O-N meeting (May 27) = AFK day → propose async kick-off or Thursday slot. (Costas also confirmed you as Project Advisor for the new TP.) -5. 🟠 [Try Visiting a Site: Background [1d]](https://app.asana.com/0/0/1214828145455342) — 1 day overdue. Implement today or move to follow-up project and close. -6. 🟠 [Persist 'You've got this' dialogue [0.5d]](https://app.asana.com/0/0/1215009192158950) — due today, first new-TP subtask. -7. 🟠 Assign reviewer to PR #4668 (UTI) — CI is now ✅. -8. 🟠 Security postmortems ×2 — 5 days old, no drafts. Add status comment at minimum. -9. 📋 7 PR reviews queued — batch after TP block. - ---- - -### 🔴 Urgent / Overdue - -**[OVERDUE] DRI** — [Try Visiting a Site: Background [1d]](https://app.asana.com/0/0/1214828145455342) (due 2026-05-25, 1 day overdue) -Context: Was due yesterday. Alessandro confirmed design (May 19): taller background to fill empty screen. Costas flagged as nice-to-have if time constrained. -Action: Implement today OR explicitly move to follow-up project and close. - -**[NEEDS CLOSE] DRI** — [Full Analysis](https://app.asana.com/0/0/1214900901154134) (due 2026-05-22, 4 days overdue) -Context: Analysis posted May 20. Likely complete but still open in inbox. -Action: Close task if analysis is final. - -**Backlog cluster** (informational — stale dates expected, not ranked above active work): CI failing test (active, Apr 22) · PR Check failing main (inbox, May 15) · Tab preview stuck (2025) · Duo login Grafana (2025) · Assertion Failure Pixel (2025) · Review Overdue Tasks meta (Jan 2026) · Text selection in address bar · Pinned tab opens in background. - ---- - -### 🟠 Needs Action Today - -**AUTHOR — PR: iOS Demo tracker (DUE TODAY, REASSIGNED)** -[PR: iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1214425079182350) — due today -Pete tested yesterday (May 25): found test steps were wrong, assigned back to Alex. Pete's last comment (14:42): "please update the steps and then I'll test again when you have confirmed they are all correct." Alex responded with a link (14:21) but Pete posted after — Alex is the blocker. -Action: Update test steps in the Asana task → re-assign PR to Pete. - -**DRI — 1:1 Agenda (DUE TODAY)** -[Dominik :: Alex Regular 1:1 Agenda](https://app.asana.com/0/0/1214933759913756) — 1:1 is today -Career items to add (per weekly plan, in priority order): -1. Project Advisor — "No progress since last cycle; want to commit to Part 1 of Readiness doc this cycle." (Note: Costas just confirmed you as Project Advisor for iOS Address onboarding — useful context.) -2. Primary AOR target — "Which AOR is realistic to pursue as primary by next review (~Aug 2026)?" -3. Christie EP2/3 calibration — "Did she submit? Status still unclear." -4. EP3 gap check — "Beyond Feb discussion, what's the next gap to close?" -Action: Add 4 items above before the meeting. - -**DRI — New TP kick-off slot conflict (NEW)** -[iOS Address onboarding TP](https://app.asana.com/0/0/1214592943696234) — Costas comment (May 25 04:12): room in O-N Weekly meeting (May 27) for kick-off; also confirmed Alex as Project Advisor. -⚠️ May 27 = AFK (holiday). You will not be at the O-N meeting. -Action: Reply to Costas today — flag AFK conflict, propose async kick-off OR push to Thursday. - -**DRI — Due today** -[Persist 'You've got this' dialogue in non-focused state [0.5d]](https://app.asana.com/0/0/1215009192158950) — first implementation subtask of new TP. 0.5d estimate. -Action: Start implementation block after TP-block. - -**DRI — PR #4668 reviewer (UTI)** -PR #4668 (Fix UTI mode onboarding dialog flow) — CI is now ✅ (was red yesterday). No reviewer assigned. -Action: Assign a reviewer to #4668. - -**DRI — Security postmortems ×2 (5 days old)** ⚠️ Security content — handle privately -[Postmortem: Security Triage: AI Agent use via likely external Discord service](https://app.asana.com/0/0/1214996544314182) · [Postmortem: Security Triage AI: edit link](https://app.asana.com/0/0/1214996544314187) -Created May 21, assigned to Alex, no content added. Five days without a draft approaches the OVERDUE threshold for High-severity incidents. -Action: Draft both OR add a status comment with timeline on each. - -**PR Reviews — batch (7 requests, unchanged)** -Batch after TP block: macOS: Simplify TabBarViewController · Bump nativeStorage to 100% · Enable ad blocking soft launch · Improve value transformer failure observability · Avoid force unwrap crash in debugDescription · Fix maestro tests · Enable iPad toggle iOS 7.211 -(Plus 5 GitHub mentions that may require review input.) - ---- - -### 🟡 Delegated — Follow Up Needed - -**OVERDUE (5 days)** -[Privacy Triage: Apple — iOS: Demo tracker blocking](https://app.asana.com/0/0/1214965405681675) — Jake Abel, due 2026-05-21 -No activity since May 20. Directly blocks closing last week's TP. -Follow-up: "Jake — any update on the privacy triage? It was due May 21 and is blocking close-out." - -**DUE YESTERDAY — unassigned (new TP project)** -[Hide Free plan • Upgrade in onboarding [0.5d]](https://app.asana.com/0/0/1215009192158952) · [Disable back button during duck.ai onboarding [1d]](https://app.asana.com/0/0/1215009192158960) — both due May 25, no assignee recorded. -Action: Confirm who owns these or explicitly assign. - -**DUE TOMORROW** -[Pinned tab activates in other window unpinning](https://app.asana.com/0/0/1210705465887828) — Juan Pereira, due 2026-05-27 -Quick check-in today before AFK. - -**Stale batch (no change)** -Login autofill empty field (Deepankar, due 2025-11-17) · assertionFailure DBP url (Anh Do, due 2025-12-12) · Localization (unassigned, due 2026-04-28) — one follow-up message per person to close or re-scope. - ---- - -### 🔵 Rhythms - -**TP:** [iOS Address onboarding conflicts with unified input and ship AI onboarding winner](https://app.asana.com/0/0/1214592943696234) — due 2026-06-05. Declared this week. Not stale. -Next TP Thread: ✅ Opened May 22, bot task closed May 25. - -**Upcoming this week:** -- 📅 Today: Apple Weekly Team Meeting + 1:1 with Dominik (agenda prep = item #2 in plan) -- 🏖️ Tomorrow (May 27): AFK (holiday) — reply to Costas TODAY about kick-off slot conflict -- 📅 Thu May 28: Deep work — [Address Bar Toggle: Animated Assets [2-3d]](https://app.asana.com/0/0/1214627423981798) (primary), Try Visiting a Site (secondary) -- 📅 Fri May 29: Close loops + weekly review + handoff macOS App Maintenance to Tom -- 📅 Jun 8–12: WWDC'26 (partly AFK) diff --git a/work/briefs/daily/2026-05-27.md b/work/briefs/daily/2026-05-27.md deleted file mode 100644 index 3ac3c8f0..00000000 --- a/work/briefs/daily/2026-05-27.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -## Daily Brief — 2026-05-27 - -### ✨ Morning -On May 27, 1931, Auguste Piccard and Paul Kipfer floated to 15,781 meters above Earth in a pressurized aluminum sphere — becoming the first humans to reach the stratosphere. They launched from Augsburg in the morning and landed on an Austrian glacier at night. All by balloon. -🌿 Step outside for 5 minutes before opening Slack. - -**🏖️ AFK today — holiday. No work scheduled. Brief is awareness-only for Thursday return.** - -Today's focus per weekly plan: 🏖️ AFK (holiday) — no work scheduled. New signals since yesterday: 23 task changes, 10 new comments. - ---- - -**Yesterday's wins:** -✅ iOS: Introduce new screen (prior TP) — closed with full experiment wrap-up summary -✅ Address Universal Input (UTI) issues — complete -✅ New TP kick-off — complete -✅ 1-Must set and completed - ---- - -## Plan for Today - -1. 🏖️ Off today — enjoy the holiday. - -**Thursday return priorities (awareness only):** -2. 🔴 Draft Incident Postmortem: AI Agent use — **due tomorrow (Thu May 28)** -3. 🟠 Desktop Browser Feature Owner Survey — 1 day overdue; 5-min timebox, first thing -4. 🟠 Respond to Alessandro's AB1-AB5 kick-off feedback on new TP -5. 🟠 Nudge Jake on Privacy Triage (6d overdue, blocks Demo tracker close) -6. 🟠 Reply to Nastia re: Warn Before Quit pixels — quick yes/no -7. 📋 9 PR reviews queued — batch after TP block - ---- - -### 🔴 Urgent / Overdue - -**[OVERDUE] DRI** — [iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1213551050320249) (due 2026-05-22, 5d overdue) -Context: Prior TP parent task. Privacy Triage still delegated to Jake (6d overdue). PR task (1214425079182350) absent from snapshot — likely completed. -Action Thu: Verify PR status; nudge Jake on privacy triage; close parent task when clear. - -**[OVERDUE] DRI** — [Desktop Browser Feature Owner Survey](https://app.asana.com/0/0/1214940335721015) (due 2026-05-26, 1d overdue) -Context: Anonymous, 5-min timebox. Was item #1 yesterday; no completion recorded. -Action Thu: Complete first 5 minutes of the day. - -**[OVERDUE] DRI** — [Full Analysis](https://app.asana.com/0/0/1214900901154134) (due 2026-05-22, 5d overdue) -Context: Analysis likely final. Still open in inbox with no recent activity. -Action Thu: Close if analysis is done. - -**[OVERDUE] AOR** — [PR Check is failing on main](https://app.asana.com/0/0/1214797526093576) (due 2026-05-15, 12d overdue) -Context: CI failing on main branch. In inbox. No activity since May 17. -Action Thu: Diagnose before deep-work block. - -**Backlog cluster** (informational — stale dates expected): CI failing test (active, Apr 22) · Tab preview stuck · Duo login Grafana · Assertion Failure Pixel · Review Overdue Tasks meta (Jan 2026) · Text selection in address bar · Pinned tab opens in background. - ---- - -### 🟠 Needs Action Today - -🏖️ AFK — no actions today. - -**For Thursday return:** - -**AUTHOR — New TP: Alessandro's AB1-AB5 kick-off feedback (NEW)** -[iOS Address onboarding TP](https://app.asana.com/0/0/1214592943696234) — Alessandro posted 5 scope questions on the kick-off task (2026-05-26 08:25). Key: AB1 — "Ship AI onboarding winner" task needs implementation time estimate; AB2 — animated assets assignment/scope questions. Alex posted kick-off update at 15:30 but did not explicitly address Alessandro's points. -Action Thu: Reply to Alessandro's AB1-AB5 in TP thread; add estimate to Ship AI onboarding winner task. -Also: Reply on [DRI <> Project Advisor async](https://app.asana.com/0/0/1213551072611261) confirming Ship Review task (gid 1215009192158961) already exists. - -**DRI — Incident Postmortem: AI Agent use (DUE TOMORROW)** -[Incident Postmortem: AI Agent use via likely external Discord service](https://app.asana.com/0/0/1214996544314182) — due 2026-05-28 (Thu). 6 days since assignment, no draft yet. -Action Thu: Draft postmortem OR add status comment with timeline — first priority of the day. -Also open: [Postmortem: Security Triage AI: edit link](https://app.asana.com/0/0/1214996544314187) — no due date, 6 days old. Address alongside the above. - -**DRI — Old TP project close-out** -Costas requested (2026-05-26 12:53) a summary pinned comment on the experiment results before closing the project. Alex posted a wrap-up at 14:29. Verify the pinned summary fully addresses Costas's ask — if so, the project can be marked complete. - -**DRI — Nastia's query on Warn Before Quit pixels (NEW)** -[Remove or re-evaluate Warn Before Quit pixels](https://app.asana.com/0/0/1212808567112832) — Nastia commented 2026-05-26 16:50: "do you still need these pixels?" Quick yes/no reply needed. - -**DRI — Follow-up: Inline Text Images to TypingTextAnimation (due Thu)** -[Follow-up: add support of Inline Text Images to TypingTextAnimation](https://app.asana.com/0/0/1214040804696193) — due 2026-05-28. macOS Release Board task. New this cycle. -Action Thu: Open and triage. - -**PR Reviews — batch (9 queued, 2 new)** -NEW: [PR: Update deployment target in Xcode project](https://app.asana.com/0/0/1215150214975916) · Drop macOS Big Sur support. -Existing 7: macOS: Simplify TabBarViewController · Bump nativeStorage to 100% · Enable ad blocking soft launch · Improve value transformer failure observability · Avoid force unwrap crash · Fix maestro tests · Enable iPad toggle iOS 7.211. -Batch Thursday after TP block. - ---- - -### 🟡 Delegated — Follow Up Needed - -**OVERDUE (6 days)** -[Privacy Triage: Apple — iOS: Demo tracker blocking](https://app.asana.com/0/0/1214965405681675) — Jake Abel, due 2026-05-21 -No activity since May 20. Directly blocks closing the Demo tracker TP. -Follow-up Thu: "Jake — any update on the privacy triage? It was due May 21 and is blocking close-out." - -**OVERDUE (today — AFK)** -[Pinned tab activates in other window unpinning](https://app.asana.com/0/0/1210705465887828) — Juan Pereira, due 2026-05-27 -Now overdue due to AFK. Check in Thursday. - ---- - -### 🔵 Rhythms - -**TP:** [iOS Address onboarding conflicts with unified input and ship AI onboarding winner](https://app.asana.com/0/0/1214592943696234) — due 2026-06-05. Kick-off complete ✅. Alessandro's scope feedback pending Thu. -Next TP Thread: ✅ Open. - -**Upcoming:** -- 📅 Today: O-N Weekly Meeting — Alex AFK; proceeds without him -- 📅 Thu May 28: Deep work — [Address Bar Toggle: Animated Assets [2-3d]](https://app.asana.com/0/0/1214627423981798) primary block. Incident Postmortem DUE. -- 📅 Fri May 29: Close loops + weekly review + handoff macOS App Maintenance to Tom (already assigned) -- 📅 Jun 8–12: WWDC'26 (partly AFK) — 12 days away diff --git a/work/briefs/daily/2026-05-28.md b/work/briefs/daily/2026-05-28.md deleted file mode 100644 index d330c0c4..00000000 --- a/work/briefs/daily/2026-05-28.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -## Daily Brief — 2026-05-28 - -### ✨ Morning -On May 28, 1959, two monkeys — Able (a rhesus) and Baker (a squirrel monkey small enough to fit in a coconut) — rode a Jupiter rocket 360 miles up at 10,000 mph and became the first primates ever recovered alive from space. Baker lived another 25 years afterward, mostly on a diet of bananas at the U.S. Space & Rocket Center. -💧 Start with a glass of water. -🧖 Sauna day — don't skip it. - -Today's focus per weekly plan: Deep work on new TP — **Address Bar Toggle: Animated Assets [2-3d]** (primary) + Try Visiting a Site Background (secondary). Buffer for CI/AOR. -New signals since yesterday: 15 task changes (mostly AFK auto-rolls), 0 new comments (AFK respect held). One correction from yesterday's brief: the **Demo tracker PR (1214425079182350) is NOT deleted** — it's still open and now 1d overdue. - ---- - -## Plan for Today - -1. ⚡ **Desktop Browser Feature Owner Survey** — anonymous, 5-min timebox. Was item #1 Wed; still uncompleted. Knock it out before anything else. -2. 🔴 **Draft Incident Postmortem: AI Agent use** — **DUE TODAY**. Security incident, 7 days since assigned, no draft. First real work block. -3. 🔴 **Nudge Jake on Privacy Triage** (7d overdue) — one-line ping; blocks closing old TP. -4. 🔴 **Demo tracker PR — verify state + reassign reviewer** (1d overdue). Yesterday's brief mistakenly assumed it was completed; it's not. -5. 🟠 **Reply to Alessandro AB1–AB5** on TP kick-off + close Project Advisor async (Ship Review subtask already exists). -6. 🟠 **TP deep work block — Animated Assets [2-3d]** (primary block of the day). -7. 🟠 **TP subtask: Ship AI onboarding winner [0.5d]** (due today) — pair into TP block if room. -8. 🟠 **Triage: Inline Text Images to TypingTextAnimation** (due today; macOS Release Board). -9. 🟠 **Reply to Nastia** on Warn Before Quit pixels — quick yes/no. -10. 📋 **8 PR reviews queued** — batch after TP block. - -Ordering notes: No 1-Must override (yesterday's 1-Must was completed at 05:08 today). Item 1 is the easy momentum starter. Items 2–4 are hard-due-today / overdue blockers. Items 5–7 are the weekly plan focus. Items 8–10 are smaller asks / batched work. - ---- - -### 🔴 Urgent / Overdue - -**[DUE TODAY] DRI** — [Incident Postmortem: AI Agent use via likely external Discord service](https://app.asana.com/0/0/1214996544314182) (due 2026-05-28) -Context: Assigned 2026-05-22; 7 days; no draft visible. Security-category incident. Sibling task [Postmortem: Security Triage AI: edit link](https://app.asana.com/0/0/1214996544314187) has no due date, 7 days old. -Action: Draft postmortem OR post status comment with timeline today. Handle this BEFORE the TP deep block — security postmortems are not negotiable on due date. - -**[OVERDUE 1d] DRI / PR-author** — [PR: iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1214425079182350) (due 2026-05-27) -Context: Last week's TP shipping PR. Alessandro asked 2026-05-22 about toggle visibility during onboarding. Alex publicly committed Mon to "review pass and reassign to [reviewer]." No new activity since Mon. -Action: Open PR, answer Alessandro's toggle question if not done, hand reviewer baton off. ~30 min. - -**[OVERDUE 6d] DRI** — [iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1213551050320249) (due 2026-05-22) -Context: Parent task of old TP. Still blocked by (a) Privacy Triage (Jake, 7d overdue), (b) the PR above. Costas asked Mon for a wrap-up pinned comment; Alex posted one at 14:29 Mon. -Action: Once PR is handed off and Jake nudged, this is positioned to close on Fri. No action on the parent today beyond unblocking pieces. - -**[OVERDUE 2d] DRI** — [Desktop Browser Feature Owner Survey](https://app.asana.com/0/0/1214940335721015) (due 2026-05-26) -Context: 5-min anonymous timebox. Was item #1 Wednesday; AFK absorbed it. No content blocker. -Action: First 5 minutes of the day. Done. - -**[OVERDUE 6d] DRI** — [Full Analysis](https://app.asana.com/0/0/1214900901154134) (due 2026-05-22) -Context: Ambiguous title; no project context in snapshot. Stale since 2026-05-21. -Action: Open, either action or close. 10 min budget; if it's not obvious what it is, close or re-scope. - -**[OVERDUE 13d] AOR** — [PR Check is failing on main](https://app.asana.com/0/0/1214797526093576) (due 2026-05-15) -Context: Main-branch CI failure; in inbox. No activity since May 17. Has been carried across two daily briefs without progress. -Action: Diagnose during AOR buffer block (after TP). If it's not a 30-min fix, post a status comment naming the test and add to backlog. Don't let it sit unacknowledged a third day. - -**Backlog cluster** (informational — stale dates expected, do_later / quick_wins / aged inbox): CI failing test - testWhenTabWithConnectionLost (active, Apr 22) · Pinned tab opens link in background (May 1) · Text selection in address bar (May 1) · Tab preview stuck (Apr 2025) · Duo login Grafana · Assertion Failure Pixel · Review Overdue Tasks meta (Jan 2026) · Feature flag warnBeforeQuit · mac_malicious-site-protection client-timeout. Not actioned today. - ---- - -### 🟠 Needs Action Today - -**AUTHOR — New TP: reply to Alessandro AB1–AB5** -[iOS Address onboarding TP](https://app.asana.com/0/0/1214592943696234) — Alessandro posted 5 scope questions on the [kick-off task](https://app.asana.com/0/0/1214592851898713) at 14:25 Mon. Alex posted a kick-off update at 21:30 Mon, but it didn't explicitly answer AB1–AB5. No new comments since (AFK respected). -Action: Reply in-thread to each of AB1–AB5. Specifically AB1 — add implementation estimate to [Ship AI onboarding winner](https://app.asana.com/0/0/1215009192158955). AB2 — clarify animated assets scope/assignment. -Also: post on [DRI ↔ Project Advisor async](https://app.asana.com/0/0/1213551072611261) confirming Ship Review task [1215009192158961](https://app.asana.com/0/0/1215009192158961) already exists. - -**DRI — TP deep work: Animated Assets [2-3d] (primary block today)** -[Address Bar Toggle Selection: Animated Assets [2-3d]](https://app.asana.com/0/0/1214627423981798) — due 2026-06-04. Per weekly plan, this is Thursday's primary block. -Action: After items 1–5 above, this is the long block of the day. Try Visiting a Site Background is the secondary if assets land faster than estimated. - -**DRI — TP subtask due today: Ship AI onboarding winner (Treatment B) [0.5d]** -[Ship AI onboarding winner (Treatment B)](https://app.asana.com/0/0/1215009192158955) — due 2026-05-28. Half-day estimate; small relative to Animated Assets. -Action: Fold into TP block if there's a natural break. Add Alessandro's-requested estimate to the task notes (covers AB1 simultaneously). - -**DRI — Follow-up: Inline Text Images to TypingTextAnimation (due today)** -[Follow-up: add support of Inline Text Images to TypingTextAnimation](https://app.asana.com/0/0/1214040804696193) — due 2026-05-28. macOS Release Board. New in cycle; not yet triaged. There is a related [PR #4663](https://github.com/duckduckgo/apple-browsers/pull/4663) in your open PRs ("Add inline image support to AnimatableTypingText") — likely tied. -Action: Open both, decide if the task is "PR is the work" (close task when PR merges) or further work needed. 10 min. - -**DRI — Nastia's query on Warn Before Quit pixels** -[Remove or re-evaluate Warn Before Quit pixels](https://app.asana.com/0/0/1212808567112832) — Nastia commented Mon 16:50: "do you still need these pixels?" -Action: Quick yes/no reply. Same task as the linked feature-flag-warnBeforeQuit removal in backlog — pair them if you can answer in one go. - -**PR Reviews — batch (8 queued, no change vs yesterday)** -Drop macOS Big Sur · Simplify TabBarViewController · Bump nativeStorage 100% · Enable ad blocking soft launch · Improve value transformer failure observability · Avoid force unwrap crash · Fix maestro tests · Enable iPad toggle iOS 7.211. -Action: After TP block, single batch pass. Full list is in `asana_context.md`. - ---- - -### 🟡 Delegated — Follow Up Needed - -**OVERDUE 7d** — [Privacy Triage: Apple — iOS: Demo tracker blocking](https://app.asana.com/0/0/1214965405681675) — Jake Abel, due 2026-05-21 -No activity since May 20. Directly blocks closing old TP. Yesterday's brief flagged this; AFK day passed without contact. -Follow-up: "Hi Jake — back from the holiday. Any update on this privacy triage? It was due May 21 and is the last open piece blocking close-out of the Demo tracker TP." - -**OVERDUE 3d** — [🤖 Check for dependabot PRs](https://app.asana.com/0/0/1215057989642782) — Tom Strba, due 2026-05-25 -Maintenance cycle subtask. Likely just a rolled-forward maintenance item; verify if it should be marked done or extended into Tom's current week. - -**Due tomorrow** — [Pinned tab activates in other window unpinning](https://app.asana.com/0/0/1210705465887828) — Juan Pereira, due 2026-05-29. No follow-up needed today. - -**GitHub ↔ Asana correlation**: no merged-but-not-closed delegated tasks detected. - ---- - -### 🔵 Rhythms - -**TP:** [iOS Address onboarding conflicts with unified input and ship AI onboarding winner](https://app.asana.com/0/0/1214592943696234) — due 2026-06-05. Kick-off complete ✅. Alessandro AB1–AB5 reply still pending (#1 conversational debt on TP). Animated Assets is today's primary block. Next TP Thread: ✅ already open. - -**Upcoming:** -- 📅 Fri 2026-05-29: Close loops + weekly review (catch up on missing 2026-05-22 review) + handoff [macOS App Maintenance](https://app.asana.com/0/0/1215057986055515) to Tom (already assigned). -- 📅 Mon 2026-06-01: O-L Weekly Meeting. Dominik OOO begins 2026-06-01 (LDX3 through Jun 3). -- 📅 Tue 2026-06-02: Apple Weekly Team Meeting — Dominik OOO, host needed (Dominik flagged Mon). -- 📅 Wed 2026-06-03: O-N Weekly Meeting. -- 📅 Jun 8–12: WWDC'26 (partly AFK) — 11 days out. diff --git a/work/briefs/daily/2026-05-29.md b/work/briefs/daily/2026-05-29.md deleted file mode 100644 index 77e1537e..00000000 --- a/work/briefs/daily/2026-05-29.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -## Daily Brief — 2026-05-29 - -### ✨ Morning -On May 29, 1919, Arthur Eddington photographed stars near the sun during a total solar eclipse and confirmed light bends around massive objects — exactly as Einstein's general relativity predicted. The announcement made Einstein world-famous overnight and changed how we think about gravity, space, and time. -🚶 Take a short walk before diving in. - -Today's focus per weekly plan: Close loops + weekly review. New signals since yesterday: 18 task changes, 15 comments — Postmortem COMPLETED ✅ (Jeanna + Jonathan thanked Alex), Full Analysis COMPLETED ✅. Two new TP subtasks due today; PR #5145 CI 🔴; new Monterrey PR task appeared in inbox. - ---- - -## Plan for Today - -1. ⚡ **Desktop Browser Feature Owner Survey** — 5-min anonymous survey, 3d overdue, no blocker -2. 🔴 **Fix CI on PR #5145** (Ship duck.ai onboarding — CI red, blocks review) -3. 🔴 **Triage: PR: Make macOS app Monterrey-only** (1-3d, 1d overdue, needs scoping) -4. 🟠 **TP: Hide "stop chat" button [0.5d]** — due today, primary block -5. 🟠 **TP: Persist 'You've got this' dialogue [0.5d]** — due today, secondary block -6. 🟠 **Nudge Jake on Privacy Triage** — 8d overdue, blocks old TP close -7. 🟠 **Ack Alessandro on Project Advisor async** — 2 min -8. 📋 **6 PR reviews queued** — batch after TP block -9. 📝 **Weekly review write-up** — Fri rhythm, 20-30 min EOD - ---- - -### 🔴 Urgent / Overdue - -**[OVERDUE 3d] DRI** — [Desktop Browser Feature Owner Survey](https://app.asana.com/0/0/1214940335721015) (due 2026-05-26) -Context: 5-min anonymous survey. Zero content blocker. Carried Mon → Wed → Thu without being completed. -Action: Complete in the first 5 minutes of the day. - -**[OVERDUE 1d] DRI** — [PR: Make macOS app Monterrey-only - 1-3d (apple-browsers)](https://app.asana.com/0/0/1215150214975916) (due 2026-05-27) -Context: Appeared in inbox since weekly plan; new task, 1-3d estimate. Not in yesterday's brief. Needs scoping. -Action: Open and triage — is this an implementation task to author, or a PR review request? 10 min. - -**[OVERDUE 1d] DRI** — [Ship AI onboarding winner (Treatment B) [0.5d]](https://app.asana.com/0/0/1215009192158955) (due 2026-05-28) -Context: PR #5145 up but CI 🔴. Costas answered Alex's returning-users question on May 28 12:33. Alessandro reacted this morning (reaction only, no new comment — not a blocker). -Action: Read Costas' answer, then fix CI on #5145. - -**[OVERDUE 14d] AOR** — [PR Check is failing on main](https://app.asana.com/0/0/1214797526093576) (due 2026-05-15) -Context: Main-branch CI failure, inbox. No activity since May 17. Third brief in a row without progress. -Action: Diagnose during AOR buffer. If not fixable in 30 min, post a status comment naming the failing test + ETA. Don't carry unacknowledged into next week. - -**Backlog cluster** (informational — stale dates expected; do_later/quick_wins/aged inbox): CI failing test testWhenTabWithConnectionLost (active, Apr 22) · Pinned tab opens link in background (May 1) · Text selection in address bar (May 1) · Tab preview stuck · Duo login Grafana · Assertion Failure Pixel · Review Overdue Tasks meta · warnBeforeQuit flag · mac_malicious-site-protection. Not actioned today. - ---- - -### 🟠 Needs Action Today - -**DRI — TP deep work: Hide "stop chat" button + Persist 'You've got this' dialogue (due today)** -[Hide stop chat](https://app.asana.com/0/0/1215009192158954) + [Persist dialogue](https://app.asana.com/0/0/1215009192158950) — Alex's May 28 status: "Next: these two." Primary deep-work block of the day after urgent items. -Note: "Disable back button" (1215009192158960, also due today) is WAITING for confirmation from Costas/team — Alex already asked, not the blocker. - -**DRI — Acknowledge Project Advisor async** -[DRI ↔ Project Advisor async](https://app.asana.com/0/0/1213551072611261) — Alessandro commented May 28 23:30: "Since you were OOO I created that 🙂" — he proactively created the task while Alex was out. -Action: Quick acknowledgment reply. 2 min. - -**DRI — Review experiment enrollment data** -[NA Analysis: iOS Duck.ai Onboarding Tracker Demo](https://app.asana.com/0/0/1215186850972358) — Dax bot: enrollment ≈7K per variant (control 7034 / A 7191 / B 7126), no headline metric conversions yet (d5-7 app_use). Alex is listed DRI. -Action: Scan for anomalies, confirm tracking looks reasonable. 10 min. - -**PR Reviews — batch (6 queued)** -Bump nativeStorage 100% · Enable ad blocking soft launch · Improve value transformer failure observability · Avoid force unwrap crash · Fix maestro tests · Enable iPad toggle iOS 7.211. -Action: Single batch pass after TP block. - -**📝 Weekly review write-up** -Per Friday plan: write this week's review + catch-up for missing May/22 review. -Action: 20-30 min before EOD. - ---- - -### 🟡 Delegated — Follow Up Needed - -**OVERDUE 8d** — [Privacy Triage: Apple — iOS: Demo tracker blocking](https://app.asana.com/0/0/1214965405681675) — Jake Abel, due 2026-05-21 -No activity since May 20. Blocks closing old TP. Nudged in yesterday's brief; no response yet (AFK day intervened). -Follow-up: "Hi Jake — following up again. This privacy triage is now 8 days overdue and is the last piece blocking old TP close-out. Any update?" - -**OVERDUE 4d** — [🤖 Check for dependabot PRs](https://app.asana.com/0/0/1215057989642782) — Tom Strba, due 2026-05-25 -macOS App Maintenance cycle. Tom's cycle is active (maintenance task modified May 28 23:27). Low urgency — Tom likely completing today. - -**Due today** — [Pinned tab activates in other window unpinning](https://app.asana.com/0/0/1210705465887828) — Juan Pereira, due 2026-05-29 -Gentle reminder if no update from Juan by EOD. - -GitHub ↔ Asana correlation: no merged-but-not-closed delegated tasks detected. - ---- - -### 🔵 Rhythms - -**TP:** [iOS Address onboarding conflicts with unified input and ship AI onboarding winner](https://app.asana.com/0/0/1214592943696234) — due 2026-06-05. On track. Two subtasks with PRs up (Hide Free plan #5149 ✅ waiting review; Ship AI onboarding #5145 CI 🔴). Today's block: stop chat + persist dialogue subtasks. Next TP Thread: ✅ already open. - -**Upcoming:** -- 📅 Mon 2026-06-01: O-L Weekly Meeting. Dominik OOO begins (LDX3, through Jun 3). -- 📅 Tue 2026-06-02: Apple Weekly Team Meeting — Dominik OOO, host needed (Dominik flagged this). -- 📅 Wed 2026-06-03: O-N Weekly Meeting. -- 📅 Jun 8–12: WWDC'26 partly AFK (10 days out) — flag prep handoffs by end of next week. diff --git a/work/briefs/inbox/2026-05-23.md b/work/briefs/inbox/2026-05-23.md deleted file mode 100644 index 372efa51..00000000 --- a/work/briefs/inbox/2026-05-23.md +++ /dev/null @@ -1,8 +0,0 @@ -## Inbox Triage — 2026-05-23 (since 18:07) - -### Nothing new -Inbox quiet — nothing new. - -_Window 17:03 → 18:07: 21 stories landed, all automated. Zero @mentions of Alex, zero human comments on tracked tasks, zero new assignments. Activity: Dax the Duck bot routing macOS Feedback bugs (unassigned), OOO collaborator additions, Aitor closing his OOO task — all excluded as AOR follower noise / bot events._ - -_Overdue items, awaiting-reply backlog, and existing review requests are surfaced in the daily brief / status.md and are out of scope here._ diff --git a/work/briefs/inbox/2026-05-24.md b/work/briefs/inbox/2026-05-24.md deleted file mode 100644 index 2b21383e..00000000 --- a/work/briefs/inbox/2026-05-24.md +++ /dev/null @@ -1,23 +0,0 @@ -## Inbox Triage — 2026-05-24 (since 2026-05-24 18:18) - -### New / Changed — Action Required -_None._ - -### New / Changed — Monitoring -_None._ - -### Nothing new -Inbox quiet — nothing new in the 35-minute window since the previous triage. - -**Window scanned:** 2026-05-24 18:18 → 18:53 (Asia/Almaty). DB current to 18:53 local. - -**Sources checked (direct Postgres queries against `personal_os`):** -- @mentions (`stories.resource_subtype = 'at_mention'`) since SINCE — **0 rows**. -- New comments on Alex M's tasks since SINCE — **0 rows**. -- All stories on any task since SINCE — **4 rows**, all on a single task: Dax the Duck routed a new feedback-form submission *"need the functionality of using extensions"* into macOS Feedback (`added_to_project` + custom field changes). Automated bot event → excluded by scope filter. -- Tasks with `modified_at > SINCE` — only the same feedback-bot task. No human signals. -- Referenced tasks from @mention comments — N/A (no @mentions). - -**Excluded per STEP 0b** (belong in daily-brief, not here): 🔴 Signals overdue list, the 7 GitHub review requests + 5 PR @mentions in the snapshot, "Comments awaiting reply" — all pre-date SINCE. - -**Gating (STEP 0a):** Sunday (day 7), 18:53 Almaty → not Tuesday so no Dominik 1:1; no Apple Weekly today (next scheduled 2026-05-26); status.md `**Now:** _No recent activity detected_` → no deep-focus app to override. Proceeded. diff --git a/work/briefs/inbox/2026-05-25.md b/work/briefs/inbox/2026-05-25.md deleted file mode 100644 index 2d537a71..00000000 --- a/work/briefs/inbox/2026-05-25.md +++ /dev/null @@ -1,18 +0,0 @@ -## Inbox Triage — 2026-05-25 (since 2026-05-25 17:04) - -Inbox quiet — nothing new. - -### Nothing new - -- No new comments on your my_tasks since SINCE (last sync 17:22 +06 captured the window). -- No new assignments to you. -- No @mentions of you in stories since SINCE (DB check skipped — psql/envdir not available on this host). -- No Ship Review / Tech Design changes where you're DRI or reviewer. -- No delegated-task movement since SINCE. - -Carryover from previous brief (17:04) — still open, not re-surfaced as "new": -- **[O-N Weekly Meeting](https://app.asana.com/0/0/1214950287303110)** — Costas moved it to **tomorrow (May 26) 9:00 PM**; you owe a confirm/pushback on the new slot. - ---- - -_Note: deep-focus skip in Xcode was overridden by 🔴 overdue items > 3h in status.md. Apple Weekly is tomorrow (May 26), not today. MS365 calendar check and DB @mention query both skipped — MCP blocked on this host and envdir/psql not installed locally; falling back to snapshot only._ diff --git a/work/briefs/inbox/2026-05-26.md b/work/briefs/inbox/2026-05-26.md deleted file mode 100644 index 493405d2..00000000 --- a/work/briefs/inbox/2026-05-26.md +++ /dev/null @@ -1,28 +0,0 @@ -## Inbox Triage — 2026-05-26 (since 2026-05-26 18:28) - -### New / Changed — Action Required - -**[New comment]** — [Postmortem: [iOS] Introduce a new screen that allows usage of the toggle with Search or Duck.ai set as the default toggle state](https://app.asana.com/0/0/1213320327587346) — Costas at 18:53 -Role: DRI (postmortem owner). -Context: Costas replied to your 10:57 question about whether to postmortem-and-close this project. He agrees ("Sounds good to me"), but asks that *before* closing, you summarize the performance of the experiment variants in the **project's main thread as a final pinned comment**, so any interested stakeholders are informed of the results. -Action: Draft the experiment-variants performance summary, post it as a pinned comment on the parent project task ([ON HOLD] iOS: Introduce a new screen…, gid 1213320237636425), then proceed with running the postmortem. - -### New / Changed — Monitoring - -- **[Incident Postmortem: AI Agent use via likely external Discord service](https://app.asana.com/0/0/1214996544314182)** — you moved it from Draft → Current at 18:51 and Asana added ~15 collaborators as a result; Dominik liked the task at 18:57. No external action awaited. -- **[Kick-off: iOS Address onboarding conflicts with unified input and ship AI onboarding winner](https://app.asana.com/0/0/1214592851898713)** — modified at 18:49; no new substantive comment since SINCE. Alessandro's and Pete's feedback from earlier today already covered in prior brief. - -### Nothing new -- No new @mentions of Alex (3 mention rows detected on the Incident Postmortem were self-mentions and excluded). -- No new comments on delegated tasks since SINCE. -- No new task assignments to Alex. -- No Ship Review / Tech Design status changes since SINCE. -- No new incident assignments, no rotation handoffs. - ---- - -## Inbox Triage — 2026-05-26 19:30 (since 2026-05-26T19:00:57) - -### Nothing new - -Inbox quiet — no new human signals in the 30-minute window since the 19:00 run. diff --git a/work/briefs/inbox/2026-05-27.md b/work/briefs/inbox/2026-05-27.md deleted file mode 100644 index 38a9c531..00000000 --- a/work/briefs/inbox/2026-05-27.md +++ /dev/null @@ -1,57 +0,0 @@ -## Inbox Triage — 2026-05-27 (since 2026-05-27T10:01) - -_Note: Today is a holiday for Alex (Alex M AFK May/27, Wed). DB SSH not reachable; working from local snapshot (generated 04:08 UTC, covers through SINCE). MS365 calendar check skipped (unavailable)._ - -_Note: @mention DB query unavailable (no /etc/ddg access from Eagle). Snapshot coverage: up to 10:10 AM Almaty. All recent comments and task changes predate SINCE._ - -### Nothing new - -Inbox quiet — nothing new since last triage (10:01 AM). Most recent Asana activity in snapshot is from 2026-05-27T04:00 UTC (1 min before SINCE). All recent comments are from 2026-05-26. - ---- - -## Inbox Triage — 2026-05-27 13:02 (since 2026-05-27T11:31:17) - -Inbox quiet — nothing new. - -_No tasks modified since SINCE (confirmed via Asana MCP). No active meetings (MS365 check clean). Nothing qualifies per scope filter._ - ---- - -## Inbox Triage — 2026-05-27 13:32 (since 2026-05-27T13:01:48) - -Inbox quiet — nothing new. - -_Snapshot generated at 13:31 local (after SINCE 13:01). No task changes or comments found after SINCE. No active meetings (MS365 clean). Not in deep focus._ - ---- - -## Inbox Triage — 2026-05-27 14:29 (since 2026-05-27T14:01:08) - -Inbox quiet — nothing new. - -_No tasks modified since SINCE (Asana MCP: assigned + followed, both empty). No active meetings (MS365 clean). Alex AFK today (holiday)._ - ---- - -## Inbox Triage — 2026-05-27 15:32 (since 2026-05-27T16:01:02) - -Inbox quiet — nothing new. - -_No tasks modified since SINCE (Asana MCP: assigned + followed, both empty). No active meetings (MS365 clean). Alex AFK today (holiday). Not posting to #inbox per user directive._ - ---- - -## Inbox Triage — 2026-05-27 17:01 (since 2026-05-27T16:31:06) - -Inbox quiet — nothing new. - -_Snapshot generated at 10:53 UTC (after SINCE 10:31 UTC). No task changes or comments found after SINCE. No active meetings (MS365 clean). Alex AFK today (holiday)._ - ---- - -## Inbox Triage — 2026-05-27 17:30 (since 2026-05-27T17:00:51) - -Inbox quiet — nothing new. - -_Snapshot generated at 11:25 UTC (covers SINCE 11:00 UTC). No new human comments, assignments, or delegated task changes detected. Alex AFK today (holiday)._ diff --git a/work/briefs/inbox/2026-05-28.md b/work/briefs/inbox/2026-05-28.md deleted file mode 100644 index 90d37ddb..00000000 --- a/work/briefs/inbox/2026-05-28.md +++ /dev/null @@ -1,25 +0,0 @@ -## Inbox Triage — 2026-05-28 (since 2026-05-28 17:05) - -### Nothing new - -Inbox quiet — nothing new requiring action. - -**What I checked (window: 17:05 → 17:35 local sync, Almaty):** -- @mentions on Alex (direct DB query, all scopes): 0 directed at Alex -- New human comments on Alex's open tasks: 0 -- New task assignments to Alex: 0 -- New comments on delegated tasks: 0 -- Ship Review / Tech Design / Incident state changes: 0 -- Rotation changes: 0 - -**Stories observed in window but excluded (not directed at Alex):** -- 2× `at_mention` on *All Company Meeting Agenda 2026-05-29* — Shula edited the description; Alex's gid not in the linked profiles. Follower noise. -- *Sorting in big HTML is 15sec compared to Vivaldi's 2 second* — Max self-comment ("I'll check today"); assigned to Max, not Alex. -- 4× `comment_added` from Brindy closing out old Bartek-owned proposals (linter version, flaky tests, App Store reviews, Maintenance pain points) — follower-only, no Alex involvement. -- *macOS App Release 1.191.0* — Dominik commenting to Fernando about release submission status; Alex follower-only. - -**Standing items still owed a reply** (from prior briefs, not re-surfaced — see status.md `🔴 Comments awaiting reply`): AOR Weekly Flash Report (Brenna P, May 25), AOR Crypto IA (Jake Abel, May 26 — handover), AOR Web Tracking Protections Help Page (Kate M., May 27). - -*Gating: Day=4 (Thu), Hour=16 Almaty → no Dominik 1:1 quiet window. Apple Weekly DB check → no row today. MS365 live calendar check → BLOCKED by lethal-trifecta hook → skipped. Current app = Code Review (not Xcode/Cursor/Code/Terminal) → focus check not applicable, proceeded.* - -*Prior triage today extended through 17:00. This run picks up the 17:05 → 17:35 window. Sync was at 17:35; window covered by last sync.* diff --git a/work/briefs/weekly/plan-2026-05-18.md b/work/briefs/weekly/plan-2026-05-18.md deleted file mode 100644 index eca708cb..00000000 --- a/work/briefs/weekly/plan-2026-05-18.md +++ /dev/null @@ -1,141 +0,0 @@ -# Weekly Plan — Week of 2026-05-18 (forward-looking: 2026-05-25 → 2026-05-29) - -> Note: Generated Sat 2026-05-23. The week of May 18 has already wrapped (Friday review = 2026-05-22). -> No weekly-review file exists at `briefs/weekly/2026-05-22.md` — plan built from DB snapshot only. -> Forward-looking content targets the upcoming work week (May 25 → May 29). AFK Wed May 27. - -**Top Priority**: [iOS Address onboarding conflicts with unified input and ship AI onboarding winner](https://app.asana.com/0/0/1214592943696234) — confirmed by Alex's own comment on the TP-Threads task (2026-05-22): closing out the demo-tracker TP and starting Address onboarding as next O-N TP. Due 2026-06-05; in `top_priority`; subtasks already scoped for asset/UI work. - -### Quadrants -| Quadrant | This Week | Notes | -|---|---|---| -| Project | 65% | New O-N TP kickoff + closing demo-tracker PR; shortened week (AFK Wed) bumps from 60% | -| AOR | 15% | UTI issues, CI failing tests, PR review backlog. Trimmed because week is 4 days | -| Career | 15% | 1:1 with Dominik Tue May 26 — Dominik NOT OOO (next AFK June 1–3). Boost vs baseline because 1:1 falls this week | -| Strategy | 5% | O-N/O-L weekly, Apple Weekly. TD: Monthly pixels (Jonathan) — observe only | - -### Shape - -**Sat 2026-05-23 / Sun 2026-05-24:** Off — weekend. - -**Mon 2026-05-25:** Close out, kick off -- [iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1213551050320249) — final review pass on PR, address Alessandro's toggle question, hand off to reviewer -- [PR: iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1214425079182350) — answer Alessandro (2026-05-22 comment about toggle remaining hidden until onboarding completes); reassign -- [iOS Address onboarding conflicts with unified input and ship AI onboarding winner](https://app.asana.com/0/0/1214592943696234) — async kick-off (in-person slots full per Alex's comment to Dominik); post kickoff note -- [Address Universal Input (UTI) issues](https://app.asana.com/0/0/1214965000075517) — wrap remaining UTI work before pivoting fully to new TP -- O-N Weekly Meeting (2026-05-25) — surface async-kickoff plan -- O-L Weekly Meeting (2026-05-25) — Dominik hosting; light agenda, no items required -- Set 1-Must for the day; post weekly TP - -**Tue 2026-05-26:** 1:1 + meetings, light Project work -- [Dominik :: Alex Regular 1:1 Agenda](https://app.asana.com/0/0/1214933759913756) — add career items BEFORE meeting (see Career Action below) -- 1:1 with Dominik (Tue) — confirmed: Dominik not OOO until 2026-06-01 -- Apple Weekly Team Meeting (2026-05-26) -- [Persist 'You've got this' dialogue in non-focused state [0.5d]](https://app.asana.com/0/0/1215009192158950) — start subtask of TP - -**Wed 2026-05-27:** 🏖️ AFK (holiday — [Alex M AFK May/27](https://app.asana.com/0/0/1212694796293421)) -- No work scheduled - -**Thu 2026-05-28:** Deep work on TP subtasks -- [Address Bar Toggle Selection: Animated Assets [2-3d]](https://app.asana.com/0/0/1214627423981798) — primary deep-work block -- [Try Visiting a Site: Background [1d]](https://app.asana.com/0/0/1214828145455342) — quick subtask if time - -**Fri 2026-05-29:** Close loops + maintenance handoff -- Continue Address Toggle assets -- Weekly review (write it — last week's was missed) -- Handoff macOS App Maintenance to Tom (already assigned via May 29 cycle) -- Pre-1:1-next-cycle agenda items: add anything that surfaced - -### Must-Not-Forget - -- [ ] **[PR: iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1214425079182350)** — assignee: Alex - due 2026-05-26 — Alessandro asked on 2026-05-22 whether the toggle should remain hidden until onboarding completes; Alex committed publicly to "review pass on Monday and assign to [reviewer]" — Alex IS the blocker - -- [ ] **[iOS Address onboarding kickoff — async confirmation](https://app.asana.com/0/0/1214592943696234)** — assignee: Alex - awaiting Dominik's reply on Alex's May 22 "kick-off slots taken — can we run async?" question — if no reply by Mon, ping Dominik so kickoff isn't delayed - -- [ ] **[PR Check is failing on main](https://app.asana.com/0/0/1214797526093576)** — assignee: Alex - due 2026-05-15 (8d overdue) — main-branch CI failure in `active` is a P1-style signal; not yet addressed. Diagnose Monday morning before deep work blocks - -- [ ] **[Full Analysis](https://app.asana.com/0/0/1214900901154134)** — assignee: Alex - due 2026-05-22 (1d overdue) — title alone is ambiguous (no project, no notes context surfaced in snapshot); open task and either action or re-scope. Surfacing because of recent due date - -- [ ] **[Privacy Triage: Apple — iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1214965405681675)** — assignee: Jake Abel - delegated; due 2026-05-21 (2d overdue) — directly blocks closing TP. Nudge Jake on Monday if not done - -### AOR Quick Wins This Week - -- **[Feature flag: warnBeforeQuit](https://app.asana.com/0/0/1212444166689969)** - overdue 29 days — flag removal; standard cleanup, <1h - -- **[Remove or re-evaluate Warn Before Quit pixels](https://app.asana.com/0/0/1212808567112832)** - overdue 23 days — pair with the feature flag above; pixel cleanup - -- **[Consider removing or reworking mac_malicious-site-protection_client-timeout](https://app.asana.com/0/0/1210855358441832)** - overdue 304 days — review whether still needed; quick scoping decision - -### Sprint Backlog (pick 1–2 if time allows) - -- **[PR Check is failing on main - testWhenTabWithConnectionLostErrorActivatedAndReloadFailsAgain_errorPageIsShownOnce](https://app.asana.com/0/0/1213975496167929)** - due 2026-04-22 (31d overdue) — `active` section, CI failing test; may overlap with the newer PR-Check task above - -- **[Pinned tab opens link in background tab](https://app.asana.com/0/0/1214038885921128)** - due 2026-05-01 (22d overdue) — Internal Product Feedback; pinned-tab regression - -- **[Text selection in the address bar doesn't work as standard](https://app.asana.com/0/0/1214071796247142)** - due 2026-05-01 (22d overdue) — Internal Product Feedback; UX regression - -- **[Assertion Failure Pixel Anomaly - 2025/09/15](https://app.asana.com/0/0/1211379705725021)** - due 2025-09-17 (248d overdue) — `planning` section; revisit or close - -- **[Review Overdue Tasks Summary - 22 Tasks (Jan 2026)](https://app.asana.com/0/0/1212881948512860)** - due 2026-01-27 (116d overdue) — meta task about overdue management; ironic - -(+ 2 aged items >180 days in backlog — not listed: Bug: Tab preview stuck around (403d), Duo login Grafana (304d)) - -### On Radar - -- **TD: [Monthly pixels for iOS and macOS](https://app.asana.com/0/0/1214950124367781)** — Jonathan Jackson revisited monthly-pixel approach on 2026-05-23. Touches pixel/instrumentation AOR Alex has worked in. Engage if Apple-team input solicited. -- **Discussion: [shield in address bar overlapping with text](https://app.asana.com/0/0/1214946075851940)** — Zac following up on a macOS browser address-bar bug, reproducing on v1.190.0. Likely macOS AOR adjacency. - -### Career Action This Week -**Add career discussion points to [Dominik :: Alex Regular 1:1 Agenda](https://app.asana.com/0/0/1214933759913756) before Tue 2026-05-26 (15 min)** - -Picked because 1:1 IS this week and Dominik is NOT OOO (verified — next AFK is 2026-06-01). Skipped Project-Advisor doc draft because the 1:1 is the time-bounded action; raise Project Advisor as the *primary* agenda item in the 1:1 instead — same content, better leverage. Skipped Christie EP2/3 calibration ping — surface as a 1:1 question to Dominik first ("did Christie submit?"), then act if needed. Skipped Assessment comment item — no current open O-N/O-L Assessment requires it this week. - -Specific 1:1 agenda items to add: -1. Project Advisor — "I've made no progress; want to commit to Part 1 of the Readiness doc this cycle. Sanity-check what 'good' looks like." -2. Primary AOR target — "Which AOR is realistic to pursue as primary by next review?" -3. Christie EP2/3 calibration — "Did she submit? Status unclear in my notes." -4. EP3 gap check — "Beyond what we discussed in Feb, what's the next gap to close?" - -### On Radar / Participation Needed - -- **[Tech Design: Monthly pixels for iOS and macOS](https://app.asana.com/0/0/1214950124367781)** - Jonathan Jackson returning to monthly-pixel approach (2026-05-23 comment) — touches Alex's instrumentation work; monitor, engage if Apple-team perspective is asked for - -### Carried Forward from Last Week - -- **[iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1213551050320249)** — Alex (DRI) - → see TP / Monday in Shape — closing out PR, Privacy Triage delegated, Project-Advisor async open - -- **[DRI <> Project Advisor async for Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1213551072611261)** — Alex - async sign-off thread; verify status before closing the TP - -- **[Address Universal Input (UTI) issues](https://app.asana.com/0/0/1214965000075517)** — Alex - per Alex's May 22 comment: completing this before pivoting to new TP — wrap on Monday - -- **[Alex Shurgin – HR](https://app.asana.com/0/0/1215056211788084)** — Alex - HR-related task surfaced May 22; review for any time-sensitive action. ⚠️ HR content — handle privately. - -- **[Postmortem: Security Triage AI: edit link](https://app.asana.com/0/0/1214996544314187)** + **[Postmortem: Security Triage: AI Agent use via likely external Discord service](https://app.asana.com/0/0/1214996544314182)** — Alex - Security postmortems in inbox. Read, contribute if assigned an action; otherwise leave as observer. ⚠️ Security content — handle privately. - -- **[Xcode build speedup skill](https://app.asana.com/0/0/1214996544314193)** — Alex - Personal tooling task; schedule in a gap day (likely after WWDC AFK) - ---- -*Based on DB snapshot 2026-05-23 04:23 UTC + agent rhythms. Weekly-review for 2026-05-22 not found on disk — plan built from DB only.* -*DRI conflict check: none flagged. Career advisor (Dominik) OOO check: clear through 2026-05-31. Quick Wins week: not announced.* - -Saved to `/Users/admin/obsidian/work/briefs/weekly/plan-2026-05-18.md`. diff --git a/work/briefs/weekly/plan-2026-05-25.md b/work/briefs/weekly/plan-2026-05-25.md deleted file mode 100644 index bfef32f4..00000000 --- a/work/briefs/weekly/plan-2026-05-25.md +++ /dev/null @@ -1,147 +0,0 @@ -# Weekly Plan — Week of 2026-05-25 - -> Note: No weekly-review file exists at `briefs/weekly/2026-05-22.md`. Plan rebuilt from DB snapshot 2026-05-25 02:01 UTC + last week's plan-2026-05-18.md. -> **Shortened week**: AFK Wed 2026-05-27 (holiday). 4 working days. -> **Career advisor (Dominik) OOO check**: clear through 2026-05-31; earliest AFK June 1–3 (LDX3). 1:1 Tuesday is GO. -> **Quick Wins week**: not announced. - -**Top Priority**: [iOS Address onboarding conflicts with unified input and ship AI onboarding winner](https://app.asana.com/0/0/1214592943696234) — confirmed as next O-N TP (Alex's own May/22 note on TP-Threads bot task). Due 2026-06-05; in `top_priority`; subtasks already scoped for asset/UI work (Animated Assets [2-3d], Try Visiting a Site Background [1d], Persist 'You've got this' [0.5d]). Last week's TP (Demo tracker) is in final close-out (PR + Privacy Triage outstanding) — kept under Monday in Shape, not duplicated as TP. - -### Quadrants -| Quadrant | This Week | Notes | -|---|---|---| -| Project | 65% | New O-N TP kickoff + closing demo-tracker PR; shortened week (AFK Wed) bumps from 60% baseline | -| AOR | 15% | 2 PR-Check failures on main, UTI wrap, Sentry/CI maintenance, address-bar bug adjacency | -| Career | 15% | 1:1 with Dominik Tue May 26 — Dominik NOT OOO until June 1. Boost vs 5% baseline because 1:1 falls this week | -| Strategy | 5% | O-N/O-L Weekly Mon, Apple Weekly Tue. TD: Monthly pixels (Jonathan) — observe only | - -### Shape - -**Mon 2026-05-25:** Close out + kick off (3 meetings stacked) -- [iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1213551050320249) — final review pass on PR; address Alessandro's toggle question; reassign reviewer -- [PR: iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1214425079182350) — due tomorrow; answer Alessandro's May/22 toggle-visibility question; hand off -- [iOS Address onboarding conflicts with unified input and ship AI onboarding winner](https://app.asana.com/0/0/1214592943696234) — async kick-off post in TP comments (per Alex's May/22 note: in-person slots full) -- [Address Universal Input (UTI) issues](https://app.asana.com/0/0/1214965000075517) — wrap remaining work before pivoting fully to new TP -- [Alex M next Top Priority (May/25)](https://app.asana.com/0/0/1215058019347550) — bot-generated nudge; update due date or close once new TP declared -- [O-N Weekly Meeting](https://app.asana.com/0/0/1214950287303110) — surface async-kickoff plan for new TP -- [O-L Weekly Meeting](https://app.asana.com/0/0/1214908681776067) — Dominik hosting; light agenda -- Set 1-Must for the day; declare weekly TP on team board - -**Tue 2026-05-26:** 1:1 + meetings + light project work -- [Dominik :: Alex Regular 1:1 Agenda](https://app.asana.com/0/0/1214933759913756) — add career items BEFORE meeting (see Career Action below) -- 1:1 with Dominik — confirmed: Dominik not OOO until 2026-06-01 -- [Apple Weekly Team Meeting](https://app.asana.com/0/0/1214929922983741) -- [Persist 'You've got this' dialogue in non-focused state [0.5d]](https://app.asana.com/0/0/1215009192158950) — start subtask of new TP -- [Desktop Browser Feature Owner Survey](https://app.asana.com/0/0/1214940335721015) — due today; 5-min timebox - -**Wed 2026-05-27:** 🏖️ AFK ([Alex M AFK May/27, holiday](https://app.asana.com/0/0/1212694796293421)) -- No work scheduled - -**Thu 2026-05-28:** Deep work on new TP -- [Address Bar Toggle Selection: Animated Assets [2-3d]](https://app.asana.com/0/0/1214627423981798) — primary deep-work block (due today) -- [Try Visiting a Site: Background [1d]](https://app.asana.com/0/0/1214828145455342) — secondary subtask -- Buffer for CI/AOR firefighting if PR-Check issues persist - -**Fri 2026-05-29:** Close loops + retrospective -- Continue Address Toggle assets if not done -- Weekly review write-up (this week's + catch-up for May/22 if missing) -- Handoff [macOS App Maintenance](https://app.asana.com/0/0/1215057986055515) to Tom (already assigned via May 29 cycle) -- Pre-next-1:1 agenda items: capture anything that surfaced this week - -### Must-Not-Forget - -- [ ] **[PR: iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1214425079182350)** — assignee: Alex - due 2026-05-26 — Alessandro asked on 2026-05-22 whether the toggle should remain hidden until onboarding completes; Alex committed publicly to "review pass on Monday and assign to [reviewer]" — Alex IS the blocker. Action today. - -- [ ] **[Privacy Triage: Apple — iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1214965405681675)** — assignee: Jake Abel - delegated; due 2026-05-21 (4d overdue) — directly blocks closing last week's TP. Nudge Jake today if not done. - -- [ ] **[PR Check is failing on main](https://app.asana.com/0/0/1214797526093576)** — assignee: Alex - due 2026-05-15 (10d overdue) — main-branch CI failure in `inbox`; P1-style signal. Diagnose Monday morning before deep-work blocks. - -- [ ] **[Full Analysis](https://app.asana.com/0/0/1214900901154134)** — assignee: Alex - due 2026-05-22 (3d overdue) — title alone is ambiguous (no project, no notes context in snapshot); open and either action or re-scope. - -- [ ] **[Dominik :: Alex Regular 1:1 Agenda](https://app.asana.com/0/0/1214933759913756)** — assignee: Alex (preparer) - due 2026-05-26 — needs career items added before Tue meeting (see Career Action). - -### AOR Quick Wins This Week - -- **[Feature flag: warnBeforeQuit](https://app.asana.com/0/0/1212444166689969)** - overdue 31 days — flag removal; standard cleanup, <1h - -- **[Remove or re-evaluate Warn Before Quit pixels](https://app.asana.com/0/0/1212808567112832)** - overdue 25 days — pair with the feature flag above; pixel cleanup - -- **[Consider removing or reworking mac_malicious-site-protection_client-timeout](https://app.asana.com/0/0/1210855358441832)** - overdue 306 days — review whether still needed; quick scoping decision - -### Sprint Backlog (pick 1–2 if time allows) - -- **[PR Check is failing on main - testWhenTabWithConnectionLostErrorActivatedAndReloadFailsAgain_errorPageIsShownOnce](https://app.asana.com/0/0/1213975496167929)** - due 2026-04-22 (33d overdue) — `active` section, CI failing test; may overlap with newer PR-Check task in MNF - -- **[Pinned tab opens link in background tab](https://app.asana.com/0/0/1214038885921128)** - due 2026-05-01 (24d overdue) — Internal Product Feedback; pinned-tab regression - -- **[Text selection in the address bar doesn't work as standard](https://app.asana.com/0/0/1214071796247142)** - due 2026-05-01 (24d overdue) — Internal Product Feedback; UX regression - -- **[Review Overdue Tasks Summary - 22 Tasks (Jan 2026)](https://app.asana.com/0/0/1212881948512860)** - due 2026-01-27 (118d overdue) — meta task about overdue management - -(+ 3 aged items >180 days in backlog — not listed individually: Bug: Tab preview stuck around (405d), Duo login Grafana (306d), Assertion Failure Pixel Anomaly (250d)) - -### On Radar - -- **TD: [Monthly pixels for iOS and macOS](https://app.asana.com/0/0/1214950124367781)** — Jonathan Jackson returned to monthly-pixel approach on 2026-05-23. Touches pixel/instrumentation AOR Alex has worked in. Engage if Apple-team input solicited. -- **Discussion: [shield in address bar overlapping with text](https://app.asana.com/0/0/1214946075851940)** — Zac confirmed reproduction on v1.190.0 (2026-05-23); macOS browser address-bar AOR adjacency; monitor for direct ask. - -### Career Action This Week - -**Add career discussion points to [Dominik :: Alex Regular 1:1 Agenda](https://app.asana.com/0/0/1214933759913756) before Tue 2026-05-26 (15 min)** - -Picked because 1:1 IS this week AND Dominik is NOT OOO (verified — next AFK is 2026-06-01). Skipped #1 (Project Advisor doc Part 1 draft) because the 1:1 is the more time-bounded action — raise Project Advisor as the *primary* agenda item in the 1:1 instead, same content, better leverage. Skipped Christie EP2/3 calibration ping — surface as a 1:1 question first ("did Christie submit?"), then act if needed. Skipped Assessment comment item — no current open O-N/O-L Assessment requires it this week. - -Specific 1:1 agenda items to add (in priority order): -1. **Project Advisor** — "No progress since last cycle; want to commit to Part 1 of the Readiness doc this cycle. Sanity-check what 'good' looks like." -2. **Primary AOR target** — "Which AOR is realistic to pursue as primary by next review (~2026-08)?" -3. **Christie EP2/3 calibration** — "Did she submit? Status still unclear in my notes." -4. **EP3 gap check** — "Beyond what we discussed in Feb, what's the next gap to close?" - -### On Radar / Participation Needed - -- **[Tech Design: Monthly pixels for iOS and macOS](https://app.asana.com/0/0/1214950124367781)** - Jonathan Jackson revisited monthly-pixel approach (2026-05-23 comment) — touches Alex's instrumentation work; monitor, engage if Apple-team perspective is explicitly asked for - -- **[shield in address bar overlapping with text](https://app.asana.com/0/0/1214946075851940)** - Zac confirmed reproduction on v1.190.0 (2026-05-23); macOS address-bar AOR. Watch for any direct ask. - -### Carried Forward from Last Week - -- **[iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1213551050320249)** — Alex (DRI) - → see Mon in Shape — closing out PR, Privacy Triage delegated to Jake, Project-Advisor async open - -- **[DRI <> Project Advisor async for Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1213551072611261)** — Alex - async sign-off thread; verify status before closing the last TP - -- **[Address Universal Input (UTI) issues](https://app.asana.com/0/0/1214965000075517)** — Alex - per Alex's May 22 note: completing this before pivoting fully to new TP — wrap on Monday - -- **[Alex Shurgin – HR](https://app.asana.com/0/0/1215056211788084)** — Alex - HR-related task surfaced May 22; review for any time-sensitive action. ⚠️ HR content — handle privately, don't auto-summarize via connectors. - -- **[Postmortem: Security Triage AI: edit link](https://app.asana.com/0/0/1214996544314187)** + **[Postmortem: Security Triage: AI Agent use via likely external Discord service](https://app.asana.com/0/0/1214996544314182)** — Alex - Security postmortems in inbox. Read, contribute if assigned an action; otherwise leave as observer. ⚠️ Security content — handle privately. - -- **[Xcode build speedup skill](https://app.asana.com/0/0/1214996544314193)** — Alex - Personal tooling task; schedule in a gap day (likely post-WWDC AFK) - -- **[Alex M next Top Priority (May/25)](https://app.asana.com/0/0/1215058019347550)** — Alex - bot-generated TP-threads nudge from May/24; close or update once new TP is declared today - ---- -*Based on DB snapshot 2026-05-25 02:01 UTC + plan-2026-05-18.md (no weekly-review for 2026-05-22 on disk).* -*DRI conflict check: none flagged. Career advisor (Dominik) OOO check: clear through 2026-05-31. Quick Wins week: not announced.* - -Saved to `/Users/admin/obsidian/work/briefs/weekly/plan-2026-05-25.md`. diff --git a/work/projects/nolvu-marketing.md b/work/projects/nolvu-marketing.md deleted file mode 100644 index 25e47d94..00000000 --- a/work/projects/nolvu-marketing.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -# Nolvu — AI-психолог: Pre-Launch маркетинговое исследование ЦА - -_Дата: 2026-05-25_ - -## Целевая аудитория - -**Портрет:** человек 22-35 лет, который уже решил попробовать AI вместо живого терапевта — из-за цены, доступности или страха осуждения. Ищет на Reddit реальные отзывы, сравнивает варианты. - -### Почему ищут AI-терапевта (боли) -- 💸 "Обычный терапевт $150-200/сессия, не могу себе позволить" -- 🕐 "В 2 ночи паника — кто поможет?" -- 😰 Страх осуждения живого человека -- 📍 Нет хороших специалистов в городе -- 🚪 "Не готов к живому терапевту, хочу попробовать сначала" - -### Топ-жалоба (64% отзывов) -> **"Приложение забывает меня"** — нет памяти между сессиями. Пользователи открываются, вкладываются эмоционально, а потом снова начинают с нуля. Описывается как "предательство". - -### Что хвалят -- 24/7 без записи -- Нет осуждения -- Анонимность -- Цена vs живой терапевт -- Точка входа в терапию - ---- - -## Reddit-треды (источники) - -| Тред | Суть | -|---|---| -| [Would You Trust an AI Therapist?](https://www.reddit.com/r/therapy/comments/1cb4vlk/would_you_trust_an_ai_therapist/) — r/therapy | Скептики vs опытные. Ключевые возражения аудитории | -| [I try an AI Therapist app — frankly, the application surprised me](https://www.reddit.com/r/Anxiety/comments/1d2ept3/i_try_an_ai_therapist_app_frankly_the_application/) — r/Anxiety | "Скачал со скептицизмом, продолжаю использовать" — target user journey | -| [I talked to an AI therapist today](https://www.reddit.com/r/TalkTherapy/comments/1d7eori/i_talked_to_an_ai_therapist_today/) — r/TalkTherapy | Первый опыт, сравнение с человеком | -| [Your AI therapist is not your therapist](https://www.reddit.com/r/TalkTherapy/comments/1cfftm3/your_ai_therapist_is_not_your_therapist_the/) — r/TalkTherapy | Критика — возражения для закрытия | -| [AI Therapist (build feedback)](https://www.reddit.com/r/OpenAI/comments/1b8pvh5/ai_therapist/) — r/OpenAI | Фидбек на конкурента = список реальных user needs | - -**Аналитические источники:** -- [Best AI Therapy Apps According to Reddit — Bestie AI](https://bestieai.app/topics/wellness/best-ai-therapy-apps-reddit-reviews) -- [AI therapy Reddit posts up 400% in 2024 — Pensive](https://www.pensiveapp.com/reports/ai-therapy-reddit-analysis) — 516 аккаунтов из 65+ сабреддитов -- [Replika Reddit: Community Verdict 2026](https://www.aitooldiscovery.com/guides/replika-reddit) - -**Активные сабреддиты:** r/mentalhealth · r/therapy · r/TalkTherapy · r/Anxiety · r/depression · r/Replika · r/ChatGPT · r/OpenAI - ---- - -## Конкуренты - -| Приложение | Позиционирование | Слабое место | -|---|---|---| -| **Woebot** | CBT-бот, научная база, 2017 | Нет памяти, сухой | -| **Wysa** | FDA Breakthrough Device | Структурированный, не тёплый | -| **Youper** | JAMA-исследования, трекинг настроения | Старый UX | -| **Replika** | Companion, не терапевт | GDPR €5.6M штраф, не clinical | -| **Ash** | Память между сессиями, 2025 | Новый, мало отзывов | -| **Serena** | AI-терапевт в WhatsApp | Нишевый | -| **BetterHelp** | 30k живых терапевтов | Дорого, не AI | - -**Ключевой дифференциатор:** персистентная память + клиническая обоснованность + тёплый UX. - ---- - -## SEO-ключевики для органики - -### Высокий intent (прямой спрос) -``` -ai therapist app -ai therapy app -best ai therapy app -free ai therapist -ai mental health app -ai psychologist -ai counselor app -``` - -### Сравнительный (люди выбирают) -``` -woebot alternative -wysa vs woebot -best ai therapy app reddit -replika therapy alternative -ai therapy app comparison 2025 -``` - -### Проблемный (высокая конверсия) -``` -therapy chatbot for anxiety -ai app for depression -can't afford therapy app -therapy app without human -online therapy 24/7 -``` - -### Long-tail (незанятые — золото) -``` -ai therapist that remembers you -ai therapy app with memory -ai therapist no judgment -free mental health support ai -cbt ai app -ai therapy late night -``` - ---- - -## Рыночный контекст - -- Рост упоминаний "AI therapy" на Reddit: **+400%** (ноя 2023 → ноя 2024) -- Рынок chatbot-терапии: **$2.1B в 2025**, растёт -- 53% психологов в США: нет мест на приём (2024) -- Zero-click Google ~60% поисков → **GEO-оптимизация важнее чистого SEO** - ---- - -## Pre-Launch стратегия (выводы) - -1. **Reddit-присутствие** в r/mentalhealth, r/Anxiety, r/therapy — реальные ответы, не спам -2. **SEO под long-tail** "ai therapist that remembers you" — незанятая ниша -3. **Закрытие возражения по памяти** — топ-1 жалоба на всех конкурентов -4. **GEO** — структурированный контент для попадания в AI-выдачу Google - ---- -_Источник: исследование Reddit/Twitter, май 2026_ diff --git a/Рецепты коктейлей.md b/Рецепты коктейлей.md deleted file mode 100644 index 75a4fdcf..00000000 --- a/Рецепты коктейлей.md +++ /dev/null @@ -1,88 +0,0 @@ - -🍹 Пунш-основа «Айс-Базар» (безалкогольный, охладит даже после подьёма на пик) - -🥤 Ингредиенты (на 6–8 человек): - -Апельсиновый сок — 500 мл - -Ананасовый сок — 500 мл - -Лайм (или лимонный) сок — 100 мл - -Минеральная вода с газом — 1 л - -Лёд — от души - -Фрукты: -– Апельсины — 1–2 шт (кружочками) -– Ягоды (свежие или замороженные) -– Огурец — ½ (тонкими слайсами для свежести) - -Мята — пучок - -Имбирь — немного натёртого (по желанию, для пикантности) - -Сироп по вкусу (можно гренадин, маракуйя или даже простой сахарный) - - -> Можно приготовить в 5-литровой баклаге или изотермическом бидоне и нести с собой. - - - - ---- - -🍾 Дополнительные алкогольные опции (по желанию каждого): - -Белый ром – классический выбор под тропический вкус - -Текила – даст Margarita-вайб - -Джин – освежающий вариант - -Просекко или брют – превращает в пунш-шприц - -Вермут или биттер – для эстетов - - -> Просто поставь рядом бутылочку и табличку: «По вкусу: добавь и стань барменом». - - - - ---- - -🍢 Сопровождение (всё под холодный фруктик): - -Хумус + лаваш + оливки - -Рулеты из лаваша с творожным сыром и зеленью - -Фрукты на шпажках - -Чипсы из лаваша с соусом (йогуртовый с чесноком и мятой) - -Лёгкие роллы (огурец, авокадо, лист салата) - - - ---- - -🎶 Музыка — чтобы текло как лёд - -🍉 Ice & Groove: - -Polo & Pan – Canopée - -Parcels – Lightenup - -FKJ – Ylang Ylang - -Tame Impala – Borderline (Blood Orange Remix) - -Khruangbin – Time (You and I) - - - ---- -