[2026-09-15] eagle: personal/plans/hermes-whale-system-prompt.md personal/projects/personal-os/hermes-agent-improvements.md personal/tech/hermes-git-repo.md work/projects/cpm-web-extension-breakage-validation.md

This commit is contained in:
Alexey Martemyanov
2026-09-15 12:38:38 +06:00
parent 7697c54b84
commit d750de3e53
4 changed files with 260 additions and 167 deletions
@@ -187,8 +187,8 @@ agent:
2. ✅ Пропатчить `agent/system_prompt.py` — добавить `_load_prompt_block()` и заменить 7 констант
3. ✅ Пропатчить `agent/agent_init.py` — пробросить `prompt_overrides` из конфига
4. ✅ Обновить `config.yaml` — добавить `agent.prompt_overrides` (через копию, т.к. patch блокирован TIRITH)
5. ⏸️ Перезапустить webhook (ждёт команды)
6. ⏸️ Обновить Obsidian docs (этот шаг — выполнен)
5. ✅ Закоммитить в git (2026-09-15): `hermes-agent` `207a1de16`, `~/.hermes` `7fd200c`
6. Обновить Obsidian docs
### Проверка
@@ -201,6 +201,49 @@ agent:
- **Конфиг всё равно просит аппрув** — при `cp` обратно TIRITH запрашивает подтверждение (overwrite project env/config file). Это нормально, нужно подтвердить.
- **SOUL.md уже существует** — в Whale он лежит в `/Users/admin/.hermes/hermes-whale/SOUL.md`. Он НЕ выносится через prompt_overrides, т.к. уже является файлом и загружается отдельно через `load_soul_md()`.
- **webhook не в PLATFORM_HINTS** — webhook нет в словаре `PLATFORM_HINTS` в `prompt_builder.py`, поэтому блок platform hints пустой. Это не менялось.
- **Файлы review/*.md обязаны быть в git** — если они не закоммичены, подмены промпта теряются при любом восстановлении репо. Коммитить вместе с конфигом.
---
## Git-гигиена репозитория (2026-09-15)
При коммите состояния после prompt_overrides обнаружена утечка секретов и наведён порядок.
Полное описание структуры и правил: [[hermes-git-repo]].
### Утечка, которую починили
`.env.bak` и `.env.new` (в корне и в `hermes-whale/`) содержали живые токены
(TELEGRAM_BOT_TOKEN, OPENROUTER_API_KEY, DISCORD_BOT_TOKEN, ZULIP_API_KEY, DEEPSEEK_API_KEY),
но `.gitignore` покрывал только `.env`. Один `git add .` затащил бы их в историю.
Также не игнорировался `webhook_subscriptions.json` — там per-endpoint секреты (16 символов).
**Fix:** расширены правила `.gitignore` (`.env` варианты, `webhook_subscriptions.json`,
`config.yaml.bak*`, `node_modules/`). Проверка — `git check-ignore -v <file>`.
### Коммиты (2026-09-15)
| Репо | SHA | Сообщение |
|------|-----|-----------|
| `hermes-agent` | `207a1de16` | feat: load stable system-prompt blocks from config prompt_overrides |
| `~/.hermes` | `7fd200c` | feat: wire prompt_overrides + whale-thread-guard multi-bot routing |
| `~/.hermes` | `7893c35` | chore: sync skills — curator consolidation |
| `~/.hermes` | `bdf84da` | chore(lsp): add vue/dockerfile/pyright/yaml language servers |
| `~/.hermes` | `176ce9c` | chore: thread-scoped memory store + claude token refresh script |
Всё локально, **не запушено** (на момент коммита: `~/.hermes` ahead 8, `hermes-agent` ahead 20).
### Долги репозитория
1. `hermes-whale/lsp/node_modules/` — 39M бинарников в git, `.gitignore` не действует на отслеживаемые файлы.
2. `channel_directory.json` — в `.gitignore`, но уже отслеживается.
### Плагин whale-thread-guard в том же коммите
Расширен с роутинга «Eagle/Whale» на **любого бота**: `@**BotName**` не Eagle → владение топиком
переходит этому боту. Добавлен regex `_MENTION_RE` для детекции меншенов, словари имён
(`WHALE_BOT_NAMES = {"Whale", "Кит"}`, `BALDA_BOT_NAMES = {"Балда", "Валера", "balda"}`).
Стейт — `~/.hermes/thread_ownership.json`.
---