fix(tr): бумни правилата на tr-rules-2 - режимът се смени, версията не - #332
Merged
Conversation
Константата версионира ПРАВИЛАТА, не кода, и гейтът за монотонност виси на нея: изчезнала връзка при непроменена версия е твърда находка, при сменена - очаквана разлика. Собственият ѝ коментар казва да се бумва, щом смисълът на стъпало се промени. Смени се два пъти, без версията да го отрази. #309 въведе изискването изобщо да има регистърно доказателство - дотогава връзка се публикуваше без никакво, защото таблицата interest_link_evidence я нямаше. ADR-0035 после затегна стъпало 2: освен фирменото наименование трябва и нещо друго да установи дружеството. Затова първото пускане с пълен регистърен обход отчете 37 регресии: гейтът сравняваше повърхност отпреди #309 със сегашната и виждаше законното затягане като тиха загуба. Под tr-rules-2 същите 37 стават отпечатана разлика за преглед, каквито са. Фикстурите в audit.test.mjs сочеха низа 'tr-rules-1' там, където значеха "текущата версия" - тоест тестът за "изчезнала при НЕПРОМЕНЕНА версия" щеше да се обърне при всяко бумване и да мери обратното на замисленото. Вече сочат константата. 'tr-rules-0' остава литерал, защото там нарочно значи "стара версия".
Test coverage
✅ No workspace dropped below its baseline (tolerance 0.5pp). 📈 Coverage rose by more than 1pp — run |
8 tasks
todorkolev
added a commit
that referenced
this pull request
Aug 26, 2026
Първата версия на печата имаше преходен капан от същия вид, който #332 и #333 вече ни удари: всички съществуващи кешове са отпреди печата, тоест ход без обхождане (понеделнишкият cron) щеше да откаже на extract - не защото корпусът е отрязан, а защото е СТАР. И поправката щеше да зависи от поредността "слей, после пусни full_crawl=true преди понеделник". Вместо това ходът се лекува сам. Нова стъпка след възстановяването проверява печата; краулът тръгва при full_crawl ИЛИ при липсващ печат. Върху пълен кеш това е ~2 минути (файловете на диска се прескачат) и сверява срещу живия регистър - авторитетния източник, а не евристика върху това какво има на диска. Запазването и проверката на кеша следват същото условие, за да не се изгуби довършеното. Стабилно състояние с печатан кеш остава без мрежа, по замисъла на графика: лекуването се задейства само за кеш, който никога не е бил потвърден цял - точно случаят, в който довярването му е бъгът. Гейтът в extract.mjs остава непроменен и вече означава друго: всички пътища дотам гарантират печат, значи задействането му е непредвидено състояние, не позната преходност. Fail-closed е верният отговор за това.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Какво
RULES_VERSIONставаtr-rules-2, а фикстурите вaudit.test.mjs, които значеха "текущата версия",вече сочат константата вместо низа.
Защо
Константата версионира правилата, не кода, и гейтът за монотонност виси точно на нея: изчезнала
връзка при непроменена версия е твърда находка, при сменена - очаквана разлика. Собственият ѝ коментар
казва да се бумва, щом смисълът на стъпало се промени.
Смени се два пъти, без версията да го отрази:
без никакво - таблицата
interest_link_evidenceне съществуваше.дружеството е декларираното.
Как се прояви
Първото пускане с пълен регистърен обход (
32670990181, 731/731 присъди, 100%) стигна до одита и спря:Гейтът сравняваше повърхност, публикувана на 2026-08-04 - преди #309 да съществува - със сегашната,
и виждаше законното затягане като тиха загуба. Сред 37-те се повтарят и псевдо-институции като
"ВСТЪПИТЕЛНИ И ФИНАЛНИ ДЕКЛАРАЦИИ", тоест отпадат и дублирания, а не същински връзки.
Под
tr-rules-2същите 37 стават отпечатана разлика за преглед - каквито са - вместо провал на хода.Тестовете
audit.test.mjsзашиваше'tr-rules-1'на седем места, където значеше "текущата версия". Тоест тестът"изчезнала връзка при НЕПРОМЕНЕНА версия е твърда находка" щеше да се обърне при всяко бумване и да
мери точно обратното на замисленото. Вече сочат
RULES_VERSION.'tr-rules-0'остава литерал, защототам нарочно значи "стара версия".
Минават:
audit.test.mjs23,evidence.test.mjs42, всичкиscripts/cacbg+scripts/tr- 305.Какво НЕ прави
Не отписва нищо самоволно: 37-те продължават да се отпечатват при всеки одит, само че като декларирана
разлика, а не като спиране. Прегледът им си остава човешка работа.