[2026-09-29] eagle: personal/plans/balda-mm-pr-plan.md personal/plans/balda-runtime-rebuild-mm-validation.md personal/plans/runtime-pr5-toolset-dedup-review-fixes.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-29 13:01:15 +06:00
1 parent def88a5074
commit 83367304cb
3 files changed
+70 -6

No files matched your search

+17 -2
View File
@@ -18,8 +18,8 @@
## 0. ✅ ПОСТ-МЕРЖ: git-гигиена (2026-09-29)
Ветки снесены, prune выполнен, worktree почищены. Полный разбор —
[[personal/plans/balda-runtime-rebuild-mm-validation]] блок «2026-09-29».
Ветки снесены, prune выполнен, worktree почищены, `/tmp` и форки `norma` вычищены.
Полный разбор — [[personal/plans/balda-runtime-rebuild-mm-validation]] блок «2026-09-29».
```bash
cd ~/Developer/balda
@@ -32,13 +32,28 @@ 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
rm -rf /tmp/balda-* /private/tmp/balda-* # ~130 файлов
rm -rf ~/Developer/norma-local ~/Developer/norma-fork ~/Developer/norma-upstream-check # 291 МБ
```
**Итог: `~/Developer/balda` = только `main`, один worktree, чистое дерево** (кроме `.gitignore`).
🔴 **Питфолл: `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`.
🔴 **Питфолл при сносе форков `norma`:** в `~/Developer/norma-fork` лежал **непушенный** коммит
`70ff876 feat: support custom OpenAI base URL via OPENAI_BASE_URL env var` (ветка
`feat/custom-openai-base-url`). Это тот самый `OPENAI_BASE_URL`, на котором держится запуск Балды.
Проверять `git log --branches --not --remotes --oneline` **перед** `rm -rf` любого репо.
📌 **`.gitignore` изменён (не закоммичен):** добавлены `/personal/` и `/tools/` — доки Obsidian
дважды попадали в корень репо из-за `write_file` с vault-относительным путём при cwd = репо.
📌 **`~/Developer/balda/personal/` был дубликатом вотла, не уникальным контентом** — обе версии
в `~/obsidian` новее по размеру и дате. Сверять перед сносом, а не удалять по имени файла.
⚠️ **Локальная `main` отстала от `upstream/main`.** MM-транспорт ушёл в **апстрим**, не в
`origin/mallexxx/balda`, поэтому `git pull origin main` → `Already up to date` — это не «всё чисто»,
а «origin не содержит мержа». Догонять через `git merge upstream/main` (не rebase — `AGENTS.md`).
@@ -78,10 +78,43 @@ error: cannot delete branch 'X' used by worktree at '/path'
| `~/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 от этих образов **не
⚠️ **Мусор в `/tmp` — СНЕСЁН (2026-09-29):** ~130 файлов `/tmp/balda-*` (скрипты, логи, образы
0.1.9–0.1.14, кэши Go, `balda-linux-arm64-runtime210`). Откат на Kraken от этих образов **не
зависит** — теги уже загружены в docker на хосте.
### ✅ Снос форков `norma` + правка `.gitignore` (2026-09-29)
**`~/Developer/norma-local` · `norma-fork` · `norma-upstream-check` — УДАЛЕНЫ** (291 МБ).
🔴 **Перед сносом `norma-fork` обнаружен непушенный коммит:**
`70ff876 feat: support custom OpenAI base URL via OPENAI_BASE_URL env var`
(ветка `feat/custom-openai-base-url`, в remotes его нет). Это тот самый `OPENAI_BASE_URL`,
на котором держится запуск Балды (в YAML `base_url` мёртв). Alex принял решение снести без
выгрузки патча. ⚠️ Если `OPENAI_BASE_URL` понадобится в апстриме `norma` — коммит восстанавливать
неоткуда, писать заново.
Также потеряна незакоммиченная правка `norma-local/pkg/runtime/hostedagent/openai.go`.
**`.gitignore` в `~/Developer/balda` — изменён (НЕ закоммичен):**
```gitignore
# Local notes accidentally written with vault-relative paths
/personal/
/tools/
```
Причина: доки Obsidian (`personal/plans/...`, `personal/tech/...`) дважды попадали в корень репо
из-за вызова `write_file` с vault-относительным путём при cwd = `~/Developer/balda`. `/personal/`
защищает от повтора; `/tools/` — untracked локальный дельта-апплер.
📌 **Мусор `~/Developer/balda/personal/` был дубликатом вотла, не уникальным контентом.**
Сверка по содержимому перед сносом:
| Файл в репо | В `~/obsidian` | Вердикт |
|---|---|---|
| `plans/runtime-pr5-toolset-dedup-review-fixes.md` 15 KB @ 09-28 | **23 KB @ 09-29** | репо — устаревший черновик |
| `tech/music-broken-tolad.md` 4.7 KB @ 09-26 | **6.6 KB @ 09-27** | репо — устаревшая копия |
Обе версии в вотле новее и полнее → потерь нет. 📌 **Урок:** перед сносом «мусора» сверять
содержимое с вотлом по размеру+дате, а не только по имени файла.
⚠️ **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`.
@@ -486,12 +519,20 @@ reboot**. Источники в `~/Developer/balda/tools/` (созданы за
6. **Починить bridge `balda-executor-mcp`** — HTTP 000 + JSONDecodeError (отдельная инфра).
7. Прогнать сценарии D2-b / D2-c (после части B) — они и есть приёмка надёжности WS.
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).
9. ✅ ~~Временное в `/tmp`~~ — **~130 файлов `/tmp/balda-*` снесены 2026-09-29.** Осталось на Kraken:
`/tmp/mm-*.sh` (не переживут reboot; источники в `~/Developer/balda/tools/`).
10. 🔴 **Локальная `main` отстала от `upstream/main`.** `git pull origin main` даёт
`Already up to date` — MM-транспорт ушёл в **апстрим**, не в `origin/mallexxx/balda`.
Чтобы догнать, нужен `git merge upstream/main` (не rebase — правило AGENTS.md).
**Решение Alex по этому пункту не получено** — спрашивать перед действием.
11. ⚠️ **`.gitignore` изменён и НЕ закоммичен** (`/personal/`, `/tools/`). Решение по коммиту
за Alex. Коммитить **только этот файл** — `go.mod`/`Dockerfile.release`/`go.sum`/`app.go`/
`preflight.go` не трогать (вне PR, нужны для стенда).
12. ⚠️ **2 stash в `~/Developer/balda` не удалены** — `stash@{0}` (logging-дебаг whale-20260623),
`stash@{1}` (zulip-events WIP вкл. `go.mod`). Решение за Alex.
13. ✅ ~~Форки `norma`~~ — `norma-local`/`norma-fork`/`norma-upstream-check` снесены 2026-09-29
(291 МБ). ⚠️ Вместе с `norma-fork` потерян непушенный `70ff876` (`OPENAI_BASE_URL`) —
см. блок «Снос форков `norma`».
## Связанные заметки
@@ -18,6 +18,14 @@
> ⚠️ **`~/Developer/norma-local`, `norma-fork`, `norma-upstream-check` — это форки `norma`,
> ДРУГОГО репозитория.** К PR #4/#5/#7 отношения не имеют, хотя названия сбивают.
> `runtime-local` — единственный настоящий клон `runtime`.
>
> 🗑️ **СНЕСЕНЫ 2026-09-29** (291 МБ, решение Alex). ⚠️ Вместе с `norma-fork` потерян
> **непушенный** коммит `70ff876 feat: support custom OpenAI base URL via OPENAI_BASE_URL env var`
> (ветка `feat/custom-openai-base-url`, в remotes отсутствовал) + незакоммиченная правка
> `norma-local/pkg/runtime/hostedagent/openai.go`. Это тот самый `OPENAI_BASE_URL`, на котором
> держится запуск Балды (в YAML `base_url` мёртв — см. [[personal/tech/balda-go-fx-pitfalls]]).
> **Восстанавливать неоткуда** — при необходимости писать заново.
> 📌 Урок: перед `rm -rf` репо — `git log --branches --not --remotes --oneline`.
---