daily 2026-04-18 итог + 2026-04-19 план (после закрытия 6 пунктов)
This commit is contained in:
84
daily/2026-04-18.md
Normal file
84
daily/2026-04-18.md
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-18
|
||||||
|
type: daily
|
||||||
|
tags: [daily, kb-improvements, summary]
|
||||||
|
---
|
||||||
|
|
||||||
|
# 2026-04-18
|
||||||
|
|
||||||
|
## Итог дня — много сделано
|
||||||
|
|
||||||
|
### Закрыто из вчерашнего плана
|
||||||
|
- [x] **Fix B**: `.zshenv` unset 7 env-переменных от Claude Desktop → `claude` работает в Obsidian-terminal без 401
|
||||||
|
- [x] **Консолидация auto-memory**: 14 → 12 файлов, openclaw-feedback смёржен в `project_openclaw_bot.md`, создан `feedback_env_cleanup.md` + `feedback_sync_architecture.md`
|
||||||
|
- [x] **Audit расширен**: `kb-audit-npm.py`, `kb-audit-creds.py`, `kb-audit-dns.py` — в воскресном cron
|
||||||
|
- [x] **KB health + level 4 agent-loop** (karpathy-style):
|
||||||
|
- `scripts/kb-health.py` — 6 категорий штрафов, JSON для сравнения
|
||||||
|
- `scripts/kb-agent-loop.sh` — Opus правит в ветке, auto-merge если score ниже
|
||||||
|
- **Первый прогон: 493 → 45** (−91%). Opus сам написал helper `kb-add-indexes.py`
|
||||||
|
- [x] **iPhone Obsidian через iCloud**:
|
||||||
|
- vault скопирован в `~/Library/Mobile Documents/iCloud~md~obsidian/Documents/knowledge-base`
|
||||||
|
- `sync-icloud.sh` — rclone bisync local↔local (не падает в launchd)
|
||||||
|
- в Stop-hook: после sync.sh → sync-icloud.sh
|
||||||
|
- iPhone Obsidian видит vault в iCloud-разделе
|
||||||
|
- [x] **Фото Mac → Nextcloud**: `osxphotos export` → 697 файлов (3.1 GB) в `~/Library/CloudStorage/Nextcloud-admin@dttb․ru/Photos/` с раскладкой `YYYY/YYYY-MM/`. File Provider аплодит на сервер в фоне.
|
||||||
|
|
||||||
|
### Отложено на 2026-04-19
|
||||||
|
См. [[2026-04-19]].
|
||||||
|
|
||||||
|
## Инфраструктура — новые компоненты
|
||||||
|
|
||||||
|
```
|
||||||
|
~/.config/nextcloud-kb/
|
||||||
|
├── sync.sh ← rclone bisync WebDAV ↔ Nextcloud (ручной + Stop-hook)
|
||||||
|
├── sync-icloud.sh ← NEW rclone bisync local ↔ iCloud Obsidian
|
||||||
|
└── session-saver.py ← сохраняет transcript в notes/claude/
|
||||||
|
|
||||||
|
knowledge-base/scripts/
|
||||||
|
├── kb-audit.py / kb-audit-apply.py / kb-audit-propose.sh ← Proxmox inventory drift
|
||||||
|
├── kb-audit-npm.py / kb-audit-creds.py / kb-audit-dns.py ← NEW расширение
|
||||||
|
├── kb-health.py ← NEW метрика качества KB
|
||||||
|
├── kb-agent-loop.sh ← NEW karpathy-style self-healing
|
||||||
|
├── kb-add-indexes.py ← NEW написан Opus для решения orphan_files
|
||||||
|
└── kb_audit_helpers.py ← общие функции
|
||||||
|
|
||||||
|
cron on code-server:
|
||||||
|
*/5 * * * * kb-autosync.sh
|
||||||
|
0 6 * * 0 audit + apply + health + agent-loop + propose (одной цепочкой)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Полная картина синхронизации сейчас
|
||||||
|
|
||||||
|
```
|
||||||
|
iPhone Obsidian (iCloud vault) iPhone-Nextcloud-app (photos, files)
|
||||||
|
↕ iCloud sync ↕ WebDAV
|
||||||
|
↕ ↕
|
||||||
|
~/Library/Mobile Documents/... Nextcloud dttb.ru (VM 250)
|
||||||
|
↕ sync-icloud.sh (Stop-hook) ↕ macOS File Provider
|
||||||
|
↕ ↕
|
||||||
|
╚══════════════════════════════════════════╝
|
||||||
|
↕
|
||||||
|
~/knowledge-base (Mac primary)
|
||||||
|
↕ git push/pull, obsidian-git autoPush
|
||||||
|
↕
|
||||||
|
Gitea git.dttb.ru (LXC 136)
|
||||||
|
↕
|
||||||
|
code-server LXC 132 (RW, cron */5)
|
||||||
|
openclaw LXC 137 (RO, cron */15)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Метрики
|
||||||
|
|
||||||
|
- KB health score: **45** (было утром 493)
|
||||||
|
- Коммитов за день: ~25 (включая 2 от `kb-agent-loop`)
|
||||||
|
- Файлов в vault: 169 md (с frontmatter: все)
|
||||||
|
- Память Claude Code: 12 файлов (с 14)
|
||||||
|
- Photos экспортировано: 697 файлов / 3.1 GB
|
||||||
|
|
||||||
|
## Что работает автоматом теперь
|
||||||
|
|
||||||
|
1. **Stop Claude-сессии** → save transcript → sync to Nextcloud WebDAV → sync to iCloud
|
||||||
|
2. **Каждые 5 мин на code-server** → pull + auto-commit + push
|
||||||
|
3. **Каждые 15 мин на openclaw** → pull (read-only, self-heal)
|
||||||
|
4. **Каждые 5 мин Obsidian-git** → auto-commit + auto-push
|
||||||
|
5. **Каждое воскресенье 06:00** → full audit chain + agent-loop self-healing
|
||||||
@@ -6,67 +6,82 @@ tags: [planning, kb-improvements]
|
|||||||
|
|
||||||
# 2026-04-19
|
# 2026-04-19
|
||||||
|
|
||||||
## Приоритеты дня — улучшения KB-системы
|
## Вчера сделано за день
|
||||||
|
|
||||||
Перенесено из вчерашней сессии (см. итоги в `notes/claude/2026-04-17-*-httpsgithub...md`).
|
См. [[2026-04-18]] — 6 крупных пунктов закрыто:
|
||||||
|
- Fix B env cleanup, консолидация auto-memory, расширение audit (NPM/Creds/DNS)
|
||||||
|
- KB health metric + level 4 agent-loop (**score 493 → 45**, Opus сам написал helper)
|
||||||
|
- iPhone Obsidian через iCloud, Mac-фото в Nextcloud (697 файлов)
|
||||||
|
|
||||||
### 🔧 Блокер — ✅ сделано вечером 2026-04-18
|
## Приоритеты сегодня
|
||||||
- [x] **Fix B:** unset host-managed auth-env в `~/.zshenv` (читается всеми zsh — login, non-login, interactive, non-interactive). Снимает: `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`, `CLAUDE_INTERNAL_FC_OVERRIDES`, `CLAUDE_CODE_SDK_HAS_OAUTH_REFRESH`, `CLAUDE_CODE_ENTRYPOINT`, `CLAUDE_CODE_OAUTH_TOKEN` (протухший от host), `ANTHROPIC_API_KEY`, `ANTHROPIC_BASE_URL`. CLI теперь фолбэкается на Keychain со свежим токеном после `/login`.
|
|
||||||
- [ ] Утром проверить: открыть Obsidian → Cmd+P → Integrated terminal → `claude` → без 401. (2026-04-19)
|
|
||||||
|
|
||||||
### 🎯 Топ-3 улучшения (порядок по ROI)
|
### A. iPhone auto-upload фото в Nextcloud (5 мин)
|
||||||
|
На iPhone → Nextcloud app → Настройки → Автозагрузка:
|
||||||
|
1. Включить «Автоматически загружать фото» и «…видео»
|
||||||
|
2. Каталог: `/Photos/iPhone-upload/`
|
||||||
|
3. Только по Wi-Fi
|
||||||
|
4. Включить «Загружать существующие»
|
||||||
|
|
||||||
1. **Консолидация `claude-memory/MEMORY.md` через skill** ⭐ (~5 мин)
|
Работает в фоне часы-сутки. После — можно освобождать iCloud.
|
||||||
- Запустить `/consolidate-memory` — объединить дубликаты, убрать устаревшее, обновить индекс
|
|
||||||
- Эффект мгновенный: быстрее старт Claude-сессий, меньше токенов
|
|
||||||
- В cron раз в месяц
|
|
||||||
|
|
||||||
2. **Расширить audit на NPM + DNS + Credentials** (~час)
|
### B. Проверить что Mac-фото доехали на dttb.ru сервер
|
||||||
- Сейчас audit только для Proxmox VM/LXC (`proxmox-inventory.md`)
|
Вчера File Provider начал upload 3.1 GB. Проверить:
|
||||||
- Добавить проверки:
|
```bash
|
||||||
- NPM API → сверить с таблицей в `projects/dttb/npm-proxy-hosts.md`
|
curl -sku admin:'1qaz!QAZ' -X PROPFIND \
|
||||||
- DNS A-записи Spaceweb → сверить с backend-IP в NPM
|
"https://dttb.ru/remote.php/dav/files/admin/Photos/" -H "Depth: 1" \
|
||||||
- Credentials — пинговать каждый URL, проверять по 401/403 не сменились ли пароли
|
| python3 -c "import sys,xml.etree.ElementTree as ET; \
|
||||||
- Тот же механизм что для inventory, но покрывает сеть и авторизации
|
r=ET.fromstring(sys.stdin.read()); \
|
||||||
|
print(len(r.findall('{DAV:}response')), 'objects')"
|
||||||
|
```
|
||||||
|
|
||||||
3. **KB health-метрика + уровень 4 (karpathy-style agent loop)** (~день) ⭐⭐
|
### C. Второй прогон agent-loop (10 мин) — эксперимент
|
||||||
- Написать `scripts/kb-health.py`:
|
Запустить вручную — посмотреть уйдёт ли score с 45 ниже (там остались duplicate_basenames=3 и broken_paths=3):
|
||||||
- битые `[[wikilinks]]`
|
```bash
|
||||||
- файлы без frontmatter
|
ssh root@10.0.0.250 'pct exec 132 -- bash -c "bash /root/knowledge-base/scripts/kb-agent-loop.sh"'
|
||||||
- TODO без дедлайнов
|
tail /var/log/kb-agent-loop.log
|
||||||
- orphan-файлы (нет бэклинков)
|
```
|
||||||
- средний возраст decisions/
|
|
||||||
- Уровень 4: `scripts/kb-agent-loop.sh`
|
|
||||||
- ветка `auto-fix/DATE`
|
|
||||||
- Opus читает KB + health-метрику
|
|
||||||
- вносит правки → прогон `kb-health.py`
|
|
||||||
- score лучше → merge, хуже → reset
|
|
||||||
- **Цель:** KB не деградирует со временем, сама залечивает drift
|
|
||||||
|
|
||||||
### 🔄 Дополнительные (когда созреет)
|
## Большие задачи на будущее (не сегодня)
|
||||||
|
|
||||||
- [ ] **Семантический поиск для openclaw-бота (RAG)** — эмбеддинги md-файлов → Telegram-поиск "найди всё про VPN в марте" за секунду (~день) (2026-04-19)
|
### RAG для openclaw-бота (~день) ⭐⭐
|
||||||
- [ ] **Интерактивный iPhone Obsidian через iCloud Drive** — symlink vault в iCloud, iPhone подхватывает (~30 мин) (2026-04-19)
|
- Эмбеддинги .md файлов через OmniRoute (бесплатно)
|
||||||
- [ ] **Тест восстановления из PBS** — диз-симуляция потери LXC 136 gitea / VM 250 Nextcloud (~час) (2026-04-19)
|
- SQLite/Qdrant локально на openclaw
|
||||||
- [ ] **Openclaw: реальная делегация** — или второй бот под opus, или regex-hook в message-handler (сложно, нужны исходники openclaw) (2026-04-19)
|
- `post-commit` git hook обновляет эмбеддинги при изменениях
|
||||||
|
- Бот в Telegram делает vector search → топ-5 файлов в контекст Opus
|
||||||
|
- **Цель**: «найди что я писал про VPN в марте» → за секунду релевантный ответ
|
||||||
|
|
||||||
|
### Тест восстановления из PBS (~час)
|
||||||
|
- Потерять симулированно LXC 136 (gitea) → сколько минут до работы?
|
||||||
|
- Потерять VM 250 (Nextcloud) → то же
|
||||||
|
- Задокументировать runbook в `decisions/`
|
||||||
|
- **Цель**: узнать проблему с бэкапами сейчас, а не когда что-то реально потеряно
|
||||||
|
|
||||||
|
### Openclaw: реальная делегация (~1-2 часа)
|
||||||
|
Два пути:
|
||||||
|
- **Второй Telegram-бот** с профилем opus-only через CLIProxy — новая переменная окружения
|
||||||
|
- **Regex-hook в message-handler** — сложно, openclaw минифицирован, нужен обход
|
||||||
|
|
||||||
|
### Auto-apply для NPM drift (~30 мин)
|
||||||
|
По аналогии с `kb-audit-apply.py` (Proxmox): новые proxy hosts автоматом добавлять в `npm-proxy-hosts.md`.
|
||||||
|
|
||||||
|
### Session-saver v2 (~час)
|
||||||
|
Парсить transcript Claude и флажить:
|
||||||
|
- Упомянутые IP/хосты, которых нет в inventory
|
||||||
|
- TODO появившиеся в диалоге
|
||||||
|
- Команды, которые стоит в `snippets/`
|
||||||
|
|
||||||
## Инфраструктура
|
## Инфраструктура
|
||||||
|
|
||||||
Без изменений. Вчерашняя сессия добавила:
|
Без изменений после вчера. Вся автоматика работает:
|
||||||
- scripts/kb-audit.py, kb-audit-apply.py, kb-audit-propose.sh
|
- Stop-hook: session-saver → sync (Nextcloud) → sync-icloud
|
||||||
- Stop-hook + session-saver для Claude-сессий
|
- code-server cron */5: auto-sync git
|
||||||
- obsidian-terminal + autoPush в obsidian-git
|
- openclaw cron */15: RO pull (self-heal)
|
||||||
- Cron на code-server: воскр 06:00 (audit → apply → propose)
|
- obsidian-git 5 мин autoPush
|
||||||
- Обновлён proxmox-inventory.md (21 LXC, 15 VM)
|
- воскр 06:00: full audit + agent-loop
|
||||||
|
|
||||||
## Заметки
|
## Заметки
|
||||||
|
|
||||||
Сравнение с Karpathy/autoresearch в `notes/claude/2026-04-17-*`. Их идея: агент правит `train.py`, метрика `val_bpb` (меньше — лучше), 100 экспериментов за ночь. Наш аналог — `kb-health.py` как метрика, `auto-fix/DATE` ветки, auto-merge/reset.
|
Level 4 agent-loop реально работает — Opus за 7 минут снёс 448 штрафов из 463. Сам написал `kb-add-indexes.py` когда увидел массовую задачу. Это эквивалент karpathy/autoresearch для KB: метрика-ветка-merge-reset.
|
||||||
|
|
||||||
Ключевой принцип Karpathy для безопасной автономии:
|
|
||||||
- границы изменений (один файл у них, один каталог у нас)
|
|
||||||
- объективная метрика (val_bpb / kb-health score)
|
|
||||||
- фиксированный budget (5 мин у них / 1 прогон в ночь у нас)
|
|
||||||
|
|
||||||
## Итог дня
|
## Итог дня
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user