Читать книгу «Нулевая серия» онлайн полностью📖 — Виктор Алеветдинов — MyBook.
image

Глава 1. Чистая зона

Утро после невозможного пакета началось запахом сменного кофе: чистая зона прогнала его через фильтр до вкуса мокрой бумаги. Майя сидела на посту приёмки в третьем слое перчаток, смотрела через стекло на партию «Мост-0». Восемь кассет стояли под синей WORM-полосой, роботы зависли над линией в санитарном отступе. Смена проходила мимо стекла осторожнее обычного. Ночная блокировка ушла в журнал, но центр ещё не решил, считать её спасением либо ошибкой оператора.

На верхнем экране висел статус КН-0/12. Ручное старшинство witness, автор Ремезова М. С., основание: пакет вне разрешённого маршрута. Система предлагала слово «аномалия», начальник смены в сообщениях просил «ложноположительное», Майя не принимала ни одно. В закрытом ядре лежала её фраза для отца; такая же фраза оказалась на марсианском плече. Холодная ветка не имела канала к демонстрационному пакету, значит, этот текст не мог попасть сюда обычным путём. Дороги не было, событие пришло, партия несла риск без удобного имени.

Майя открыла материальный журнал. Кривая плотности лежала равномерно, без мелких неровностей, которые всегда оставались у новой сопряжённой материи после выращивания. Это ломало норму: новая партия никогда не выглядит как готовая страница отчёта. Климатический профиль повторил ту же гладкость. После ночной остановки роботов микрозона должна была на несколько секунд поменять давление, но ступеньки в записи не было. Чиповый след «Кворум-Н» дал третью странность: рядом с пакетом стоял пустой witness-tail, внешний спорный слот был зарезервирован, старшинство не назначено.

Она собрала окна на один экран. На одном экране совпали: материя потеряла след роста, климат — память остановки, чип держал чужое место, маршрут кассеты обходил входящий канал. Каждый слой по отдельности выглядел штатно. Вместе они давали невозможную картину: событие есть, дороги нет, журналы готовы объяснить отсутствие дороги. Система вывела строку раньше её ввода: «Согласованность контуров не подтверждает безопасность, а маскирует отсутствие пути». Майя удалила формулировку, сырой снимок оставила, рядом поставила ручную метку: «служебный текст до ввода».

У шлюза чистой зоны собрались раньше официальной повестки. Начальник смены Зуев стоял у красной линии допуска в прозрачном халате, на шее висела планшетка с графиком приёмки. Синяя WORM-полоса на стекле отсекала партию от движения, комиссию от демонстрации, смену от премии за закрытое окно. В лице Зуева не было злобы — только усталость человека, который знал цену каждой остановки: переработки смены, сдвиг окна комиссии, чужие подписи под его решением.

— Ремезова, снимай удержание. Первичный сбой локализован, дальний канал не подтверждён, партия физически чистая.

— Физическая чистота не равна причинной чистоте.

— Комиссия через шесть часов. Пакет мог зеркалироваться через тестовый буфер.

— Буфер отключён аппаратно. Я закрывала его ключом.

— Ты держишь восемь кассет на основании семейного текста.

— Я держу восемь кассет на основании отсутствующего маршрута.

— У железа бывают ошибки.

— У ошибки бывает носитель. Где он?

Зуев отвёл взгляд к планшету. На его экране светился шаблон дисциплинарной записки: нарушение графика приёмки вследствие необоснованной WORM-блокировки. Майя проверила время создания. Документ появился на двадцать семь минут раньше разговора у шлюза. Зуев ещё не требовал снять удержание, Майя ещё не отказала, а отказ уже стоял в тексте. Она сняла копию экрана, вывела рядом отметку входа Зуева. Две записи легли рядом как сухие свидетели.

— Твоя дисциплинарная форма создана до разговора.

— Шаблон создаётся при любой блокировке.

— Не с моим отказом в тексте.

Зуев посмотрел на экран, лицо стало неподвижным. На секунду он перестал быть начальником смены, стал технарём перед лишней строкой в собственном инструменте. График вернулся на место, вместе с ним вернулась ответственность за людей за стеклом.

— Даже если шаблон собран криво, это не основание держать серию.

— После снятия WORM-метки хвост станет версией. Сейчас он улика.

— Ты хочешь сорвать нулевую серию?

— Я хочу, чтобы нулевая серия знала, откуда пришёл первый пакет.

За стеклом пятый манипулятор сделал микродвижение в разрешённом контуре самодиагностики. Кассета под ним сдвинулась на долю миллиметра, на климатическом графике появилась короткая ступенька. Это было нормальное поведение системы: действие оставило след. Ночная запись выглядела подозрительнее. Роботы тогда тоже останавливались, но климатический журнал не сохранил такого отпечатка. Зуев запросил полный профиль, получил отказ зоны под WORM-удержанием и принял гостевой просмотр от Майи. Он не поверил ей полностью, но перестал давить одним графиком.

Со стороны административного коридора подошёл Карцов. Он шёл без спешки, в сером халате поверх костюма, пропуск держал на внутренней стороне запястья. Майя знала эту походку по десяткам разборов. Карцов никогда не бежал к аварии; сначала он требовал точной формулировки, потом решения. При нём люди выпрямлялись от желания говорить точнее.

— Павел Андреевич, у нас блокировка на личном пакете. Ремезова держит серию.

Карцов посмотрел на WORM-полосу над линией. Перевёл взгляд на экран с климатом, где новая ступенька от робота легла рядом с ночной пустотой. Он не перебил, не потребовал снять метку. Майя почувствовала облегчение, но удержала его внутри. Помощь Карцова ещё не объясняла, почему он так быстро понял, куда смотреть.

— Покажи сырой лог.

— Здесь?

— В кабинете приёмки. У шлюза вы оба будете защищать роли, не данные.

Кабинет приёмки отделялся от линии другим воздухом, пах пластиком архивных кассет, старым озоном от принтеров пломб. На стене висело правило доверенной серии: «Не доказывай исправность тем же слоем, где возник сбой». Карцов сел сбоку от Майи, не за начальственное место. Зуев остался у двери. Майя вывела сырой лог КН-0/12, сырой снимок марсианского подтверждения, ночную кривую климата, чиповый хвост с резервом внешнего слота.

— Семейный текст уберём из первичной формулировки. Не из журнала, из формулировки. Комиссия не должна получить повод назвать это эмоциональным шумом.

— Это мой пакет.

— Тем более. Личный слой надо защитить от удобного списания.

Майя кивнула. Совет был точный, но неприятный. Убрать отца из первого языка расследования значило самой отрезать боль ради доказуемости. Карцов всегда умел помогать так, что помощь требовала внутренней платы.

— Как назвать?

— Не чужой сигнал. Не копия. Не утечка. Эти слова тянут нас к каналу, а канала нет. Назови материальным паразитным откликом.

Карцов указал на окна лога. Материя отозвалась на пакет вне маршрута. Чип зарезервировал спорный слот. Климат не подтвердил ночную остановку. Путь оставался пустым. Термин звучал тяжело, зато удерживал главное: речь шла о следе в материалах партии. Майя записала формулировку в черновик, но не отправила. Ей захотелось принять термин сразу, такая скорость доверия насторожила сильнее, чем спор с Зуевым.

Майя открыла будущую дисциплинарную форму, показала время создания. Карцов попросил вывести рядом голосовую запись с поста приёмки. Там была удалённая строка, где система предложила её будущую фразу про согласованность слоёв. На одном экране совпали: отчётная формулировка появилась до её ввода, дисциплинарная форма появилась до спора, оба текста знали будущие действия людей. Проблема выходила за пределы Майиного сообщения и одного окна.

— Два служебных текста раньше факта. Отчёт раньше решения. Дисциплинарка раньше спора.

— Не называй это предвосхищением в общем канале.

— А как?

— Несоответствие времени создания служебного текста факту пользовательского ввода. Сухо, некрасиво, пригодно для проверки.

Карцов протянул раскрытую ладонь к аппаратному ключу Майи. Она положила ключ на стол, пальцы задержались на ребре корпуса. Наставник не торопил, в этом было прежнее доверие.

— Мне нужен сырой лог до WORM-упаковки. Без выгрузки в общий архив.

— Зачем?

— Проверю, не повторилась ли старая ошибка синхронизации у HELIO-WORM.

Слово «повторилась» прозвучало буднично, но в нём оказался лишний вес. Так говорят о дефекте, который видели. В официальной сводке такого дефекта не было. Майя проходила допуск по HELIO-WORM 3.0, там не упоминали ошибок, способных писать служебный текст до ввода. Значит, Карцов либо знал закрытый риск, либо называл ошибкой то, что не хотел обсуждать при Зуеве.

— Какая старая ошибка?

— Та, которую пока нельзя доказывать вслух без сырого лога.

Зуев резко выпрямился. После этих слов даже график на его планшете потерял власть.

— Павел Андреевич, если речь про известный риск, смена должна знать.

— Смена узнает проверяемую часть. Паника без носителя не станет безопасностью.

Майя смотрела на Карцова, пытаясь отделить помощь от контроля. Наставник всегда говорил точнее других; теперь именно эта точность требовала отдельного свидетельства. Он сохранил WORM-метку, дал термин, защитил отца от списания, но просил самый ранний слой записи, где журнал ещё не стал официальным. В обычной аварии это был бы правильный шаг наставника. Здесь каждое правильное действие требовало отдельной проверки, потому что система дважды писала человеческие решения раньше людей.

Она создала копию сырого лога на одноразовую кассету, поставила ограничение чтения, добавила собственную WORM-метку на факт передачи. Карцов заметил это, кивнул без улыбки.

— Правильно. Доверие без следа годится для семейных разговоров.

— Семейный разговор стал следом.

— Тогда не отдавай его никому без метки.

Он забрал кассету двумя пальцами за стерильный край. Зуев ждал финального решения у двери. Майя вернулась к протоколу, внесла термин Карцова, оставила удержание партии, добавила требование на сырые климатические данные по ночной остановке. Интерфейс подставил итоговую формулировку: «Инженер Ремезова своевременно выявила начало причинного расхождения». Майя остановилась на слове «начало». Система не могла знать, начало это или след более старого процесса. Она удалила всю фразу.

Вместо неё Майя написала: «Партия удержана. Причина события не установлена. Приоритет: сохранить спорные строки до разбора старшинства witness». WORM-протокол принял запись без украшения, но внизу мигнул служебный хвост: «Итерация 0: принято». Майя не стала увеличивать запись сразу. Она посмотрела на Карцова. Он смотрел на тот же участок экрана. Заметил хвост раньше её вопроса либо ждал его появления.

— Вы видели это раньше.

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

— Я видел, как хорошие журналы делают людей уверенными раньше, чем люди успевают стать правыми.

— Это ответ?

— Это повод не снимать метку.

Зуев отправил смене новый статус: партия удержана до разбора. В его голосе не было прежней уверенности — только злость на график, на Майю, на систему, которая заранее написала его дисциплинарный текст. Майя принимала эту злость как часть цены. Если она ошиблась, люди запомнят остановку как её страх. Если не ошиблась, им придётся платить за её решение.

Когда Карцов ушёл с сырой кассетой, кабинет приёмки стал теснее. Майя закрыла черновик письма отцу, не отправив ни слова. Быстрая связь подарила им мгновение без расстояния, а утро вернуло паузу в виде WORM-метки, остановленной партии, чужой злости, наставника с закрытым футляром. Она оставила ладонь на считывателе до второго подтверждения удержания, чтобы чистая зона знала: решение принято человеком, не готовой строкой журнала.

...
6