Follow-ups from #18 #21

Open
opened 2026-10-06 09:40:21 +03:00 by aep · 1 comment
Owner

Отложенные находки Среза 4 (PR #19, ledger docs/superpowers/plans/2026-10-06-slice-4-consolidation-ledger.md). Маркеры — из ledger и финального ревью; статус в ledger — deferred.

Содержательные

  • T11.3 — aliases.remove без блокировки: фантомное событие при гонке с move_alias ручного сопоставления (services/aliases.py, services/counterparty_mapping.py).
  • M-4 — нет теста advisory-блокировки алиаса при ручном сопоставлении (design #66).
  • M-6 — верхние границы входов: MembersIn.legal_entity_ids, StatusIn.comment, OsvFilters.q; lock_visible_version берёт FOR UPDATE до проверки видимости.
  • M-7 / OQ-123 — общие строки osv_entry меняются ручным сопоставлением и для версий не «в работе»; замороженные версии читать из ex_snapshot (Срез 7).
  • T6.1 / design #36 — поздний импорт transition в consolidation_documents; вынести в листовой модуль.
  • T7 — N+1 session.get(Consolidation) в хуке маппинга on_documents_mapped.
  • T9.b / OQ-125 — версия за Q1: квартальный Q1 идёт склейкой, нарастающий — строка в строку (design #50); ждёт владельца.
  • T10.1 — IN(ids) против лимита параметров asyncpg в load_osv_rows/выборке ЮЛ.
  • design #85 — OpenAPI без машиночитаемых доменных 422-кодов.

Мелкие (тесты, косметика)

  • T1.1 — backfill NAME в миграции 0004 сравнивает btrim, рантайм — strip().
  • T2.1–T2.6 — недочёты тестов Task 2 (репозиторий консолидаций).
  • T5.2, T5.3 — N DELETE в цикле отвязки при правке периметра; неиспользуемая переменная в тесте.
  • T8.3 — нет API-теста чек-листа для ERROR и субсчёта 58.03 (покрыто доменом).
  • T9.c, T9.d — страховка warnings при нарушении R-1; пробелы тестов домена свода.
  • T10.2, T10.3 — потолок perf-теста, слабые проверки страницы свода.
  • T11.4–T11.7 — тест регистра имени, тесты нескольких владельцев алиаса, дубль имени индекса, полный _build под блокировками.
  • #24 — частично дублирует #3 в design.md (архив).
  • Косметика финальной волны: формулировка «VERSION_NOT_FOUND» в спеках, docstring lock_versions_for_entity, разделитель в design #39/#43.

🤖 Generated with Claude Code

https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2

Отложенные находки Среза 4 (PR #19, ledger `docs/superpowers/plans/2026-10-06-slice-4-consolidation-ledger.md`). Маркеры — из ledger и финального ревью; статус в ledger — `deferred`. **Содержательные** - [ ] T11.3 — `aliases.remove` без блокировки: фантомное событие при гонке с `move_alias` ручного сопоставления (`services/aliases.py`, `services/counterparty_mapping.py`). - [ ] M-4 — нет теста advisory-блокировки алиаса при ручном сопоставлении (design #66). - [ ] M-6 — верхние границы входов: `MembersIn.legal_entity_ids`, `StatusIn.comment`, `OsvFilters.q`; `lock_visible_version` берёт `FOR UPDATE` до проверки видимости. - [ ] M-7 / OQ-123 — общие строки `osv_entry` меняются ручным сопоставлением и для версий не «в работе»; замороженные версии читать из `ex_snapshot` (Срез 7). - [ ] T6.1 / design #36 — поздний импорт `transition` в `consolidation_documents`; вынести в листовой модуль. - [ ] T7 — N+1 `session.get(Consolidation)` в хуке маппинга `on_documents_mapped`. - [ ] T9.b / OQ-125 — версия за Q1: квартальный Q1 идёт склейкой, нарастающий — строка в строку (design #50); ждёт владельца. - [ ] T10.1 — `IN(ids)` против лимита параметров asyncpg в `load_osv_rows`/выборке ЮЛ. - [ ] design #85 — OpenAPI без машиночитаемых доменных 422-кодов. **Мелкие (тесты, косметика)** - [ ] T1.1 — backfill NAME в миграции 0004 сравнивает `btrim`, рантайм — `strip()`. - [ ] T2.1–T2.6 — недочёты тестов Task 2 (репозиторий консолидаций). - [ ] T5.2, T5.3 — N DELETE в цикле отвязки при правке периметра; неиспользуемая переменная в тесте. - [ ] T8.3 — нет API-теста чек-листа для `ERROR` и субсчёта 58.03 (покрыто доменом). - [ ] T9.c, T9.d — страховка `warnings` при нарушении R-1; пробелы тестов домена свода. - [ ] T10.2, T10.3 — потолок perf-теста, слабые проверки страницы свода. - [ ] T11.4–T11.7 — тест регистра имени, тесты нескольких владельцев алиаса, дубль имени индекса, полный `_build` под блокировками. - [ ] #24 — частично дублирует #3 в design.md (архив). - [ ] Косметика финальной волны: формулировка «VERSION_NOT_FOUND» в спеках, docstring `lock_versions_for_entity`, разделитель в design #39/#43. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
Author
Owner

PR #26 (коммиты 74be7d3, 5868b14, merge 4879fdc) закрывает маркеры T11.3 (aliases.remove под advisory-блокировкой, 404 вместо фантомного события), M-4 (тест блокировки при ручном сопоставлении), M-6 (границы MembersIn.legal_entity_ids ≤ 500, StatusIn.comment ≤ 1000, OsvFilters.q ≤ 500; видимость версии до FOR UPDATE). Остальные пункты открыты. Новая находка C21-1 (q без max_length в admin.py и directories.py) — в follow-up issue.

PR #26 (коммиты 74be7d3, 5868b14, merge 4879fdc) закрывает маркеры **T11.3** (aliases.remove под advisory-блокировкой, 404 вместо фантомного события), **M-4** (тест блокировки при ручном сопоставлении), **M-6** (границы MembersIn.legal_entity_ids ≤ 500, StatusIn.comment ≤ 1000, OsvFilters.q ≤ 500; видимость версии до FOR UPDATE). Остальные пункты открыты. Новая находка C21-1 (q без max_length в admin.py и directories.py) — в follow-up issue.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/arm-core#21
No description provided.