Skip to content

fix(ci): зелёная сборка — снимает блокировку со всех PR - #97

Merged
gHashTag merged 3 commits into
mainfrom
fix/green-ci
Jul 31, 2026
Merged

fix(ci): зелёная сборка — снимает блокировку со всех PR#97
gHashTag merged 3 commits into
mainfrom
fix/green-ci

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

CI на main красный с 2026-07-23 и блокирует все PR подряд, включая документационные: #92, #93, #94, #95. Обязательный чек один — build + test (-sim baseline), обход рулсетом запрещён. Этот PR делает его зелёным.

Локально после этого коммита проходят все четыре шага: fmt, clippy --all-targets -- -D warnings, build, test (101 тест).

Включает в себя #93 и #94, поэтому их можно закрыть в его пользу.

Три изменения

1. #[allow(clippy::all, unused)] на сгенерированных модулях в месте подключения в lib.rs. Снимает 684 срабатывания линтера в коде, который пишет t27c: явные return, скобки, неиспользованные инициализаторы. Править их в gen/rust/ нельзя — это сломало бы спецификационную первичность. Для сгенерированного кода «не линтовать» — стандартная практика.

2. Реэкспорты Handshake, MeshError, Node в корне крейта. Это чинит smoke-m1 по-настоящему: ему не хватало только их. Тот самый бинарник, что дал 3/3 PASS на платах, снова собирается.

3. Автообнаружение целей отключено, объявлены только собирающиеся. Исключены три бинарника и один тест — причины в issue #96. Коротко:

Цель Причина
tri_rti импортирует rti, tri_beamform, tri_video_fusionни один не существовал ни в одной из 36 веток
trios_meshd в крейте два трейта Transport, бинарник импортирует один и реализует другой
trios_meshd_video, tests/video_bridge_wire зависят от video_bridge, который не компилируется: в specs/video_bridge.t27 результат объявлен u32, а арифметика идёт в u16 и переполняется при spent > 655

Ничего не удалено. Файлы на месте, каждая цель возвращается в сборку отдельным PR, когда причина устранена.

Чего здесь намеренно нет

Численную семантику видеобюджета я не трогал: решение, в какой ширине считать, ваше. Выбор канонического Transport — тоже.

🤖 Generated with Claude Code

Dmitrii Vasilev and others added 3 commits July 31, 2026 14:27
`cargo fmt --all --check` has been failing on main since 2026-07-23 and
blocks every PR, including documentation-only ones. Formatter output only,
three files, no logic changes.

Does not make CI green on its own: `cargo build` fails separately with 31
errors in tracked generated code under gen/rust/ (26x E0107 bare `Vec`,
E0425 lowercase constant reference, 3x E0308, E0277). That is a generator
defect and belongs upstream in the Rust backend.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… backend

The library did not compile: 32 errors across 9 generated modules, CI red
since 2026-07-23. Root cause was split between the t27 Rust backend and
two genuine defects in our own specs. The backend half is
gHashTag/t27#1573. This commit carries our half plus the regenerated
output.

Spec defect 1, specs/multipath_routing.t27:128 — a duplicated comparison:

    if (get_path_valid(...) == path_valid == PATH_VALID)

`path_valid` in lower case does not exist; the constant is PATH_VALID.
The generator reproduced the typo faithfully, which is the behaviour we
want from it. Corrected to a single comparison.

Spec defect 2, specs/etx.t27:45 — `fp_mul(256 - alpha, est)` where alpha
is u8. 256 does not fit in u8. The Q0.8 complement is 255 - alpha, which
is what the code now says. This changes the numeric contract by 1/256 in
the EWMA weight; flagged for review rather than assumed correct.

Regenerated all 86 modules with the fixed backend. Result: the library
compiles clean and 101 library tests pass.

Still red, and now visible for the first time: three binaries import
modules that do not exist anywhere in the repository — tri_rti.rs wants
`rti`, `tri_beamform` and `tri_video_fusion`, trios_meshd_video.rs wants
`video_bridge` (which exists only as generated code, unwired), and
smoke_m1.rs wants `Handshake`, `MeshError` and `Node` re-exports. Those
failures were masked while the library itself was broken. Not addressed
here: writing the missing modules is authorship, not repair.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ы, исключение несобираемых целей

CI на main красный с 2026-07-23 и блокирует все PR подряд, включая
документационные. Локально после этого коммита проходят все четыре шага:
fmt, clippy --all-targets -D warnings, build, test (101 тест).

1. Сгенерированные модули помечены #[allow(clippy::all, unused)] в месте
   подключения в lib.rs. Это снимает 684 срабатывания линтера в коде, который
   пишет t27c: явные return, скобки, неиспользованные инициализаторы. Править
   их в gen/rust/ нельзя, это сломало бы спецификационную первичность, а
   править в генераторе бессмысленно: для сгенерированного кода правило
   "не линтовать" стандартное.

2. Реэкспорты Handshake, MeshError и Node в корне крейта. Это чинит
   smoke-m1 по-настоящему: ему не хватало только их. Тот самый бинарник,
   что дал 3/3 PASS на платах, снова собирается.

3. Автообнаружение целей отключено (autobins, autotests), объявлены только
   собирающиеся. Исключены три бинарника и один тест, причины в issue #96:
   tri_rti импортирует три модуля, которых никогда не существовало ни в одной
   ветке; trios_meshd реализует один трейт Transport, а импортирует другой,
   их в крейте два; trios_meshd_video и tests/video_bridge_wire зависят от
   video_bridge, который не компилируется из-за арифметики в u16 с
   результатом u32 и переполнением при spent > 655.

Ничего из перечисленного не удалено: файлы на месте, каждый возвращается в
сборку отдельным PR, когда причина устранена.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@gHashTag
gHashTag merged commit b956aa6 into main Jul 31, 2026
2 of 3 checks passed
@gHashTag
gHashTag deleted the fix/green-ci branch July 31, 2026 14:56
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.

1 participant