Skip to content

fix(ci): сверявай псевдонимите в сондата за колоните на анексите - #310

Merged
todorkolev merged 1 commit into
mainfrom
fix/deploy-amendment-column-probe
Aug 14, 2026
Merged

fix(ci): сверявай псевдонимите в сондата за колоните на анексите#310
todorkolev merged 1 commit into
mainfrom
fix/deploy-amendment-column-probe

Conversation

@todorkolev

Copy link
Copy Markdown
Collaborator

Стъпката Apply amendment restated/suspect columns от #307 падна на първото си истинско пускане (9999ad53) и няма как да мине - нито на тази база, нито на никоя.

Какво става

Заявката именува колоните has_restated / has_treatment / has_suspect:

(SELECT COUNT(*) FROM pragma_table_info('amendments') WHERE name = 'value_restated') AS has_restated,

а read_flag търси реда по низа, с който е извикана ensure_column:

ensure_column value_restated  "value_restated INTEGER NOT NULL DEFAULT 0"

Object.hasOwn(row, 'value_restated') е false, сондата чете това като нечетим отговор и излиза с 2, а case-ът го третира като фатално:

##[error]Could not determine whether amendments.value_restated exists.

Какво е засегнато

Стъпката стои преди деплоя на Worker-а, тъй че деплоят спира на нея и стъпки 12-14 се прескачат. Самият сайт не е засегнат - нищо не е било разгърнато, stage връща 200 и работи с изданието отпреди #307. Кронът също върви със стария Worker, тъй че не търси новите колони. Няма повредени данни.

Ефектът е, че stage е замразен и редицата не може да продължи: #308 добавя своя стъпка след тази и никога не би стигнал до нея.

Поправката

Псевдонимите стават самите имена на колоните, плюс коментар защо не могат да бъдат описателни.

Проверено срещу истинската база (само четене):

{ "value_restated": 0, "value_treatment": 0, "value_suspect": 0 }

и сондата върху този отговор дава статус 1 (добави) за трите, а върху отговор с единици - 0 (има ги). Никога 2.

Стъпката „Apply amendment restated/suspect columns" от #307 падна на първото
си истинско пускане и няма как да мине - нито на тази база, нито на никоя.

Заявката именува колоните `has_restated` / `has_treatment` / `has_suspect`, а
`read_flag` търси реда по низа, с който е извикана `ensure_column`, тоест
`value_restated` / `value_treatment` / `value_suspect`. `Object.hasOwn` връща
false за всяка от трите, а сондата чете това като нечетим отговор и излиза с
2, което `case`-ът третира като фатално:

    ##[error]Could not determine whether amendments.value_restated exists.

Понеже стъпката стои преди деплоя на Worker-а, деплоят до stage спира на нея -
самият сайт не е засегнат, защото нищо не е било разгърнато (стъпки 12-14 са
прескочени), но stage остава на изданието отпреди #307.

Поправката е псевдонимите да са самите имена на колоните, плюс коментар защо
не могат да бъдат описателни. Проверено срещу истинската база: заявката връща
{value_restated: 0, value_treatment: 0, value_suspect: 0}, а сондата дава
статус 1 (добави) при липсващи и 0 (има ги) при налични - никога 2.
@github-actions

Copy link
Copy Markdown

Test coverage

Workspace Lines Δ Branches Δ Functions Statements
apps/etl 75.43% +1.43pp 63.52% +5.32pp 70.00% 74.11%
apps/web 91.02% +1.32pp 82.50% +0.70pp 91.19% 89.73%
packages/config 92.85% +0.05pp 72.22% +0.02pp 92.85% 89.18%
packages/db 94.55% +0.35pp 79.55% +0.55pp 87.19% 91.56%
packages/ingest 89.69% +3.89pp 85.52% +5.52pp 81.74% 88.12%
packages/shared 95.50% +0.10pp 80.83% +0.83pp 92.30% 89.56%
Total (informational) 91.40% 81.39% 87.11% 89.30%

✅ No workspace dropped below its baseline (tolerance 0.5pp).

📈 Coverage rose by more than 1pp — run node scripts/check-coverage.mjs --update locally and commit coverage-baseline.json to ratchet the threshold up.

@todorkolev
todorkolev merged commit f8973a2 into main Aug 14, 2026
5 checks passed
todorkolev added a commit to cefothe/sigma that referenced this pull request Aug 14, 2026
Разрешени конфликти след midt-bg#307 (двойно броене в анексите) и midt-bg#310.

deploy.yml — двете колони на midt-bg#306 се сливат в стъпката на midt-bg#307, вместо да се
държи втора стъпка. Точно каквото искаше бележката в самия midt-bg#308: „If midt-bg#307
merges first, fold these two columns into its provenance step instead of
keeping this one." Една сонда, един механизъм; втора ръчно написана стъпка е
още един шанс за грешката, която midt-bg#310 трябваше да оправи. Заявката вече пита
за пет колони, а ensure_column се вика пет пъти. Проверено срещу живата база:
{value_restated: 1, value_treatment: 1, value_suspect: 1, contract_number_raw: 0,
link_method: 0} — трите на midt-bg#307 ги има, двете на midt-bg#306 ще се добавят.

promote-amendments.sql и refresh-slice.sql — списъкът с колони в INSERT-а
събира и двете страни: contract_number_raw/link_method от midt-bg#306 и
value_restated/value_treatment/value_suspect от midt-bg#305. Редът отговаря на
SELECT-а, който git вече беше слял правилно.

Тестове — всяко от двете подавания добавяше своята миграция към веригата, с
която строи схемата. Сега всеки файл, който сервира amendments, прилага и
0006/0007, и 0008; иначе скриптовете падат на липсваща колона от другата
страна. Това важи в двете посоки: файловете на midt-bg#305 получиха 0008, а тези на
midt-bg#306 получиха 0006/0007.

Пълният суит е зелен: db 438, web 482, ingest 84, etl 20, shared 45, config 10.
Typecheck и prettier чисти.
todorkolev added a commit to ydimitrof/sigma that referenced this pull request Aug 14, 2026
Разрешени конфликти след midt-bg#307, midt-bg#310 и midt-bg#308.

Всички са от един и същ вид: и двете страни добавяха своя миграция към
веригата, с която тестът строи схемата, и понякога под едно и също име на
променлива. Сега всеки тест, който сервира amendments или пуска refresh-slice/
normalize-raw, прилага цялата верига - 0006/0007 (стойност на анекса),
0008 (провенанс) и 0009 (доказателствен печат). Иначе всеки набор пада на
липсваща таблица или колона от другия.

Пълният суит е зелен: db 474, web 493, ingest 84, etl 20, shared 45, config 10.
Typecheck и prettier чисти.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants