[2026-09-26] eagle: family/how-to/jellyfin-config.md personal/plans/balda-mm-pr-plan.md personal/tech/music-tags-repair-truenas.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-26 14:21:50 +06:00
1 parent 8589765eb8
commit 9f300da7b6
3 files changed
+242 -22

No files matched your search

+68
View File
@@ -0,0 +1,68 @@
# Balda — Mattermost connector: план подготовки PR в апстрим
> Создан 2026-09-26. Статус: **в работе**.
> Команда Alex: «Коммит текущего стейта и продолжай пока не стыдно будет открывать PR mattermost connector.
> Со всеми поддерживаемыми фичами и тестами. Вперёд! Без вопросов и требующих апрува команд.»
> Часть [[personal/projects/balda/balda-mm-delegation-plan]] (Фаза 2 → PR в апстрим).
## Цель
PR в `baldaworks/balda`: полный Mattermost-транспорт — все поддерживаемые фичи Балды,
тесты, зелёные quality gates, доки. Ветка `feat/mattermost-channel`, 1 коммит уже есть
(`004fda2f`), рабочий счёт — 11 изменённых + 21 новых файлов в worktree.
## Что уже готово (не переделывать)
- Пакет `channel/mattermost/` (client, locator_codec, inbound, adapter, media, ingress, formatting, presentation, mattermostfx) — закоммичен `004fda2f`, 40 файлов.
- Все quality gates были зелёные на `004fda2f`.
- 6 причин тишины найдены и устранены живым запуском на Kraken (см. `balda-kraken-mm-deploy.md`).
- `handlersfx/mattermost_ingress.go` — написан в worktree, НЕ закоммичен.
## Пробелы, найденные ревизией кода (2026-09-26, вечер)
### P1 — дефекты, которые полезут в PR и подведут ревью
| # | Дефект | Где | Почему важно |
|---|---|---|---|
| P1.1 | Возможен двойной транспортный префикс в `principal` | `actors/command/start/handler.go:~420` | Прошлый фикс был только в БД → дефект вернулся. В PR пойдёт сырой код |
| P1.2 | `channel/mattermost/*_test.go` — **0 файлов** | `channel/mattermost/` | «Со всеми тестами» — сейчас только 2 теста в `cmd/balda`. Апстрим-транспорт zulip имеет ~4 тест-файла |
| P1.3 | `handlersfx/mattermost_ingress.go` не покрыт тестами и не закоммичен | `handlersfx/` | Ядро интеграции, написанное «на веру» |
| P1.4 | README / `docs/balda.md` не упоминают Mattermost | корень, docs/ | Требование `AGENTS.md`; осталось открытым из Фазы 2 |
| P1.5 | `SendDraftPlain` — проверить, что edit-in-place покрыт | `adapter.go` | Отклонение от плана, надо подтвердить тестом |
| P1.6 | `SendTyping` — no-op; в `ProgressPolicy` Typing:false | `adapter.go`, `inbound.go` | Проверить, что нет мёртвого кода (линтер уже проходил, но повторно) |
### P2 — качество PR
- Прогнать `go test -race ./...` на затронутых пакетах, отделить апстримные фейлы (`git stash`).
- `golangci-lint`, `go-arch-lint` — перепроверить после новых файлов.
- Конвенциональные коммиты, разбивка: transport code / wiring / tests / docs.
- Убрать из дерева артефакты, которым в PR не место (`tools/mm-*.sh`, дельта-JSON) —
решить: в отдельный коммит с `tools/` или не пушить вовсе.
## План работ (по шагам)
1. **Зафиксировать базу.** `check` + `apply` всех дельт в worktree → `go build ./...`.
2. **Починить P1.1** (двойной префикс) в коде `handler.go`.
3. **Тесты транспорта** (`channel/mattermost/`): `locator_codec_test.go`, `inbound_test.go`, `adapter_test.go` (по образцу zulip, `httptest`-сервер для REST).
4. **Тесты хендлера** (`handlersfx/mattermost_ingress_test.go`).
5. **P1.4** — README + `docs/balda.md`.
6. **Quality gates** — build / vet / golangci-lint / go-arch-lint / race-тесты.
7. **Коммиты** — по смыслу, Conventional Commits.
8. **Обновить Obsidian** — итог и что осталось.
## Definition of Done
- `go build ./...`, `go vet ./...` = 0.
- `golangci-lint run` = 0 issues.
- `go-arch-lint check --project-path .` = OK.
- Тесты транспорта + хендлера зелёные, `-race`.
- Ни одного дефекта из `balda-go-fx-pitfalls` в коде.
- Доки описывают Mattermost.
- Коммиты в `feat/mattermost-channel`, готово к `git push` и PR.
## Связанные заметки
- [[personal/projects/balda/balda-mattermost-connector]] — Фаза 2 (код)
- [[personal/projects/balda/balda-kraken-mm-deploy]] — Фаза 3 (деплой)
- [[personal/tech/balda-go-fx-pitfalls]] — fx-питфоллы + дельта-апплаер
- [[personal/plans/balda-mm-endtoend-plan]] — сквозной путь