[2026-05-16] Проекты 3+4: proactive-research cron, cross-enrichment cron, research-queue, plan updated
This commit is contained in:
@@ -44,12 +44,14 @@
|
||||
|
||||
## Эмуляция: план
|
||||
|
||||
→ Полный план: см. секцию ниже.
|
||||
→ **Полное research + план действий: [[switch-emulation-rom-infra]]**
|
||||
|
||||
Приоритет 1: **Switch (DKC: Tropical Freeze, Returns)**
|
||||
Приоритет 2: **Wii (DKC Returns оригинал)**
|
||||
Приоритет 1: **Switch (DKC: Tropical Freeze)** — Ryujinx (GreemDev fork) через EmuDeck
|
||||
Приоритет 2: **Wii (DKC Returns оригинал)** — Dolphin через EmuDeck (проще, без keys)
|
||||
|
||||
### EmuDeck
|
||||
**Важно:** оригинальный Ryujinx закрылся (окт. 2024). Актуальный — GreemDev fork. Eden — для Android.
|
||||
|
||||
### EmuDeck (первый шаг)
|
||||
|
||||
```bash
|
||||
# В KDE Desktop Mode (не gamescope):
|
||||
|
||||
@@ -0,0 +1,247 @@
|
||||
# Switch Эмуляция и ROM-инфраструктура — Research
|
||||
|
||||
> Исследование: май 2026. Цель: запустить DKC Tropical Freeze / Returns на HTPC, настроить автоматический поиск и скачку через Кракена/Eagle.
|
||||
|
||||
---
|
||||
|
||||
## 1. Switch Эмулятор — Текущий Landscape (2026)
|
||||
|
||||
### Ситуация
|
||||
Nintendo подала в суд: **оригинальный Ryujinx закрылся** (октябрь 2024), **Yuzu закрылся** раньше. Оба форка живы:
|
||||
|
||||
| Эмулятор | Основа | Статус | Для чего |
|
||||
|----------|--------|--------|----------|
|
||||
| **Ryujinx (GreemDev)** | Ryujinx | ✅ Активно, GitHub | Десктоп (Win/Linux/macOS) |
|
||||
| **Eden** | Yuzu | ✅ Активно, eden-emu.dev | Android + десктоп |
|
||||
| Citron | Yuzu | Активно | Альтернатива |
|
||||
| Suyu/Sudachi | Yuzu | Менее активны | Эксперименты |
|
||||
|
||||
**Для HTPC (Bazzite/Linux десктоп): рекомендован Ryujinx (GreemDev fork).**
|
||||
Eden больше ориентирован на Android, хотя DKC Tropical Freeze на нём тоже работает.
|
||||
|
||||
### EmuDeck — правильный способ установки
|
||||
EmuDeck автоматически ставит Ryujinx, настраивает пути, добавляет в Steam ROM Manager.
|
||||
|
||||
```bash
|
||||
# В KDE Desktop Mode (не gamescope):
|
||||
curl -L https://raw.githubusercontent.com/dragoonDorise/EmuDeck/main/install.sh | bash
|
||||
```
|
||||
|
||||
Ryujinx после установки через EmuDeck:
|
||||
- Бинарь: `/home/bazzite/Applications/publish/Ryujinx`
|
||||
- Конфиг: `~/.config/Ryujinx/`
|
||||
- **Keys: `~/Emulation/bios/ryujinx/keys/`** (не `~/.config/Ryujinx/system/`)
|
||||
- ROMs: `~/Emulation/roms/switch/`
|
||||
- Saves: `~/Emulation/saves/ryujinx/saves/`
|
||||
|
||||
---
|
||||
|
||||
## 2. prod.keys — Где взять
|
||||
|
||||
`prod.keys` — ключи шифрования Nintendo Switch. Технически: дамп из реального Switch через Hekate/Lockpick_RCM.
|
||||
|
||||
### Практика (common knowledge)
|
||||
Ключи широко распространены в community-источниках:
|
||||
- **Rutracker**: поиск "Nintendo Switch prod.keys" или "switch firmware keys"
|
||||
- **4PDA**: раздел эмуляторов Switch
|
||||
- **Archive.org**: публичные архивы с firmware дампами
|
||||
- Telegram-каналы по Switch эмуляции
|
||||
|
||||
### Версионность
|
||||
`prod.keys` должны соответствовать или быть новее firmware. Рекомендуется брать свежую связку keys + firmware одной версии (17.0.0+).
|
||||
|
||||
### Установка
|
||||
```
|
||||
~/Emulation/bios/ryujinx/keys/prod.keys
|
||||
~/Emulation/bios/ryujinx/keys/title.keys # опционально, нужны для некоторых игр
|
||||
```
|
||||
|
||||
Firmware ставится через GUI: Ryujinx → `Tools → Install Firmware → Install from XCI or ZIP`
|
||||
|
||||
---
|
||||
|
||||
## 3. DKC Tropical Freeze — Совместимость
|
||||
|
||||
**Статус:** ✅ Работает
|
||||
|
||||
| Железо | Эмулятор | Результат |
|
||||
|--------|----------|-----------|
|
||||
| i5-6500 + GTX 1050 Ti | Eden | Perfect |
|
||||
| M1 Pro | Ryujinx 1.1.0 | Отлично (video на Reddit) |
|
||||
|
||||
Наше железо (i7-6800K + RX 570) сопоставимо с i5-6500 + GTX 1050 Ti. RX 570 поддерживает Vulkan — основной backend для Linux. **Ожидается: Playable до Perfect.**
|
||||
|
||||
**DKC Returns HD** (2025, Switch): новая ремастер-версия, более требовательная. Начинать с Tropical Freeze (2018 порт) — он оптимальнее на эмуляторе.
|
||||
|
||||
### ROMs форматы
|
||||
- `.nsp` — предпочтительный (NSP = Nintendo Submission Package)
|
||||
- `.xci` — картридж-дамп, тоже работает
|
||||
|
||||
---
|
||||
|
||||
## 4. qBittorrent на HTPC
|
||||
|
||||
### Установка (Flatpak, без rpm-ostree)
|
||||
```bash
|
||||
ssh -i ~/.ssh/id_rsa bazzite@192.168.1.86 \
|
||||
"flatpak install -y flathub com.qbittorrent.qBittorrent"
|
||||
```
|
||||
|
||||
### Настройка Web UI
|
||||
В GUI: Tools → Options → Web UI:
|
||||
- Enable Web UI: ✅
|
||||
- Port: **8080**
|
||||
- Authentication: задать логин/пароль
|
||||
- IP: 0.0.0.0 (все интерфейсы)
|
||||
|
||||
Или через SSH после запуска — конфиг в `~/.var/app/com.qbittorrent.qBittorrent/config/qBittorrent/qBittorrent.conf`.
|
||||
|
||||
После настройки: `http://192.168.1.86:8080`
|
||||
|
||||
### API — как Eagle/Кракен добавляет торрент
|
||||
|
||||
```bash
|
||||
# 1. Логин — получаем SID cookie
|
||||
SID=$(curl -s -i \
|
||||
--header 'Referer: http://192.168.1.86:8080' \
|
||||
--data 'username=admin&password=PASSWORD' \
|
||||
http://192.168.1.86:8080/api/v2/auth/login \
|
||||
| grep -i 'set-cookie' | grep -o 'SID=[^;]*')
|
||||
|
||||
# 2. Добавить магнет-ссылку
|
||||
curl -s \
|
||||
--cookie "$SID" \
|
||||
--data-urlencode "urls=magnet:?xt=urn:btih:HASH&dn=..." \
|
||||
--data "savepath=/home/bazzite/Emulation/roms/switch/" \
|
||||
http://192.168.1.86:8080/api/v2/torrents/add
|
||||
|
||||
# 3. Проверить статус
|
||||
curl -s --cookie "$SID" \
|
||||
"http://192.168.1.86:8080/api/v2/torrents/info?filter=all" | jq '.[].name'
|
||||
```
|
||||
|
||||
Полный API: cookie-based, `/api/v2/torrents/add` принимает:
|
||||
- `urls` — магнет или URL торрент-файла
|
||||
- `savepath` — куда сохранить
|
||||
- `category` — категория
|
||||
|
||||
---
|
||||
|
||||
## 5. Jackett на Кракене — Поиск по трекерам
|
||||
|
||||
### Что это
|
||||
Jackett — proxy-сервер который транслирует поисковые запросы в tracker-специфичные HTTP запросы. Поддерживает **RuTracker.org** (semi-private, нужна учётка).
|
||||
|
||||
### Установка на Кракене (Docker)
|
||||
```yaml
|
||||
# /srv/.../docker/jackett/docker-compose.yml
|
||||
services:
|
||||
jackett:
|
||||
image: lscr.io/linuxserver/jackett:latest
|
||||
container_name: jackett
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Asia/Bishkek
|
||||
volumes:
|
||||
- ./config:/config
|
||||
- ./downloads:/downloads
|
||||
ports:
|
||||
- 9117:9117
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
```bash
|
||||
ssh kraken-ssh "cd /srv/.../docker/jackett && docker compose up -d"
|
||||
```
|
||||
|
||||
Web UI: `http://192.168.1.14:9117`
|
||||
|
||||
### Настройка RuTracker
|
||||
1. Открыть Jackett Web UI → Add Indexer → поиск "rutracker"
|
||||
2. Ввести логин/пароль от RuTracker.org
|
||||
3. Test indexer — должен вернуть результаты
|
||||
|
||||
### API — как Eagle ищет игру
|
||||
```bash
|
||||
# Поиск через Jackett Torznab API
|
||||
curl "http://192.168.1.14:9117/api/v2.0/indexers/rutracker/results/torznab/?apikey=JACKETT_KEY&t=search&q=Donkey+Kong+Tropical+Freeze+Switch&cat=8000"
|
||||
# Возвращает XML/JSON с magnet-ссылками и метаданными
|
||||
```
|
||||
|
||||
Jackett также поддерживает JSON: добавить `&format=json` или использовать `results/torznab` endpoint.
|
||||
|
||||
---
|
||||
|
||||
## 6. Целевая Архитектура: Полный Flow
|
||||
|
||||
```
|
||||
Eagle/Кракен (агент)
|
||||
│
|
||||
├── 1. Запрос: "найди DKC Tropical Freeze NSP"
|
||||
│
|
||||
├── 2. Поиск: Jackett API (Кракен :9117)
|
||||
│ └── rutracker → список торрентов с магнетами
|
||||
│
|
||||
├── 3. Выбор лучшего результата (seeders, размер, формат)
|
||||
│
|
||||
├── 4. Добавление в qBittorrent (HTPC :8080)
|
||||
│ └── magnet URL + savepath=/home/bazzite/Emulation/roms/switch/
|
||||
│
|
||||
└── 5. Уведомление: "скачивается X GB, ~Y мин"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. План действий (приоритет)
|
||||
|
||||
### Шаг 1: EmuDeck + Ryujinx (разовая установка, нужен Desktop Mode)
|
||||
```bash
|
||||
# Переключиться в Desktop Mode на HTPC, затем:
|
||||
ssh -i ~/.ssh/id_rsa bazzite@192.168.1.86 \
|
||||
"curl -L https://raw.githubusercontent.com/dragoonDorise/EmuDeck/main/install.sh -o /tmp/emudeck.sh && bash /tmp/emudeck.sh"
|
||||
# Либо запустить интерактивно из браузера на HTPC
|
||||
```
|
||||
⚠️ EmuDeck требует GUI для первоначальной настройки (создаёт директории, настраивает Steam ROM Manager).
|
||||
|
||||
### Шаг 2: prod.keys + firmware
|
||||
- Найти на Rutracker или 4PDA свежую пару keys + firmware (17.0.x)
|
||||
- Положить в `~/Emulation/bios/ryujinx/keys/`
|
||||
- Установить firmware через Ryujinx GUI
|
||||
|
||||
### Шаг 3: qBittorrent на HTPC
|
||||
```bash
|
||||
ssh -i ~/.ssh/id_rsa bazzite@192.168.1.86 \
|
||||
"flatpak install -y flathub com.qbittorrent.qBittorrent"
|
||||
```
|
||||
Настроить Web UI через GUI (один раз).
|
||||
|
||||
### Шаг 4: Jackett на Кракене
|
||||
```bash
|
||||
ssh kraken-ssh "mkdir -p /srv/.../docker/jackett && cd /srv/.../docker/jackett"
|
||||
# Создать docker-compose.yml (выше), добавить RuTracker учётку
|
||||
```
|
||||
|
||||
### Шаг 5: ROM
|
||||
- Через Jackett: найти NSP/XCI для DKC Tropical Freeze
|
||||
- Закачать через qBittorrent в `~/Emulation/roms/switch/`
|
||||
- Запустить через Steam ROM Manager → появится в Gaming Mode
|
||||
|
||||
---
|
||||
|
||||
## 8. Open Questions
|
||||
|
||||
- [ ] EmuDeck требует десктопного сессии на HTPC — нужно физически или через VNC? Через SSH не пойдёт (нужен GUI установщик)
|
||||
- [ ] RuTracker учётка — есть? Надо создать если нет
|
||||
- [ ] Jackett: добавить на Кракен как постоянный сервис рядом с Transmission
|
||||
- [ ] Совместная игра: DKC Tropical Freeze поддерживает кооп (2 игрока) — идеально папа + Лиза
|
||||
|
||||
---
|
||||
|
||||
## Ссылки
|
||||
|
||||
- EmuDeck Wiki Ryujinx: https://emudeck.github.io/emulators/steamos/ryujinx/
|
||||
- Ryujinx (GreemDev fork): https://github.com/GreemDev/Ryujinx
|
||||
- Eden: https://eden-emu.dev
|
||||
- Jackett: https://github.com/Jackett/Jackett
|
||||
- qBittorrent API: https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation
|
||||
@@ -231,99 +231,65 @@ AI/ML memory architectures, Obsidian PKM patterns, personal-os architecture deci
|
||||
|
||||
**Цель:** агент сам инициирует исследования исходя из профиля и пробелов в wiki.
|
||||
|
||||
**Архитектура:**
|
||||
#### Архитектура
|
||||
|
||||
```
|
||||
User Profile (интересы, проекты, домены, семья)
|
||||
Gap Detector (читает vault, находит темы без wiki-страниц)
|
||||
↓
|
||||
Gap Detector (читает wiki, находит слабосвязанные области)
|
||||
research-queue.md (приоритизированный список)
|
||||
↓
|
||||
Hypothesis Generator (формирует вопросы для исследования)
|
||||
proactive-research cron (суббота 05:00, 1 тема за прогон)
|
||||
↓
|
||||
Research Queue (приоритизированный список)
|
||||
3-round research loop → wiki page
|
||||
↓
|
||||
Autonomous Research Runs (по расписанию, по одному вопросу)
|
||||
↓
|
||||
Results → wiki/inbox → review
|
||||
queue item помечается [x], wiki/index.md обновляется
|
||||
```
|
||||
|
||||
#### Компоненты
|
||||
|
||||
**research-queue.md** (`wiki/research-queue.md`)
|
||||
- Живой список тем для исследования
|
||||
- Воркер берёт top-1 `[ ]` item каждую субботу
|
||||
- Alex может добавлять вручную
|
||||
- ✅ Создан с 7 начальными темами (2026-05-16)
|
||||
|
||||
**proactive-research cron** (суббота 05:00)
|
||||
- Gap detection: темы 3+ упоминаний в vault без wiki-страницы → добавляет в queue
|
||||
- 3-round research loop: broad → deep → synthesis
|
||||
- Создаёт/обновляет wiki page, обновляет index.md, отмечает queue item
|
||||
- ✅ Cron создан (job: 41896d17f5fc, 2026-05-16)
|
||||
|
||||
**Начальная очередь:**
|
||||
- Obsidian Bases vs Dataview 2026
|
||||
- Skip.tools production-readiness
|
||||
- Home Assistant + Zigbee для RPi5
|
||||
- AI mental health apps landscape
|
||||
- Swift Concurrency 2026
|
||||
- Personal OS orchestration alternatives
|
||||
- Indie iOS monetization 2026
|
||||
|
||||
**Статус:** ✅ Инфраструктура создана 2026-05-16. Первый прогон: 2026-05-23.
|
||||
|
||||
---
|
||||
|
||||
### Проект 4: Cross-domain Enrichment Agent
|
||||
|
||||
**Цель:** универсальный агент который берёт любой список/заметку из vault, читает user profile, обогащает данными из внешних источников.
|
||||
**Цель:** vault note + external signal → personalized insight. Два режима: разовое обогащение и регулярный мониторинг.
|
||||
|
||||
**Принципы (без хардкода конкретных файлов):**
|
||||
#### Архитектура
|
||||
|
||||
1. **Target Discovery** — агент сам находит заметки которые поддаются обогащению: списки без внешних данных, заметки с тегом `enrich-me`, файлы давно не обновлявшиеся
|
||||
2. **Profile-aware** — всегда читает `wiki/user-profile.md` перед обогащением, фильтрует под конкретный контекст
|
||||
3. **Output isolation** — результат сохраняется как отдельная заметка рядом с исходной, исходник не трогает
|
||||
4. **Source tagging** — каждый enriched факт содержит источник + дату → можно обновлять
|
||||
|
||||
**User Profile** (создать `wiki/user-profile.md`) — единый источник правды о пользователе:
|
||||
```markdown
|
||||
## Alex
|
||||
- Интересы: [заполнить]
|
||||
- Текущие проекты: [заполнить]
|
||||
- Домены: [заполнить]
|
||||
|
||||
## Семья
|
||||
- [заполнить — состав, возрасты, интересы]
|
||||
```
|
||||
Enrichment: Vault note + External (web) → companion note рядом с исходником
|
||||
Monitoring: External stream → фильтр через user-profile → digest delivered
|
||||
```
|
||||
|
||||
**Примеры цепочек:** см. Часть 5a
|
||||
|
||||
**Стек:** Hermes cron + web toolset + terminal (git change detection) + obsidian MCP
|
||||
|
||||
**Оценка:** зависит от количества target notes; архитектура универсальная
|
||||
|
||||
---
|
||||
|
||||
**Цель:** агент сам инициирует исследования исходя из профиля и пробелов в wiki.
|
||||
|
||||
**Архитектура:**
|
||||
```
|
||||
User Profile (интересы, проекты, домены)
|
||||
↓
|
||||
Gap Detector (читает wiki, находит слабосвязанные области)
|
||||
↓
|
||||
Hypothesis Generator (формирует вопросы для исследования)
|
||||
↓
|
||||
Research Queue (приоритизированный список)
|
||||
↓
|
||||
Autonomous Research Runs (по расписанию, по одному вопросу)
|
||||
↓
|
||||
Results → wiki/inbox → review
|
||||
```
|
||||
|
||||
**User Profile** — файл `wiki/user-profile.md`:
|
||||
- Технические домены: Swift/iOS, home infrastructure, AI agents, media pipeline
|
||||
- Текущие проекты: personal-os, executor, media-toolbox
|
||||
- Интересы: home automation, music production, cycling, parenting
|
||||
|
||||
**Gap Detector** (еженедельно):
|
||||
1. Читает wiki/index.md
|
||||
2. Смотрит на последние сессии (briefs/daily)
|
||||
3. Находит: что упоминается но нет страницы? что давно не обновлялось? где кластеры не связаны?
|
||||
4. Генерирует список hypothesis: "исследовать X", "сравнить A vs B", "что нового в Y"
|
||||
|
||||
**Research Queue** — `wiki/research-queue.md`:
|
||||
```markdown
|
||||
## Priority Queue
|
||||
- [ ] Obsidian Bases vs Dataview — что использовать в 2026?
|
||||
- [ ] Home Assistant integrations для RPi5
|
||||
- [ ] Swift Concurrency patterns актуальные
|
||||
- [ ] Personal OS orchestration alternatives
|
||||
```
|
||||
|
||||
**Scheduled Research** (например, еженедельно по субботам):
|
||||
- Берёт top-1 из queue
|
||||
- Запускает 3-round research loop
|
||||
- Сохраняет в wiki
|
||||
- Репортирует тебе с саммари
|
||||
|
||||
**Стек:** новый cron + wiki-research skill + research-queue.md
|
||||
|
||||
**Оценка:** 1-2 недели (зависит от wiki-research skill)
|
||||
**vault-cross-enrichment cron** (воскресенье 04:00, web+file+terminal toolsets)
|
||||
- Target discovery: `enrich-me` тег, файлы 30+ дней без обновления, app-ideas
|
||||
- Enrichment types: app-ideas competitive analysis, wishlists (games/books/movies), travel, home automation
|
||||
- Profile-aware: всё фильтруется через `wiki/user-profile.md`
|
||||
- Output isolation: результат в `-enriched.md` companion файле, исходник не трогает
|
||||
- Monitoring digest: tech stack updates, indie/App Store news, Bishkek local
|
||||
- ✅ Cron создан (job: f3de00040aac, 2026-05-16)
|
||||
|
||||
---
|
||||
|
||||
@@ -528,11 +494,11 @@ skills/ → процедуры и workflows пошагово
|
||||
|
||||
| Проект | Статус | Следующий шаг |
|
||||
|---|---|---|
|
||||
| Проект 1: Vault Enrichment | 🟡 В процессе | Воскресный прогон по новому промпту (топик-карты) |
|
||||
| Проект 2: LLM Wiki Accumulation | ✅ Реализован | wiki-curation обновлён: crystallization + synthesize + inbox |
|
||||
| Проект 3: Proactive Research | ⬜ Не начат | После наполнения wiki |
|
||||
| Проект 4: Cross-domain Enrichment | ⬜ Следующий | Архитектура готова, воркер не создан |
|
||||
| Проект 5: Memory Organizer | 🟡 В процессе | Шаг 0 сделан; daily cron запущен; wiki/tech/ частично заполнена |
|
||||
| Проект 1: Vault Enrichment | 🟡 В процессе | Воскресный прогон по топик-картам |
|
||||
| Проект 2: LLM Wiki Accumulation | ✅ Готов | crystallization + synthesize + inbox в wiki-curation |
|
||||
| Проект 3: Proactive Research | ✅ Готов | research-queue.md + cron суббота 05:00 |
|
||||
| Проект 4: Cross-domain Enrichment | ✅ Готов | vault-cross-enrichment cron воскресенье 04:00 |
|
||||
| Проект 5: Memory Organizer | 🟡 В процессе | daily cron 04:00; wiki/tech/ частично заполнена |
|
||||
|
||||
### Что сделано (2026-05-16)
|
||||
- Task 3b убран из wiki-curation
|
||||
|
||||
@@ -67,6 +67,7 @@ relevant to Alex's specific setup.
|
||||
| `raw/inbox/` | drop zone — files here get processed by nightly cron |
|
||||
| `raw/articles/` | extracted web articles (immutable after write) |
|
||||
| `raw/papers/` | PDFs and papers (immutable after write) |
|
||||
| `research-queue.md` | proactive research queue — topics to investigate (Saturday cron) |
|
||||
|
||||
## Inbox Protocol
|
||||
|
||||
|
||||
@@ -47,3 +47,4 @@ Auto-maintained catalog of all pages in `wiki/`. Updated by the daily curation c
|
||||
|
||||
- [[SCHEMA]] — Domain definition and curation rules for this wiki
|
||||
- [[log]] — Curation activity log
|
||||
- [[research-queue]] — Proactive research queue (Saturday cron picks top item)
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: Research Queue
|
||||
updated: '2026-05-16'
|
||||
tags:
|
||||
- research
|
||||
- queue
|
||||
- personal-os
|
||||
---
|
||||
# Research Queue
|
||||
|
||||
> Приоритизированная очередь для автономных исследований. Читается `proactive-research` cron (суббота 05:00).
|
||||
> Воркер берёт top-1 `[ ]` item, исследует, сохраняет в wiki/, отмечает `[x]`.
|
||||
> Для добавления: просто добавь `- [ ]` строку в ## Priority Queue.
|
||||
|
||||
---
|
||||
|
||||
## Priority Queue
|
||||
|
||||
- [ ] Obsidian Bases vs Dataview — что использовать в 2026 для личного vault?
|
||||
- [ ] Skip.tools — текущее состояние, production-ready ли для iOS+Android из одного SwiftUI кода?
|
||||
- [ ] Home Assistant + Zigbee 2026 — лучшие устройства под RPi5 бюджетно
|
||||
- [ ] AI mental health apps — что вышло в 2025-2026, какие ниши заняты, где Gap для Reflect
|
||||
- [ ] Swift Concurrency patterns — async/await best practices 2026, что изменилось
|
||||
- [ ] Personal OS orchestration alternatives — что появилось после MemGPT/Letta, есть ли что лучше для home use
|
||||
- [ ] Indie iOS app monetization 2026 — RevenueCat vs alternatives, что работает для нишевых apps
|
||||
|
||||
## Completed
|
||||
|
||||
<!-- Воркер переносит сюда выполненные, ссылается на wiki page -->
|
||||
Reference in New Issue
Block a user