[2026-09-26] eagle: family/how-to/truenas-infrastructure.md personal/plans/balda-mm-pr-plan.md personal/projects/balda/balda-mattermost-connector.md personal/projects/balda/balda-mm-delegation-plan.md personal/tech/balda-go-fx-pitfalls.md
This commit is contained in:
1 parent
036e7a7091
commit
1bf8320446
5 files changed
+318
-57
No files matched your search
@@ -1,13 +1,93 @@
|
||||
# Balda — Mattermost connector: PR-подготовка (закрыто)
|
||||
|
||||
> Создан 2026-09-26. Обновлён 2026-09-26 (PR-проход, финал).
|
||||
> Статус: **🟡 код/тесты/доки/коммиты готовы — но осталось ОДНО решение по `tools/` в ветке**
|
||||
> (см. §«Открытое решение» ниже). После него — `git push` и PR.
|
||||
> Создан 2026-09-26. Обновлён 2026-09-26 (PR открыт).
|
||||
> Статус: **✅ PR ОТКРЫТ — baldaworks/balda#8, 8/8 CI PASS, MERGEABLE.**
|
||||
> https://github.com/baldaworks/balda/pull/8
|
||||
> Команда Alex: «Коммит текущего стейта и продолжай пока не стыдно будет открывать PR mattermost connector.
|
||||
> Со всеми поддерживаемыми фичами и тестами. Вперёд! Без вопросов и требующих апрува команд.»
|
||||
> Часть [[personal/projects/balda/balda-mm-delegation-plan]] (Фаза 2 → PR в апстрим).
|
||||
|
||||
## ✅ Итог: ветка PR-clean (2026-09-26, финал)
|
||||
## ✅ PR ОТКРЫТ — https://github.com/baldaworks/balda/pull/8 (2026-09-26)
|
||||
|
||||
**Статус: OPEN · MERGEABLE · все 8 CI-джобов PASS.**
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| PR | **baldaworks/balda#8** |
|
||||
| База | `baldaworks/balda:main` |
|
||||
| Голова | `mallexxx:feat/mattermost-channel` |
|
||||
| Объём | **41 файл, +5622 / −18** |
|
||||
| Коммитов | 7 |
|
||||
| Mergeable | ✅ MERGEABLE |
|
||||
|
||||
### 🔴 Целевой репозиторий — `baldaworks/balda`, не `normahq/balda`
|
||||
|
||||
Проверено через API, а не по названию remote'а:
|
||||
```
|
||||
gh repo view mallexxx/balda --json parent
|
||||
→ parent: baldaworks/balda ← форк от него
|
||||
gh repo view normahq/balda --json owner
|
||||
→ owner.id: O_kgDOEgAHrw (= baldaworks) ← редирект, не отдельный репо
|
||||
```
|
||||
`origin` = `mallexxx/balda` (форк), `upstream` = `normahq/balda` (редирект на baldaworks).
|
||||
**PR создавать в `baldaworks/balda`**, head указывать как `mallexxx:<branch>`
|
||||
(не полный URL форка — иначе `gh` путается).
|
||||
|
||||
### База ветки — идеальная
|
||||
|
||||
`git rev-list --left-right --count upstream/main...HEAD` → `0 7` (0 позади, 7 впереди).
|
||||
`merge-base HEAD upstream/main` == `upstream/main` == `de273d8f`. Rebase не потребовался.
|
||||
|
||||
### CI — 8/8 PASS (прогон на чистом раннере)
|
||||
|
||||
```
|
||||
architecture-lint pass 2m2s
|
||||
ingress-e2e pass 30s
|
||||
jetstream-integration pass 1m0s
|
||||
lint pass 2m46s
|
||||
postgres-integration pass 57s
|
||||
projection-replay pass 26s
|
||||
sqlite-integration pass 1m15s
|
||||
test pass 6m0s ← главный: полный go test на чистом раннере
|
||||
```
|
||||
|
||||
📌 **Это и есть настоящая приёмка сборки.** Локально `cmd/balda` падал на
|
||||
`TestInitCommand_NonInteractiveAutoSelectsRootAndGeneratesDetectedAgents` — в CI он
|
||||
**прошёл**, то есть падение было особенностью моей локальной среды, а не дефектом.
|
||||
CI на чистом раннере закрывает ровно тот класс проблем, который локальные гейты не видят.
|
||||
|
||||
⚠️ **CI-пайплайн в репо ЕСТЬ** (`architecture-lint`, `lint`, `test`, `ingress-e2e`,
|
||||
`jetstream-integration`, `postgres-integration`, `sqlite-integration`, `projection-replay`).
|
||||
Значит локальные гейты — необходимое, но не достаточное условие; ждать CI обязательно.
|
||||
|
||||
### Команды (воспроизводимо)
|
||||
|
||||
```bash
|
||||
cd ~/Developer/balda
|
||||
git fetch upstream --quiet
|
||||
git rev-list --left-right --count upstream/main...HEAD # 0 7
|
||||
git push -u origin feat/mattermost-channel
|
||||
|
||||
gh pr create --repo baldaworks/balda --base main \
|
||||
--head mallexxx:feat/mattermost-channel \
|
||||
--title "feat(mattermost): add Mattermost channel transport" \
|
||||
--body-file /tmp/mm-pr-body.md
|
||||
|
||||
gh pr view 8 --repo baldaworks/balda --json state,mergeable,changedFiles,additions
|
||||
gh pr checks 8 --repo baldaworks/balda
|
||||
```
|
||||
|
||||
### Что осталось
|
||||
|
||||
1. **Ревью апстрима** — ждать. Правки по замечаниям делать в этой же ветке (push обновит PR).
|
||||
2. **Боевая проверка на Kraken** — PR-merge ≠ работает на стенде. Пересобрать образ из
|
||||
`9f1e6c9c`, задеплоить, `@balda` → ответ в ленте канала (см.
|
||||
[[personal/projects/balda/balda-kraken-mm-deploy]]).
|
||||
3. Фаза 4 (исполнитель) — [[personal/projects/balda/balda-mm-delegation-plan]].
|
||||
|
||||
---
|
||||
|
||||
## ✅ Итог: ветка PR-clean (2026-09-26, до пуша)
|
||||
|
||||
**7 коммитов**, рабочее дерево **чистое**, `tools/` **исключён** из ветки.
|
||||
|
||||
@@ -194,18 +274,24 @@ tools/deltas-mattermost.json
|
||||
tools/deltas-mattermost-2.json … -13.json (12 файлов)
|
||||
```
|
||||
|
||||
**Что нужно сделать — по выбору Alex:**
|
||||
**✅ РЕШЕНО (2026-09-26):** выбран вариант (a), выполнен по команде Alex «Добавь в ignored».
|
||||
Коммит `9f1e6c9c chore: ignore local project-editing tooling`.
|
||||
|
||||
| Вариант | Команда | Последствие |
|
||||
|---|---|---|
|
||||
| **(a) рекомендую** | `git rm -r --cached tools/` + коммит | файлы остаются на диске **untracked**, локальный инструментарий работает, ветка чистая |
|
||||
| (b) оставить | — | PR содержит 16 лишних файлов, ревьюер спросит |
|
||||
| (c) отдельная ветка | — | tooling живёт отдельно от PR |
|
||||
```bash
|
||||
echo '/tools/' >> .gitignore # + комментарий, что это локальный инструментарий
|
||||
git rm -r --cached tools/ # 16 файлов ушли из индекса, ОСТАЛИСЬ на диске
|
||||
git add .gitignore && git commit # → 9f1e6c9c
|
||||
```
|
||||
|
||||
⚠️ **Попытка (a) в этой сессии НЕ выполнена.** `git rm -r --cached tools/` ушла на
|
||||
апрув и **истекла по таймауту** — команда не применилась, состояние дерева целое
|
||||
(подтверждено `git status --short`: все файлы на месте). Повторять без команды Alex
|
||||
не стал: удаление из индекса — операция, требующая подтверждения.
|
||||
Результат: `git diff --stat upstream/main...HEAD -- tools/` → **пусто**;
|
||||
в PR-diff **41 файл**, все — файлы проекта. `tools/` на диске цел (**39 файлов**),
|
||||
`git status --short` чист.
|
||||
|
||||
⚠️ **`git rm -r --cached tools/` уходит на апрув** (рекурсивное удаление). Первая попытка
|
||||
истекла по таймауту и **не применилась** — состояние было целое. Проверять
|
||||
`git diff --cached --name-only` перед повтором.
|
||||
🔴 **`gitignore` НЕ отвязывает уже отслеживаемые файлы** — без `git rm --cached` они
|
||||
останутся в PR навсегда. Нужны оба шага, в этом порядке.
|
||||
|
||||
📌 **Правило на будущее:** проверять состав PR через
|
||||
`git diff --stat upstream/main...HEAD` **перед** объявлением готовности, а не только
|
||||
@@ -214,15 +300,29 @@ tools/deltas-mattermost-2.json … -13.json (12 файлов)
|
||||
|
||||
## Что осталось
|
||||
|
||||
**Ничего по коду.** Дальше по желанию Alex:
|
||||
**По PR — ничего, кроме ревью.** Всё выполнено:
|
||||
|
||||
0. 🔴 **Убрать `tools/` из ветки** — вариант (a) выше. Блокирует «стыдный» PR.
|
||||
1. `git push -u origin feat/mattermost-channel` и открыть PR в `baldaworks/balda`.
|
||||
2. Фаза 3/4 (эксплуатация на Kraken) — [[personal/projects/balda/balda-kraken-mm-deploy]].
|
||||
| Шаг | Статус |
|
||||
|---|---|
|
||||
| `tools/` убран из ветки, `/tools/` в `.gitignore` | ✅ коммит `9f1e6c9c` |
|
||||
| `git push -u origin feat/mattermost-channel` | ✅ запушено |
|
||||
| PR в `baldaworks/balda` открыт | ✅ **#8**, 41 файл, +5622/−18 |
|
||||
| CI | ✅ **8/8 PASS** |
|
||||
| Локальные гейты (build/vet/lint/arch-lint/no-race) | ✅ все зелёные |
|
||||
|
||||
⚠️ Скрипты `tools/mm-*.sh` (9 шт.) и дельты `tools/deltas-mattermost-14…26` +
|
||||
`deltas-goal-command-fix.json` + `deltas-mm-prefixfix.json` — **untracked, локальный
|
||||
инструментарий**. Для PR в апстрим не отправлять. Существенное продублировано в
|
||||
**Осталось (по желанию Alex):**
|
||||
|
||||
1. **Ревью апстрима** — ждать. Правки по замечаниям делать **в эту же ветку**:
|
||||
push обновит PR автоматически.
|
||||
2. 🔴 **Боевая проверка на Kraken — НЕ сделана.** PR-merge ≠ «бот работает на стенде».
|
||||
Нужно: пересобрать образ из `9f1e6c9c`, задеплоить, `@balda` → ответ в ленте канала.
|
||||
См. [[personal/projects/balda/balda-kraken-mm-deploy]].
|
||||
3. **Замержить PR** (после ревью) — тогда Фаза 2 закрывается официально.
|
||||
|
||||
⚠️ Скрипты `tools/mm-*.sh` (9 шт.), дельты `tools/deltas-mattermost-14…26` +
|
||||
`deltas-goal-command-fix.json` + `deltas-mm-prefixfix.json`, `apply-project-deltas.py`,
|
||||
`run-project-deltas.sh`, `.deltas-state.json` — **untracked, локальный инструментарий**,
|
||||
git-ignored. Существенное продублировано в
|
||||
[[personal/projects/balda/balda-kraken-mm-deploy]] и [[personal/tech/balda-go-fx-pitfalls]].
|
||||
|
||||
## Связанные заметки
|
||||
|
||||
Reference in new issue
Block a user