diff --git a/family/projects/media-toolbox-kraken.md b/family/projects/media-toolbox-kraken.md index 0ec12687..e52cfc32 100644 --- a/family/projects/media-toolbox-kraken.md +++ b/family/projects/media-toolbox-kraken.md @@ -138,6 +138,14 @@ media-pipeline (~/Developer/media_files_db, ветка kraken-agent) - `WebSearchStrategy.webSearchDefaults`: `includePrunedHypotheses=true` **Коммит:** `115f757` +### Баг 8: KP API URL смена домена (301 redirect) +`api.kinopoisk.dev` переехал на `api.poiskkino.dev`. Swift `URLSession` при редиректе теряет `X-API-KEY` заголовок → KP возвращает `{"docs":[]}` → кешируется как валидный пустой ответ → советские мультики и BBC не резолвились неделями. +**Фикс:** (1) обновлён URL в `KinopoiskAPI.swift`; (2) `HTTPClient.fetch` получил `shouldCache: ((Data) -> Bool)?` — KP не кеширует ответы с пустым `docs`. + +### Баг 9: Leet-speak в именах файлов +`ni4ego_horoshego`, `o_4em_govoryat_muzh4iny` — цифра `4` = `ч` в русском warez-транслите. Стандартная транслитерация не покрывает. +**Фикс:** `String.decodeLeetSpeak()` в `StringExtensions.swift` + дополнительный variant в `NameTokenization.variants`. + ### Баг 6: resolve-manual NFO path для single-файлов `resolve-manual` писал NFO внутрь файла вместо рядом. **Фикс:** Detect `isDirectory`, для файлов → `deletingPathExtension().appendingPathExtension("nfo")`. Коммит `c0fdc59` @@ -210,4 +218,6 @@ docker run --rm ... media-pipeline:kraken \ - **2026-05-13 сессия 3:** `kraken-agent` ветка: UnresolvedStore, resolve-manual, agent, torrent-fix subcommands - **2026-05-14 сессия 4:** 5 системных багов исправлены. Sync: 222/317 resolved (70%). - **2026-05-14 сессия 5:** resolve-manual для 13 items. unresolved: 24 → 8. NFO path bug fix. kraken-ssh → WireGuard. -- **2026-05-14 сессия 6 (текущая):** dry_run=false, sync запущен → 401 resolved, 32 unresolved. `apply` создаёт canonical папки + симлинки (оригиналы не трогает). 716 NFO написано. Валидация торрентов HTPC. +- **2026-05-14 сессия 6:** dry_run=false, sync запущен → 401 resolved, 32 unresolved. `apply` создаёт canonical папки + симлинки (оригиналы не трогает). 716 NFO написано. Валидация торрентов HTPC. +- **2026-05-15 сессия 7:** Торренты: 467 скопированы с HTPC, 323 добавлены в Transmission (294 итого после удаления 50 игр/нон-медиа). rsync: movies + мультфильмы + BBC документалки. Фиксы в коде: (1) best-effort collapse при исчерпании tierов, (2) дедупликация dir+file регионов в RegionPartitioner, (3) strip .aka./full.screen из TitleParser, (4) scanner пропускает canonical dirs по маркеру `.media-pipeline-canonical`, (5) Roman numerals в транслитерации (Ампир V). Финал: 19 unresolved. +- **2026-05-16 сессия 8:** Обнаружен корневой баг: KP API переехал `api.kinopoisk.dev` → `api.poiskkino.dev` (301 redirect, Swift теряет X-API-KEY). Исправлен URL. Удалены 359 невалидных KP-кеш записей. Добавлен leet-speak decode (`4`→`ch`: ni4ego→nichego, muzh4iny→muzhchiny). Починен кеш: KP пустые `docs:[]` больше не кешируются (были причиной повторных промахов после rate-limit/redirect). **Текущий unresolved: 22. Завтра KP лимит сбросится → ожидаем ≤5.** diff --git a/personal/sync-test.md b/personal/sync-test.md index 76e13d5e..17069fd2 100644 --- a/personal/sync-test.md +++ b/personal/sync-test.md @@ -2,10 +2,7 @@ Created on Eagle. Should appear on Taiga and Kraken after sync. -<<<<<<< Updated upstream Written from TAIGA at Wed May 13 00:50:40 +06 2026 Written from TAIGA at Wed May 13 00:51:13 +06 2026 -======= Written from KRAKEN at Wed May 13 00:50:00 +06 2026 Written from KRAKEN at Wed May 13 00:51:12 +06 2026 ->>>>>>> Stashed changes diff --git a/wiki/index.md b/wiki/index.md index 2cc0039d..06092e9c 100644 --- a/wiki/index.md +++ b/wiki/index.md @@ -4,12 +4,12 @@ tags: - wiki - index created: '2026-05-13' -updated: '2026-05-14' +updated: '2026-05-15' --- # Wiki Index Auto-maintained catalog of all pages in `wiki/`. Updated by the daily curation cron. -> Last updated: 2026-05-14 | Total pages: 15 +> Last updated: 2026-05-15 | Total pages: 15 ## Core Architecture diff --git a/wiki/log.md b/wiki/log.md index 461ef9fa..bbdc833e 100644 --- a/wiki/log.md +++ b/wiki/log.md @@ -27,3 +27,33 @@ Activity log for the daily Eagle wiki-curation cron job. - Lint: all 15 pages in index ✅; no broken wikilinks ✅; no orphan pages ✅; frontmatter complete on all pages ✅; stale content fixed ✅ - New pages needed: none (executor-security-analysis.md and zulip-migration.md live in work/projects/ — domain appropriate, no wiki pages required) +## 2026-05-15 + +- **Conflict resolution:** Fixed `personal/sync-test.md` — merged TAIGA and KRAKEN concurrent writes (both sides preserved, markers removed) +- **Architecture check:** `personal-os-architecture.md` is current — Eagle M4, Taiga TrueNAS, Kraken RPi5, all three Hermes+mcpvault/obsidian MCP, Tavily enabled; no updates needed +- **Inbox:** `raw/inbox/` empty — nothing to process +- **Vault root triage:** 4 empty Untitled*.md files (Untitled.md, 1, 2, 3) — all 0 bytes; flagged for manual `rm` (MCP tools cannot delete files); personal test artifacts (test_taiga_access*.md) left in `personal/` — harmless +- **index.md:** Updated `last updated` date to 2026-05-15; page count unchanged at 15 +- **Lint results:** + - Frontmatter: all 15 pages ✅ + - Confidence field: 13/15 pages (log.md + index.md are meta — expected ✅) + - Wikilinks: 4 pages lack outbound `[[wikilinks]]`: `personal-os-self-modification.md`, `personal-os-purpose.md`, `personal-os-agent-rules.md`, `vault-filling-guide.md` ⚠️ (minor — cross-refs exist via plain text; flagged for user attention) + - Orphans: none — all 15 pages reachable from index.md ✅ + - Broken wikilinks: none detected ✅ + - Page size: all pages under 200 lines ✅ + - New pages created: none + +## 2026-05-15 (run 2) + +- **Conflict scan:** No git conflict markers found across all of ~/obsidian/ ✅ +- **Architecture update:** `personal-os-architecture.md` — added Mattermost migration notice (work channels moving Zulip→MM, blocked on IT Ops), added Zulip topic-routing plugin note (✅ done 2026-05-14); bumped `last_updated` to 2026-05-15 +- **Agent-rules update:** `personal-os-agent-rules.md` — updated cron schedule table with MM migration note; added See Also section with wikilinks; bumped `last_updated` to 2026-05-15 +- **Wikilink fixes (lint from yesterday):** + - `personal-os-self-modification.md` — converted See Also backtick refs to `[[wikilinks]]`; fixed stale "Discord" → "Zulip/Mattermost" in schema change section + - `personal-os-purpose.md` — converted See Also backtick refs to `[[wikilinks]]` + - `personal-os-agent-rules.md` — added See Also section with 3 outbound wikilinks + - `vault-filling-guide.md` — added See Also section with 2 outbound wikilinks +- **Inbox:** `raw/inbox/` empty — nothing to process ✅ +- **Vault root triage:** 4 empty Untitled*.md files — still 0 bytes, cannot delete via MCP; flagged for manual `rm` +- **Lint:** 0 pages with missing wikilinks (fixed above) ✅; no orphans ✅; no broken links ✅; no new pages created + diff --git a/wiki/personal-os-agent-rules.md b/wiki/personal-os-agent-rules.md index cb4831d5..b0a81999 100644 --- a/wiki/personal-os-agent-rules.md +++ b/wiki/personal-os-agent-rules.md @@ -1,7 +1,7 @@ --- namespace: work tags: [system, agent, eagle, rules] -last_updated: 2026-05-14 +last_updated: 2026-05-15 confidence: 1.0 --- @@ -72,17 +72,19 @@ bash ~/scripts/run-wiki-ingest.sh ## 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 | +| morning-brief | 08:30 workdays | #daily-brief (Zulip → MM post-migration) | +| eod-summary | 18:00 workdays | #daily-brief (Zulip → MM post-migration) | +| inbox-check | */30 9-19 workdays | #inbox (Zulip → MM post-migration) | +| weekly-plan | Mon 08:00 | #daily-brief (Zulip → MM post-migration) | +| weekly-review | Fri 17:00 | #daily-brief (Zulip → MM post-migration) | | retrospector | Fri 17:30 | #retrospector | | commit-vault | 23:00 daily | silent | | **wiki-curation** | **02:00 daily** | **silent (cron report)** | +> ⚠️ Work channels (morning-brief, eod-summary, inbox-check, weekly-plan, weekly-review) migrating from Zulip → Mattermost. Blocked on IT Ops MM bot accounts. See `work/plans/mattermost-migration.md`. + wiki-ingest runs at 22:00 via **launchd** (not Hermes) — because it needs Mac filesystem access. wiki-curation runs at **02:00 daily** via Hermes cron — llm-wiki skill, lints and updates wiki/ folder. @@ -107,3 +109,9 @@ Never write `corrections_log.md` — use the SQL INSERT above (table, not file). 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`. + +## See Also + +- [[personal-os-architecture]] — full system map and data flows +- [[personal-os-self-modification]] — how to safely change prompts, schema, crons +- [[vault-filling-guide]] — what goes where in the Obsidian vault diff --git a/wiki/personal-os-architecture.md b/wiki/personal-os-architecture.md index c4a673ca..2b837031 100644 --- a/wiki/personal-os-architecture.md +++ b/wiki/personal-os-architecture.md @@ -1,7 +1,7 @@ --- namespace: work tags: [system, architecture] -last_updated: 2026-05-14 +last_updated: 2026-05-15 confidence: 1.0 --- @@ -25,6 +25,9 @@ See: `personal-os-purpose.md` - Cron jobs: 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), commit-vault (23:00 daily), wiki-curation (02: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 +- **Zulip plugin**: `~/.hermes/plugins/zulip-topic-routing/` — intercepts `(no topic)` messages; routes to most recent related thread or renames to descriptive topic. Status: ✅ done (2026-05-14) + +> ⚠️ **Mattermost migration in-progress (2026-05-14):** Work Eagle agent (briefs, inbox, executor) moving from Zulip → corporate Mattermost. Personal/family/journal remain on Zulip/Discord. Blocked on IT Ops creating MM bot accounts (eagle-bot, executor-bot, brief-bot). See `work/plans/mattermost-migration.md`. ### Ретроспектор (Retrospector) — Friday pattern analysis - Runs as separate Hermes cron at 17:30 Friday → `#retrospector` diff --git a/wiki/personal-os-purpose.md b/wiki/personal-os-purpose.md index 3abdc02c..a24a84f8 100644 --- a/wiki/personal-os-purpose.md +++ b/wiki/personal-os-purpose.md @@ -68,6 +68,6 @@ Personal pet projects (AXPressDeck, media_files_db, etc.) are tracked separately ## 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 +- [[personal-os-architecture]] — full technical architecture, agents, data flow, file locations +- [[personal-os-agent-rules]] — Eagle's operating rules and allowed writes +- [[personal-os-self-modification]] — how Eagle (and Alex) can evolve the system diff --git a/wiki/personal-os-self-modification.md b/wiki/personal-os-self-modification.md index 8139f2d4..987ed277 100644 --- a/wiki/personal-os-self-modification.md +++ b/wiki/personal-os-self-modification.md @@ -73,7 +73,7 @@ VALUES (current_date, EXTRACT(WEEK FROM current_date)::int, ### Schema changes (PostgreSQL) New tables, columns, or indexes require a SQL migration. Pattern: -1. Draft the SQL in Discord, explain the purpose +1. Draft the SQL in Zulip (or Mattermost, post-migration), 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) @@ -147,6 +147,6 @@ Before making any system change: ## 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 +- [[personal-os-architecture]] — full system map +- [[personal-os-agent-rules]] — Eagle's rules and channel routing +- [[personal-os-purpose]] — why this system exists diff --git a/wiki/vault-filling-guide.md b/wiki/vault-filling-guide.md index 8cdba0cf..ad28bbed 100644 --- a/wiki/vault-filling-guide.md +++ b/wiki/vault-filling-guide.md @@ -76,3 +76,8 @@ updated: YYYY-MM-DD - Modify `raw/` — those are symlinks managed manually - Create files without showing the content first - Overwrite existing files without showing a diff + +## See Also + +- [[personal-os-agent-rules]] — Eagle's write permissions and rules +- [[personal-os-architecture]] — full system map and vault structure