[2026-09-15] eagle: family/how-to/truenas-infrastructure.md personal/tech/deepseek-language-drift.md personal/tech/hermes-agent-improvements.md personal/tech/hermes-fork-vs-upstream.md personal/tech/hermes-git-repo.md personal/tech/xray-reverse-tunnel-kraken-truenas.md
This commit is contained in:
@@ -89,10 +89,16 @@ cd ~/.hermes && git check-ignore -v .env.bak .env.new \
|
||||
Каждый файл должен вывести строку `.gitignore:<N>:<pattern>\t<file>`.
|
||||
|
||||
**Pitfall:** `.gitignore` НЕ влияет на уже отслеживаемые файлы.
|
||||
`hermes-whale/lsp/node_modules/` остаётся в репо несмотря на правило `node_modules/`.
|
||||
`hermes-whale/lsp/node_modules/` оставался в репо несмотря на правило
|
||||
`node_modules/` (закрыто коммитом `9b111fc` через `git rm -r --cached`).
|
||||
Вывод — применять `git add` по именам файлов, а не `git add .`, иначе новое правило
|
||||
может дать ложное чувство защиты.
|
||||
|
||||
**Второй pitfall — `git add -f`:** после добавления правила `node_modules/`
|
||||
попытка `git add` файла внутри него (например `lsp/node_modules/.package-lock.json`)
|
||||
падает с «paths are ignored by one of your .gitignore files». Уже отслеживаемые
|
||||
файлы коммитятся нормально без `-f` — правило на них не действует.
|
||||
|
||||
## Что коммитить / что не коммитить
|
||||
|
||||
**Коммитим:**
|
||||
@@ -111,10 +117,56 @@ cd ~/.hermes && git check-ignore -v .env.bak .env.new \
|
||||
|
||||
## Долги (не исправлено, требуют решения Alex)
|
||||
|
||||
1. **`hermes-whale/lsp/node_modules/` в git** — 39M бинарников + `gopls` 41MB.
|
||||
`.gitignore` не помогает (файлы уже отслеживаются). Чистка = `git rm -r --cached` + rewrite истории.
|
||||
2. **`channel_directory.json` в .gitignore, но отслеживается** — правило добавлено после коммита.
|
||||
1. **`channel_directory.json` в .gitignore, но отслеживается** — правило добавлено после коммита.
|
||||
В коммите `7fd200c` из него удалено 869 строк (файл в основном генерируемый).
|
||||
Также живёт как ` M` в статусе постоянно — это рантайм-запись текущей сессии,
|
||||
коммитить бессмысленно. Решение: `git rm --cached channel_directory.json`.
|
||||
2. **История git не похудела.** 43M node_modules убраны из трекинга, но остаются
|
||||
в истории. Для реальной экономии — `filter-repo` + force push (ломает клоны).
|
||||
|
||||
### Закрыто 2026-09-15
|
||||
|
||||
- ~~`hermes-whale/lsp/node_modules/` в git~~ — **убрано из трекинга** коммитом
|
||||
`9b111fc`: 1957 файлов / 43M. Файлы **остались на диске** (108 каталогов),
|
||||
`git rm -r --cached` индекс не удаляет. Проверка:
|
||||
`git ls-files | grep -c node_modules` → 0.
|
||||
|
||||
## Коммиты и push (2026-09-15)
|
||||
|
||||
| Коммит | Что |
|
||||
|--------|-----|
|
||||
| `207a1de16` (submodule) | load stable system-prompt blocks from config prompt_overrides |
|
||||
| `7fd200c` | wire prompt_overrides + whale-thread-guard multi-bot routing |
|
||||
| `7893c35` | sync skills — curator consolidation (516 удалений, 55 новых) |
|
||||
| `bdf84da` | add vue/dockerfile/pyright/yaml language servers |
|
||||
| `176ce9c` | thread-scoped memory store + claude token refresh script |
|
||||
| `9b111fc` | untrack lsp/node_modules (1957 files, 43M) |
|
||||
|
||||
**Запушено:**
|
||||
- `hermes-agent` → `github.com:mallexxx/hermes-agent` — 20 коммитов
|
||||
- `~/.hermes` → `git.mallexxx.duckdns.org/git_admin/eagle-hermes` — 9 коммитов
|
||||
|
||||
Оба репо: `main...origin/main` синхронно, секретов в истории нет.
|
||||
|
||||
## Утечка секретов (закрыта 2026-09-15)
|
||||
|
||||
`.env.bak` и `.env.new` (в `~/.hermes/` и `~/.hermes/hermes-whale/`) содержали
|
||||
**живые токены**: `TELEGRAM_BOT_TOKEN`, `OPENROUTER_API_KEY`, `DISCORD_BOT_TOKEN`,
|
||||
`ZULIP_API_KEY`, `DEEPSEEK_API_KEY`. Игнорился только `.env` — варианты
|
||||
`.bak`/`.new` НЕ покрывались. Один `git add .` затащил бы их в публичную историю.
|
||||
|
||||
Также `webhook_subscriptions.json` (16-символьные per-endpoint секреты) —
|
||||
не был игнорирован. Проверено фактически: `jq -r '.whale.secret | length'` → 16.
|
||||
|
||||
Проверка, что секреты не попали в историю:
|
||||
```bash
|
||||
cd ~/.hermes && git log --all --diff-filter=A --name-only --pretty=format: | grep '\.env'
|
||||
# пусто = чисто
|
||||
```
|
||||
|
||||
`scripts/refresh-claude-token.sh` — **не секрет**: refresh token читается
|
||||
из `~/.claude/.credentials.json` в рантайме, `CLIENT_ID` — публичный OAuth
|
||||
идентификатор.
|
||||
|
||||
## Команды
|
||||
|
||||
@@ -134,5 +186,6 @@ cd ~/.hermes && git log --all --diff-filter=A --name-only --pretty=format: | gre
|
||||
## Связанное
|
||||
|
||||
- [[hermes-whale-system-prompt]] — состав system prompt, prompt_overrides
|
||||
- [[hermes-agent-improvements]] — вынос хардкода промптов в файлы
|
||||
- [[hermes-agent-improvements]] — вынос хардкода промптов в файлы (механизм + коммиты)
|
||||
- [[hermes-memory-architecture]] — thread-scoped память
|
||||
- [[hermes-fork-vs-upstream]] — расхождение с апстримом (24k коммитов)
|
||||
|
||||
Reference in New Issue
Block a user