Merge branch 'origin/main' into main

This commit is contained in:
2026-05-15 11:06:50 +06:00
9 changed files with 74 additions and 21 deletions
+11 -1
View File
@@ -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.**
-3
View File
@@ -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
+2 -2
View File
@@ -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
+30
View File
@@ -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
+15 -7
View File
@@ -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
+4 -1
View File
@@ -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 0919 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`
+3 -3
View File
@@ -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
+4 -4
View File
@@ -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
+5
View File
@@ -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