main
feat(269-278): bdwgc extra/gc.c amalgamation fallback + fflush before abort
plan-22 Ф.1: libuv vendored через git submodule + build chain
fix(codegen): GC-root + cross-module merge for module-level lazy-static `ro` globals
merge(№456): постоянные getenv-пробы в рантайме, которыми был пойман UAF
feat(plan83.4.5.8): uncollectable SpawnCtx + flip activation — Default-on M:N ACTIVE
fix(codegen): CancelError typedef always available regardless of prelude subset
fix(nova_rt): gcc15-класс ошибок в rt-архиве — struct-tag/_Bool-RMW/ternary-cast
feat(plan133 Ф.1): nova_int=intptr_t, nova_uint=uintptr_t; remove usize/isize
docs: правка ссылок на перемещённые docs/guide|dev файлы
feat(contracts): interpolated contract messages — `requires x>0, "got ${x}"`
fix(208-Ф4R Ш4): снос conv.h nova_fmt_*/kill-switch + закрытие Ш3-хвоста (str/char/bool rich-spec + int/float Debug rich → *_display_spec) + D422-амендмент
fix(rt): deque.h — добавлен #include <stdlib.h> (malloc/calloc/free)
fix(259): two Layer-2-exposed startup races found via regression sweep
fix(221.1 №398, №224): supervised(cancel:/timeout:/deadline:) не будило driver-armed Time.sleep прямо в теле
fix(221.1 №431, остаток): поздняя отмена завершает ТОЛЬКО свой файбер — программа живёт дальше; из пути отмены исчезли и exit(), и abort()
diag(221.1 №456, окно p456-hang, sonnet): диагноз зависания предъявлен наблюдением — UAF в net_tcp_close split_refcount, корень в компиляторе (D415 §4)
rt(116/183): фикс loop-affinity гонки issue-стороны uv-опов [M-183-net2-loop-affinity-cross-thread-op]
fix(259): lazy guard-page punching (L1) + eager pool materialization (L2)
fix(runtime): корень [M-mn-spawnctx-corruption-cancel-wake] — потеря GC-рутов стеков потоков на Linux
rename: Plan 40 → 44.1, Plan 41 → 44.2, Plan 43 → 44.3, Plan 23.1 → 44.4
fix(259): make [p259-dl] diagnostics portable to the Windows toolchain
fix(fs): [M-fs-tls-mn-race] — TLS-протоколы → M:N-безопасный net-канон
plan-27 Ф.2: Nova GC tests + standalone C gc_test_helpers
Переименование nova_os_*, nova_io_*, nova_str_to_*, nova_str_parse_f64 (категория 4, ~18 имён)
codegen Plan 13 (MVP): Runtime stdlib projection (str/math)
codegen(C-backend): effects_d61 — interrupt + direct handler call + empty-struct fix
fix(net): port 0 is a request, not an error (registry #563)
feat(std/net): str @to_socket_addr(), :port wildcard, any()/any_v6(), port int+requires
fix(msvc): complete __atomic_* shim set in nova_msvc_compat.h
Merge branch 'p265-f1-spawn'
fix(mn-vela): supervised(cancel:/timeout:) now covers direct blocking body statements (#165, #169)
Переименование nova_os_* → os_* в rt/os_env.h (модульный интерфейс, не ядро)
fix(nova_rt): include-гигиена — дочинка missing-includes в заголовках рантайма
feat(os): process spawn/wait/exit-code via Command.run() (Plan 265 Ф.1, D453)
nova_rt: deep runtime tests — GC lifecycle and fiber mechanics
feat(83-go-cmn F.1): cut over worker queue deque -> fixed-ring runq (clang)
fix(random): real_random() CSPRNG default handler for Random (#553)
feat(plan83.11 §12.31): in-process VEH crash localizer (segv_diag.c)
perf(runtime): Plan 199 Ф.3 — str allocations occupy exactly len bytes (no +1 NUL reserve)
feat(plan103.1): MemOrdering enum + fence() API — закрывает Q-memory-model
fix(П1/П2, effects finding): extern time_* нейминг (§5а) + sleep(d Duration) явный тип
feat(248, wave 3): 11 атомиков на значение внутри (D447 #no_copy) + TcpStream.rc указателем
std(R3 D325, вопрос владельца): Semaphore-пара acquire/try_acquire — try_acquire_permit ПЕРЕИМЕНОВАН в try_acquire() -> Option[Permit] (одноимённая non-parking половина пары; сиблинга acquire_permit не существовало — R3-нарушитель, прецедент acquire_for), bool-дверь с ручным release приватизирована в мост @try_acquire_raw (rt: Nova_Semaphore_method_try_acquire_raw; D9 — одна дверь). D170-амендмент. НАХОДКА при миграции: №122 [M-cleanup-permit-lost-in-folder-cu] — auto-@cleanup Permit теряется в folder-CU (standalone/std-CU зелёные; d170 на явных release() с маркером-разворотом; P1 перед TLS-волной). №119 дополнен методной дырой W_TRY_WITHOUT_SIBLING. ПЛАН 231 УТВЕРЖДЁН (выход из bug-цикла: энфорс-аудит → матрица+дифф-прогон → 196-инвентаризация → IR-нота). Гейты: мега-CU 582/0/67 + флагман strict-effects + check std канон + sync_test/d170 + polaris 32/0/16
feat(83-go-cmn Ф.1): port go1.4 fixed-ring runq primitive + verbatim policy
feat(61): typed Fail[E] codegen — payload preservation via fail-frame