[2026-09-29] eagle: personal/plans/balda-mm-phase4-agents.md personal/plans/balda-mm-pr-plan.md personal/plans/balda-runtime-rebuild-mm-validation.md personal/plans/runtime-pr4-openai-toolcalls-fixes.md personal/plans/runtime-pr5-toolset-dedup-review-fixes.md personal/plans/watchlist-tmdb-missing-marker.md personal/plans/zulip-decommission.md personal/projects/balda/balda-kraken-mm-deploy.md personal/projects/zont-config-compiler.md personal/tech/git-hygiene-post-merge.md
This commit is contained in:
1 parent
5f13ad0331
commit
def88a5074
13 files changed
+528
-67
No files matched your search
@@ -1050,8 +1050,9 @@ ORDER BY m.date_sent DESC LIMIT 10;"
|
||||
# → вернул точную команду с паролем: mm-post-user.sh … testuser "T3stPassw0rd!x" …
|
||||
```
|
||||
|
||||
📌 `session_search` индексирует сессии Hermes, **не Zulip**. Сказано «из базы» → сразу
|
||||
`docker exec psql`. Скилл: `zulip-db-forensics`. Тот же урок — в
|
||||
📌 `session_search` индексирует сессии Hermes, **не чат/Zulip**. Сказано «из базы» → сразу
|
||||
`sqlite3 ~/Documents/zulip_message_history.sqlite`. Скилл: `message-history-search`
|
||||
(ранее `zulip-db-forensics`, снесён 2026-09-29 вместе с Zulip). Тот же урок — в
|
||||
[[personal/projects/balda/balda-kraken-mm-deploy]].
|
||||
|
||||
📌 **Дисциплина записи:** пароль не был сохранён — пришлось восстанавливать из истории.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Balda — Mattermost connector: PR-подготовка
|
||||
|
||||
> Обновлён 2026-09-28. Обновлён 2026-09-28 (ревизия: убраны дубли, оставлены факты).
|
||||
> Статус: **PR ОТКРЫТ — baldaworks/balda#8 · OPEN · MERGEABLE · 8/8 CI PASS · ревью апстрима НЕТ.**
|
||||
> Обновлён 2026-09-28. Обновлён 2026-09-29 (ревизия: PR СМЕРЖЕН, ветки снесены).
|
||||
> Статус: **✅ PR #8 СМЕРЖЕН 2026-09-29T06:06:48Z — `bf4a6ae4`.** MM-транспорт в `upstream/main`.
|
||||
> https://github.com/baldaworks/balda/pull/8
|
||||
> 🔧 **2026-09-28: правки по ревью применены — голова `05342c5a` (9 коммитов), CI 8/8 PASS.**
|
||||
> Ревью `metalagman` опубликовано в PR (`reviews`, state `COMMENTED`, inline-комментов **0**).
|
||||
@@ -9,19 +9,51 @@
|
||||
> guard-тест), групповой DM (сессия по чату + тест двух отправителей) + **регистрация в
|
||||
> `ScopeResolver`, которой не было в PR**. Сверка построчно —
|
||||
> [[personal/plans/balda-mm-pr8-review-fixes]] §0a.
|
||||
> 📌 **Мерж прошёл без `APPROVED`-ревью** — `reviewDecision` оставался пустым, PR влит вручную
|
||||
> мейнтейнером. Мерж-коммит `bf4a6ae4` = merge `86643007` (голова PR, 29 коммитов,
|
||||
> 72 файла, +7921/−74) в `93c7ac89` (`upstream/main` на тот момент).
|
||||
> Часть [[personal/projects/balda/balda-mm-delegation-plan]] (Фаза 2 → PR в апстрим).
|
||||
|
||||
---
|
||||
|
||||
## 1. Состояние сейчас (сверено 2026-09-28 через API, не по доке)
|
||||
## 0. ✅ ПОСТ-МЕРЖ: git-гигиена (2026-09-29)
|
||||
|
||||
Ветки снесены, prune выполнен, worktree почищены. Полный разбор —
|
||||
[[personal/plans/balda-runtime-rebuild-mm-validation]] блок «2026-09-29».
|
||||
|
||||
```bash
|
||||
cd ~/Developer/balda
|
||||
git checkout main && git pull --no-rebase origin main
|
||||
git branch -D feat/mattermost-channel feat/zulip-transport feat/zulip-transport-intermediate \
|
||||
backup/our-main-before-upstream feat/zulip-events-polling
|
||||
git push origin --delete feat/mattermost-channel feat/zulip-transport
|
||||
git remote prune origin && git remote prune upstream
|
||||
# ⚠️ СНАЧАЛА worktree, потом ветки — иначе branch -D падает
|
||||
git worktree remove --force <11 путей> && git worktree prune
|
||||
git branch -D codex/mattermost-prod-fix
|
||||
rm -rf ~/Developer/balda/personal
|
||||
```
|
||||
|
||||
🔴 **Питфолл: `git worktree list` показывал 10 несуществующих путей** `/private/tmp/balda-mm-pr8-*`.
|
||||
Каталоги снесены из `/tmp`, но `.git/worktrees/<name>` живы и **держат ветку**:
|
||||
`git branch -D` → `error: cannot delete branch 'X' used by worktree at '/path'`.
|
||||
Порядок обязателен: `worktree remove --force` → `worktree prune` → `branch -D`.
|
||||
|
||||
⚠️ **Локальная `main` отстала от `upstream/main`.** MM-транспорт ушёл в **апстрим**, не в
|
||||
`origin/mallexxx/balda`, поэтому `git pull origin main` → `Already up to date` — это не «всё чисто»,
|
||||
а «origin не содержит мержа». Догонять через `git merge upstream/main` (не rebase — `AGENTS.md`).
|
||||
Решение по этому шагу **не принято**.
|
||||
|
||||
## 1. Состояние (актуально на 2026-09-29)
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| PR | **baldaworks/balda#8** — `feat(mattermost): add Mattermost channel transport` |
|
||||
| Состояние | `OPEN` · `MERGEABLE` · `reviewDecision` **пустой** |
|
||||
| База / голова | `baldaworks/balda:main` ← `mallexxx:feat/mattermost-channel` |
|
||||
| Объём | **46 файлов, +6850 / −27**, 9 коммитов |
|
||||
| CI | **8/8 PASS** (на `05342c5a`) |
|
||||
| Состояние | ✅ **MERGED** 2026-09-29T06:06:48Z · merge-commit **`bf4a6ae4`** |
|
||||
| База / голова | `baldaworks/balda:main` ← `mallexxx:feat/mattermost-channel` @ `86643007` |
|
||||
| Объём на момент мержа | **72 файла, +7921 / −74**, 29 коммитов |
|
||||
| Ревью | `COMMENTED` от `metalagman`, `APPROVED` не было — мерж вручную |
|
||||
| Ветка в форке | 🗑️ удалена локально и в `origin` 2026-09-29 |
|
||||
|
||||
```
|
||||
architecture-lint pass 2m2s
|
||||
|
||||
@@ -5,7 +5,92 @@
|
||||
> Связано: [[personal/projects/balda/balda-kraken-mm-deploy]], [[personal/plans/balda-mm-pr8-review-fixes]],
|
||||
> [[personal/plans/runtime-pr5-toolset-dedup-review-fixes]].
|
||||
|
||||
### 🔴 Состояние git на конец сессии (читать первым)
|
||||
### ✅ 2026-09-29: PR #8 СМЕРЖЕН + git-гигиена выполнена
|
||||
|
||||
**Все четыре PR влиты:**
|
||||
|
||||
| PR | Репо | Merged | Merge-commit |
|
||||
|---|---|---|---|
|
||||
| **#8** | `baldaworks/balda` | **2026-09-29T06:06:48Z** | `bf4a6ae4` (merge of `86643007` в `93c7ac89`) |
|
||||
| #7 | `normahq/runtime` | 2026-09-28T14:26:41Z | — |
|
||||
| #5 | `normahq/runtime` | 2026-09-27T20:03:18Z | — |
|
||||
| #4 | `normahq/runtime` | 2026-09-26T18:07:42Z | — |
|
||||
|
||||
🔴 **`baldaworks/runtime` НЕ СУЩЕСТВУЕТ.** Runtime живёт как **`normahq/runtime`** (`gh pr list --repo
|
||||
baldaworks/runtime` → `GraphQL: Could not resolve to a Repository`). PR #4/#5/#7 — там, не в baldaworks.
|
||||
Путаница возникает потому, что базовый репо Балды называется `baldaworks/balda`.
|
||||
|
||||
📌 **PR #8 смержен сам, без APPROVED-ревью.** После мержа `86643007` = `upstream/main` (проверено
|
||||
`git merge-base --is-ancestor 86643007 upstream/main` → YES). `upstream/main` = **`bf4a6ae4`**.
|
||||
|
||||
### Выполнено: prune + снос дев-веток + чистка worktree
|
||||
|
||||
**balda (`~/Developer/balda`):**
|
||||
```bash
|
||||
git checkout main && git pull --no-rebase origin main # already up to date
|
||||
git branch -D feat/mattermost-channel feat/zulip-transport feat/zulip-transport-intermediate \
|
||||
backup/our-main-before-upstream feat/zulip-events-polling
|
||||
git push origin --delete feat/mattermost-channel feat/zulip-transport
|
||||
git remote prune origin && git remote prune upstream
|
||||
git worktree remove --force <11 путей> && git worktree prune
|
||||
git branch -D codex/mattermost-prod-fix
|
||||
rm -rf ~/Developer/balda/personal # 24K мусор от ошибочного write_file
|
||||
```
|
||||
Итог: локально остались `main` + рабочий worktree `~/Developer/balda`. Больше ничего.
|
||||
|
||||
**runtime (`~/Developer/runtime-local`):**
|
||||
```bash
|
||||
git fetch --all --prune # upstream/main c41939f → 5375072 (PR #7), забран тег v2.1.1
|
||||
git checkout main
|
||||
git branch -D feat/openai-tool-calls-v2 fix/hosted-toolsets-duplicate-endpoint fix/openai-tool-call-roundtrip-v2
|
||||
git push origin --delete <те же три>
|
||||
git remote prune origin && git remote prune upstream
|
||||
```
|
||||
Итог: остались `main` + `origin/main` + `upstream/main`. Чисто.
|
||||
|
||||
📌 **`normahq/runtime` PR #7 закрыт** — `upstream/main` = `5375072` = `Merge pull request #7`,
|
||||
содержит `a4a25a7 fix(hostedagent): avoid tool alias namespace collisions` и
|
||||
`b43625d fix(hostedagent): reuse existing tool aliases`.
|
||||
|
||||
⚠️ **Пин runtime в balda — `v2.1.1`**, а не `v2.1.0`: коммит `68445f55 chore(deps): update runtime
|
||||
to v2.1.1` уже в `upstream/main` (запушен вместе с PR #8). Вопрос «протолкнуть bump в апстрим»
|
||||
(§7.3) **закрыт — апстрим сделал это сам**.
|
||||
|
||||
### 🔴 Питфолл: git-регистрация ≠ путь на диске
|
||||
|
||||
`git worktree list` показывал **10 несуществующих путей** `/private/tmp/balda-mm-pr8-*` — каталоги
|
||||
были снесены из `/tmp`, но `.git/worktrees/<name>` остались. Такие «мёртвые» регистрации
|
||||
держат ветки: `git branch -D` падает с
|
||||
```
|
||||
error: cannot delete branch 'X' used by worktree at '/path'
|
||||
```
|
||||
даже когда каталога нет. **Лечение:** `git worktree remove --force <path>` → `git worktree prune`,
|
||||
и только потом `git branch -D`. Проверять `git worktree list` **до** удаления веток.
|
||||
|
||||
⚠️ `git worktree remove` на `/private/tmp/...` **уходит на апрув** (удаление каталога) — нормально.
|
||||
|
||||
### Факты по окружению (сверено 2026-09-29)
|
||||
|
||||
| Что | Факт |
|
||||
|---|---|
|
||||
| `~/Developer/runtime-local` | **настоящий git-клон** `mallexxx/runtime` (origin, SSH) + `normahq/runtime` (upstream). НЕ путать с прежней фиктивной копией §0а — та была каталогом без `.git` |
|
||||
| `~/Developer/norma-local` · `norma-fork` · `norma-upstream-check` | форки **`norma`** (другой репо), к PR #4/#5/#7 отношения **не имеют**. `norma-local` — ahead 2 / behind 26, грязный `hostedagent/openai.go` |
|
||||
| `~/Developer/runtime-local/tools/` | untracked, **рабочий дельта-апплер PR #4** (`apply-project-deltas.py`, `deltas-*.json`, `run-project-deltas.sh`). **Не удалять** |
|
||||
| `__dolt_remote_info__` | служебная ветка в обоих ремоутах — **не трогать** |
|
||||
|
||||
⚠️ **Незакрытый мусор:** ~130 файлов `/tmp/balda-*` (скрипты, логи, образы 0.1.9–0.1.14, кэши Go,
|
||||
`balda-linux-arm64-runtime210`). Снос согласован не был. Откат на Kraken от этих образов **не
|
||||
зависит** — теги уже загружены в docker на хосте.
|
||||
|
||||
⚠️ **2 stash в `~/Developer/balda`** — `stash@{0}` (logging-дебаг whale-20260623, 2 файла),
|
||||
`stash@{1}` (zulip-events WIP, 2 файла вкл. `go.mod`). **Не удалены**, решение за Alex. Если
|
||||
понадобится — `git stash show -p stash@{N} > /path/patch.diff` перед `stash drop`.
|
||||
|
||||
📌 **Реакция Alex на «бэкап»:** предложение бэкапа перед сносом веток вызвало резкую реакцию
|
||||
(«какой нахуй бэкап»). Для уже смерженного кода, восстанавливаемого из апстрима, бэкапы
|
||||
**не предлагать** — это лишний шаг. Снос смерженных веток = рутина, не риск.
|
||||
|
||||
### 🔴 Состояние git на конец сессии 2026-09-28 (читать первым) — ⚠️ УСТАРЕЛО, см. блок 2026-09-29 выше
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
@@ -383,31 +468,30 @@ reboot**. Источники в `~/Developer/balda/tools/` (созданы за
|
||||
|
||||
---
|
||||
|
||||
## 7. ⏭️ Что делать дальше (приоритет)
|
||||
## 7. ⏭️ Что делать дальше (приоритет) — 🔄 пересмотрено 2026-09-29
|
||||
|
||||
1. 🔴 **Закоммитить 5 незакоммиченных файлов** в `~/Developer/balda` — образ `0.1.14` собран из них:
|
||||
```
|
||||
M go.mod ← runtime v2.0.11 → v2.1.0, убран replace на ./runtime-local
|
||||
M go.sum ← следствие go mod tidy; gorilla/websocket стал прямым
|
||||
M internal/apps/balda/internalmcp/manager.go ← DedupKey у bundled-записи
|
||||
M internal/apps/balda/sessionapp/module.go ← DedupKey + DedupPreferred
|
||||
M internal/apps/balda/sessionmemorymcp/broker.go ← константа BundledDedupKey
|
||||
```
|
||||
⚠️ `Dockerfile.release` **уже НЕ в списке** — правка (удаление `COPY runtime-local/`) совпала
|
||||
с HEAD после merge; ссылок на `runtime-local` нет и в HEAD.
|
||||
**Закрыто 2026-09-29:** п.3 (bump `v2.1.0` в апстрим — ✅ апстрим сделал сам, `68445f55` → пин `v2.1.1`),
|
||||
п.4 (sync PR #8 — ✅ PR смержен, `86643007` в `upstream/main`), п.8 (мусор `personal/` — ✅ снесён).
|
||||
П.1 — ✅ код попал в апстрим через PR #8.
|
||||
|
||||
1. ✅ ~~Закоммитить 5 незакоммиченных файлов~~ — правки ушли в апстрим вместе с PR #8.
|
||||
2. **Часть B** — 3 блокера PR #8 (`ingress.go:389`, `:483`, `:164`).
|
||||
3. **Протолкнуть bump `v2.1.0` в апстрим** — сейчас в `upstream/main` всё ещё `v2.0.11`
|
||||
(см. §1б). Иначе при следующем sync go.mod откатится.
|
||||
4. **Синхронизировать PR #8** с `upstream/main` (`c1fde3c4`) — сделано merge `6f5695c7`
|
||||
локально; **запушить в `origin`** (`mallexxx/balda`), чтобы PR подхватил.
|
||||
⚠️ База PR = `de273d8f`, отставала от main.
|
||||
5. **Пересобрать образ** после merge — `0.1.14` собран из pre-merge дерева; следующий `0.1.15`.
|
||||
⚠️ Смержены ли они вместе с PR #8 — **не проверялось**. Первый шаг: сверить
|
||||
`channel/mattermost/ingress.go` в `upstream/main` с §2 этого дока.
|
||||
3. ✅ ~~Протолкнуть bump в апстрим~~ — пин теперь **`v2.1.1`** (`68445f55`).
|
||||
4. ✅ ~~Синхронизировать PR #8~~ — смёржен.
|
||||
5. **Пересобрать образ** — `0.1.14` собран из pre-merge дерева; следующий `0.1.15`.
|
||||
⚠️ **Новое:** после мержа PR #8 дерево = апстрим, а на Kraken стоит `0.1.14` из старого дерева.
|
||||
Пересборку делать **из `upstream/main`** (`bf4a6ae4`), а не из локальной `main` (она отстала — см. ниже).
|
||||
6. **Починить bridge `balda-executor-mcp`** — HTTP 000 + JSONDecodeError (отдельная инфра).
|
||||
7. Прогнать сценарии D2-b / D2-c (после части B) — они и есть приёмка надёжности WS.
|
||||
8. ⚠️ Убрать мусор `~/Developer/balda/personal/` (создан ошибочным `write_file`).
|
||||
9. ⚠️ Временное в `/tmp` (не переживёт reboot): `runtime-local-removed-20260928`,
|
||||
`runtime-local-bak-20260928`, `balda-git-config.bak-20260928`, `mergemsg.txt`,
|
||||
`balda-test.log`, `/tmp/mm-*.sh` на Kraken.
|
||||
8. ✅ ~~Убрать мусор `~/Developer/balda/personal/`~~ — снесён 2026-09-29.
|
||||
9. ⚠️ Временное в `/tmp` (не переживёт reboot): `mergemsg.txt`, `balda-test.log`,
|
||||
`/tmp/mm-*.sh` на Kraken. **Плюс ~130 файлов `/tmp/balda-*`** — снос не согласован (см. блок 2026-09-29).
|
||||
10. 🔴 **Локальная `main` отстала от `upstream/main`.** `git pull origin main` даёт
|
||||
`Already up to date` — MM-транспорт ушёл в **апстрим**, не в `origin/mallexxx/balda`.
|
||||
Чтобы догнать, нужен `git merge upstream/main` (не rebase — правило AGENTS.md).
|
||||
**Решение Alex по этому пункту не получено** — спрашивать перед действием.
|
||||
|
||||
## Связанные заметки
|
||||
|
||||
|
||||
@@ -8,6 +8,11 @@
|
||||
> Связано: [[personal/tech/adk-hostedagent-openai-mcp]], [[personal/projects/balda/balda-valera]],
|
||||
> [[personal/plans/runtime-pr5-toolset-dedup-review-fixes]].
|
||||
>
|
||||
> 🔴 **2026-09-29 — репо `normahq/runtime`, НЕ `baldaworks/runtime`** (такого не существует).
|
||||
> Ветка `feat/openai-tool-calls-v2` снесена локально и в `origin`. Дальше PR #7
|
||||
> (`fix/openai-tool-call-roundtrip-v2`) влился в `upstream/main` = `5375072`, тег **`v2.1.1`**.
|
||||
> Детали — [[personal/plans/runtime-pr5-toolset-dedup-review-fixes]] шапка.
|
||||
>
|
||||
> 📌 **После мержа:** `upstream/main` (`c41939f`) содержит и PR #4, и PR #5, и мейнтейнерские
|
||||
> фиксы к обоим. Форк `mallexxx/runtime` и `replace` в Balda **больше не нужны** —
|
||||
> см. [[personal/plans/balda-runtime-rebuild-mm-validation]].
|
||||
|
||||
@@ -5,6 +5,20 @@
|
||||
> Связано: [[personal/plans/runtime-pr4-openai-toolcalls-fixes]],
|
||||
> [[personal/plans/balda-runtime-rebuild-mm-validation]].
|
||||
|
||||
> 🔴 **2026-09-29 — УТОЧНЕНИЕ ПО РЕПОЗИТОРИЮ.** PR #4/#5 (и #7) живут в **`normahq/runtime`**,
|
||||
> **НЕ** в `baldaworks/runtime` — такого репо не существует (`GraphQL: Could not resolve to a
|
||||
> Repository with the name 'baldaworks/runtime'`). Прежняя запись «репо `baldaworks/runtime`» —
|
||||
> ошибка. `baldaworks/` содержит только `balda`.
|
||||
>
|
||||
> 📌 **Ветки PR снесены 2026-09-29.** В `~/Developer/runtime-local` удалены локально и в
|
||||
> `origin`: `feat/openai-tool-calls-v2`, `fix/hosted-toolsets-duplicate-endpoint`,
|
||||
> `fix/openai-tool-call-roundtrip-v2` (PR #7). `fetch --all --prune` подтянул `upstream/main`
|
||||
> до `5375072` (PR #7) и тег **`v2.1.1`**. Остались `main` + `origin/main` + `upstream/main`.
|
||||
>
|
||||
> ⚠️ **`~/Developer/norma-local`, `norma-fork`, `norma-upstream-check` — это форки `norma`,
|
||||
> ДРУГОГО репозитория.** К PR #4/#5/#7 отношения не имеют, хотя названия сбивают.
|
||||
> `runtime-local` — единственный настоящий клон `runtime`.
|
||||
|
||||
---
|
||||
|
||||
## 0г. 🔴 Мейнтейнер нашёл 2 реальных дефекта в моём фиксе (`d4ab923` → `facb0d0`)
|
||||
|
||||
@@ -443,8 +443,8 @@ Alex: *«какого хуя что-то лежит на sd карте бляд
|
||||
Alex спросил про задачу, я полез диагностировать Zulip (порт 443, `zulip-router`,
|
||||
SSL alert). Ничего этого не требовалось: вопрос был «задача какая?».
|
||||
**Урок:** при непонятном коротком вопросе — сначала перечитать контекст сессии,
|
||||
а не начинать новую диагностику. Загружать `zulip-db-forensics` только когда
|
||||
про Zulip спросили прямо.
|
||||
а не начинать новую диагностику. Загружать `message-history-search` только когда
|
||||
про историю спросили прямо.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -13,11 +13,20 @@ _Создан: 2026-09-29_
|
||||
|---|---|
|
||||
| 1. Выгрузка истории в SQLite | ✅ сделано 2026-09-29 |
|
||||
| 2. Верификация целостности | ✅ сделано |
|
||||
| 3. Правка ссылок на Zulip DB в скиллах/SOUL | ⏳ план согласован, ждёт выбора варианта |
|
||||
| 4. Снос стека | ⛔ не начато |
|
||||
| 3. Правка ссылок на Zulip DB в скиллах/SOUL | ✅ **сделано 2026-09-29** |
|
||||
| 4. Снос стека | ⛔ не начато — ждёт команды Alex |
|
||||
|
||||
**Артефакт этапа 1:** `~/Documents/zulip_message_history.sqlite` (78.1 MB, 134 734 сообщения)
|
||||
**Артефакт этапа 1:** `~/Documents/zulip_message_history.sqlite` (81.9 MB на диске, 134 734 сообщения)
|
||||
→ инструкция по поиску в [[tech/zulip-message-history]]
|
||||
**Артефакт этапа 3:** скилл `message-history-search` + 21 переписанный файл
|
||||
→ см. §«Этап 3 — что сделано» ниже
|
||||
|
||||
ℹ️ **Параллельная задача 2026-09-29 (ЗАКРЫТА):** «отключи автогенерацию скиллов» —
|
||||
разбор механизма фонового review (`skills.creation_nudge_interval`, `review.allowed_toolsets`)
|
||||
в [[tech/hermes-self-improvement-review]], §«Как ВЫКЛЮЧИТЬ».
|
||||
**Внесено:** `creation_nudge_interval: 15 → 0` в `~/.hermes/hermes-whale/config.yaml`,
|
||||
коммит `d2e1586`. Вариант «+ убрать `skills` из `review.allowed_toolsets`» Alex **не выбрал** —
|
||||
память продолжает обновляться фоновым review. На этап 4 (снос) не влияет.
|
||||
|
||||
## Решение: формат истории
|
||||
|
||||
@@ -32,31 +41,67 @@ _Создан: 2026-09-29_
|
||||
**Явное указание Alex:** «никаких вложений и меты. только история переписки».
|
||||
Поэтому pg_dump, volume `zulip_zulip-data`, аплоады и аватары в выгрузку не попали.
|
||||
|
||||
## Открытый вопрос (шаг 3) — правка ссылок на Zulip DB
|
||||
## Этап 3 — что сделано (2026-09-29)
|
||||
|
||||
Найдено **7 групп файлов**, ссылающихся на `zulip-db-forensics` / `psql` к Zulip.
|
||||
После сноса эти инструкции станут нерабочими.
|
||||
Изначально предлагались варианты A/B/C (переименовать скилл vs переписать тело).
|
||||
**Alex решил иначе — жёстче:** снести 3 zulip-скилла целиком, из USER.md удалить,
|
||||
в SOUL и остальных скиллах переписать.
|
||||
|
||||
| # | Файл | Ссылок |
|
||||
### Снесено (3 скилла)
|
||||
|
||||
| Скилл | Роль | Поглощён в |
|
||||
|---|---|---|
|
||||
| 1 | `~/.hermes/hermes-whale/SOUL.md:36` | 1 |
|
||||
| 2 | `~/.hermes/hermes-whale/memories/USER.md` | 1 |
|
||||
| 3 | `skills/software-development/zulip-db-forensics/SKILL.md` | основной |
|
||||
| 4 | `skills/software-development/zulip-thread-handoff/SKILL.md` | 4 |
|
||||
| 5 | `skills/software-development/zulip-bot-routing/SKILL.md` | 6 |
|
||||
| 6 | `skills/software-development/project-progress-audit/SKILL.md` | 3 |
|
||||
| 7 | `eagle-dashboard`, `systematic-debugging`, `personal-os-daily-brief`, `zfs-panic-recovery`, `htpc-steam-shortcuts` | по 1 |
|
||||
| `zulip-db-forensics` | запросы к Zulip Postgres, forensic-разбор | `message-history-search` |
|
||||
| `zulip-thread-handoff` | перехват треда у другого агента | `message-history-search` |
|
||||
| `zulip-bot-routing` | архитектура роутера + диагностика ботов | `message-history-search` |
|
||||
|
||||
**Предложенные варианты:**
|
||||
Удаление через `skill_manage(action='delete', absorbed_into='message-history-search')`.
|
||||
|
||||
- **A (чисто)** — переименовать скилл `zulip-db-forensics` → `message-history-search`,
|
||||
перевести все 7 групп на SQLite. ~10 файлов.
|
||||
- **B (минимально)** — только `SOUL.md` + `USER.md` + блок «ИСТОЧНИК = SQLite» в скилл. 3 файла.
|
||||
- **C (гибрид, рекомендован)** — `SOUL.md` + `USER.md` + переписать тело
|
||||
`zulip-db-forensics/SKILL.md` на SQLite, **имя скилла не менять** (8 входящих ссылок
|
||||
переименование сломает без выгоды), в остальных файлах заменить только psql-команды.
|
||||
### Создано (1 скилл)
|
||||
|
||||
**Решение не принято** — ждёт ответа Alex.
|
||||
`~/.hermes/skills/note-taking/message-history-search/SKILL.md` — 7 744 б.
|
||||
Схема, 5 готовых запросов, синтаксис FTS5, лимит покрытия, питфоллы.
|
||||
|
||||
### Переписано (21 файл)
|
||||
|
||||
| Файл | Что заменено |
|
||||
|---|---|
|
||||
| `~/.hermes/SOUL.md` | RULE 5 — ссылка на `zulip-db-forensics` → SQLite + `message-history-search` |
|
||||
| `~/.hermes/hermes-whale/SOUL.md` | блок про Zulip DB → путь к SQLite + запрос |
|
||||
| `hermes-whale/memories/USER.md` | «ищи в базе → Zulip psql» → «→ sqlite3 … СРАЗУ» |
|
||||
| `project-progress-audit` | 4 места: `related_skills`, Source 2, pitfalls |
|
||||
| `eagle-dashboard` | восстановление треда после `--replace` |
|
||||
| `systematic-debugging` | «та же проблема» → поиск в архиве |
|
||||
| `claude-cli-proxy-diagnostics` (+ ref) | 3 psql → `sender` из `messages` |
|
||||
| `executor-autonomous-tick` | запрос истории executor'а |
|
||||
| `vault-profile-onboarding` | Step 4 — восстановление из истории |
|
||||
| `claude-design` | «Check Zulip DB» → архив |
|
||||
| `personal-os-daily-brief`, `media-stack-reconciliation-audit`, `htpc-steam-shortcuts`, `truenas-administration/references/zfs-panic-recovery`, `.archive/truenas-zfs-panic-recovery`, `remote-host-administration` | `related_skills` + ссылки |
|
||||
| `systematic-debugging/references/postgres-fk-cascade-data-loss` | «читай с конца» → архив |
|
||||
|
||||
### 🔴 Питфолл: `~/.hermes/SOUL.md` ≠ `~/.hermes/hermes-whale/SOUL.md`
|
||||
|
||||
`skills/` — это **симлинк** (`hermes-whale/skills → ~/.hermes/skills`), поэтому правка скилла
|
||||
видна по обоим путям. А **SOUL.md — два разных файла**:
|
||||
|
||||
| Путь | Размер | Дата |
|
||||
|---|---|---|
|
||||
| `~/.hermes/SOUL.md` | 9 732 б | 17 мая — RULE 5, «Core Rules» |
|
||||
| `~/.hermes/hermes-whale/SOUL.md` | 8 244 б | правится этой сессией — ADHD-секция |
|
||||
|
||||
Правка только одного оставила бы RULE 5 битым. **Всегда править оба.**
|
||||
Проверка: `ls -la` — если размеры/даты разные, файлы независимы.
|
||||
|
||||
### Оставлено как есть (осознанно)
|
||||
|
||||
`docker-balda-service/references/balda-env-recovery.md` и `zulip-router-rules.md` —
|
||||
там psql читает **живые API-ключи ботов**, это не история. Добавлена шапка-предупреждение
|
||||
о декоммишене, запросы не тронуты. Если Zulip снесут — файлы придётся переписать.
|
||||
|
||||
### Бэкап
|
||||
|
||||
`~/.hermes/hermes-whale/backups/20260929-zulip-to-sqlite/` — 464 K, 51 файл
|
||||
(SOUL.md, USER.md, 3 снесённых скилла целиком, все правимые скиллы).
|
||||
|
||||
## Шаг 4 — снос (выполнять ПОСЛЕ шага 3)
|
||||
|
||||
|
||||
Reference in new issue
Block a user