[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:
1 parent
8589765eb8
commit
9f300da7b6
3 files changed
+242
-22
No files matched your search
@@ -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]] — сквозной путь
|
||||
Reference in new issue
Block a user