Repository navigation
Prepare free SignPath code signing for Windows releases - #1
Merged
Merged
Conversation
Подготовлена бесплатная подпись собственных выпусков AMSignal через SignPath Foundation. Подключение сервиса и фактическая подпись остаются зависимыми от одобрения проекта и ручного разрешения каждого запроса владельцем. Добавлены Windows VERSIONINFO для GUI и CLI, единые имя продукта и текстовая версия, проверенные числовые компоненты и исходные имена EXE. Обе PowerShell- сборки и Windows Make включают эти ресурсы; Linux-сборка не требует windres. Новый ручной workflow проверяет release tag из main, собирает и тестирует код на GitHub-hosted Windows, загружает неизменяемый артефакт и передаёт его ID в SignPath. Внешние Actions закреплены по SHA, права записи выдаются только созданию черновика выпуска, ключ подписи не размещается в репозитории. После подписи проверяются доверие Windows, издатель SignPath Foundation, временная метка, версии и совпадение сертификата GUI/CLI. Упаковка принимает проверенные EXE из отдельного каталога, считает SHA-256 по итоговым байтам, сохраняет документы/политику и не перезаписывает существующие архивы и выпуски. Добавлены ограничивающая XML-конфигурация, честная политика с текущим pending- статусом, инструкция активации и готовая неотправленная заявка. Обновлены три README, AGENTS.md и карта архитектуры. Численный код и GUI-поведение не менялись. Проверка: обе штатные PowerShell-сборки, 25 проверок метаданных/упаковки/ контрольных сумм, разбор PowerShell AST и XML, actionlint, запуск CLI FFT N=4096. Положительная криптографическая проверка SignPath требует одобрения и доступа к сервису; самоподписанный сертификат для имитации результата не создавался.
almuleev
marked this pull request as ready for review
October 14, 2026 15:40
almuleev
added a commit
that referenced
this pull request
Oct 14, 2026
Зафиксирована отправка заявки AMSignal в бесплатную программу SignPath Foundation 14 октября 2026 года в 18:40 MSK после прямого разрешения владельца проекта. Официальная форма подтвердила получение сообщением Form submitted. Контакт владельца — Aleksandr Muleev, al.muleev@gmail.com; условия программы и обработка контактных данных согласованы, рекламная рассылка выключена. Документация связывает заявку с применённым PR #1 и успешными проверками Windows/Linux. Данные аудитории указаны без преувеличения: 50 релизов, 75 скачиваний артефактов, 0 звёзд и форков. Обновлены статус заявки, политика подписи, AGENTS.md и карта архитектуры. Одобрение проекта и сертификат ещё ожидаются; существующие EXE не объявляются подписанными. Численный код и скрипты после успешных сборок не изменены. Проверка чистоты diff успешна.
almuleev
added a commit
that referenced
this pull request
Oct 14, 2026
Зафиксированы накопленные изменения после v0.17.0-rc.3. Версия 0.17.1 сохраняет прежнюю методику FFT/H1/coherence, исходные отсчёты и независимую от масштаба общую область анализа. Фильтр, память и численный вход: - Крупный фильтрованный Signal обрабатывается фоновым OverviewWorker вместо повторного полного расчёта внутри paint/zoom. Внутри графика показаны применение фильтра, подготовка и прогресс. - share_resident_recording передаёт исходные время и каналы общему immutable RecordingSource без полной копии. В Dataset остаются только две seed-строки; численный вход использует полные оригиналы и recording_rows. - file_backed отделён от resident_backed. FFT/FRF используют RAM при достаточном допуске независимо от renderer; при нехватке памяти сохраняется точный файловый/дисковый путь. - MemoryBudget::transfer_resident и RAII учитывают уже выделенные массивы один раз. Auto не уменьшает доступный бюджет повторно при перемещении исходника; активный worker удерживает владельца до завершения. - При демоции очищаются idle recipe/overview, завершённый Spectrum перестаёт удерживать полные оригиналы; отменённый активный запрос сохраняет корректное владение и проверку stamp. - Точные biquad, prev_time и have_segment сохраняются в FSTATE01 (.filter) с identity файла/рецепта/каналов/Fs, checksum и проверкой размеров/времени. Общий LRU 2 GiB/256 элементов, до 2 MiB и 512 продолжений на рецепт; replay отдельно допускает рабочие состояния. - Повреждённый или недоступный необязательный кэш вызывает точный прогрев префикса. Cancelled/SourceChanged не скрываются. Разрывы, NaN/Inf, порядок каналов и прежний Fs сохраняются. - Отрисовка обзорных линий/экстремумов пакетная через GDI без изменения пиксельных диапазонов и правил разрывов. Исправление test1: - scan_time_bounds сохраняет точные границы, не округляя |t| < 1e-12 к нулю. Первый отсчёт -6.9388939039072284e-18 больше не выпадает из discovery. - Устранены несовпадение ScanIndex/Dataset, отказ from_resident и InvalidRequest полного фильтрованного viewport («Не удалось прочитать обзор»). - Новый ключ scan-amscidx1-parser2-exact-bounds перестраивает старые индексы. Проверены оба конца около нуля, весь микродиапазон и повторное открытие с индексом. Интерфейс и управление: - Уведомление «Вычисление спектра…» и сообщения ошибки выставляют TA_LEFT|TA_TOP после осей; SaveDC/RestoreDC предотвращают обрезание текста. - Общий курсор точек/маркеров/линий: компактный прицел 17×17, чёрная сердцевина, белая обводка, центральный hotspot и освобождение Win32 handle. - Shift-выделение Signal работает в режиме точек и при блокировке разметки; приоритет над обычными точками/таймлайном, сохранено поведение явно вооружённых инструментов. - Красный таймлайн можно выделять, перемещать, удалять или скрывать через Escape/ПКМ/меню. Пауза отличается от сброса; после EOF воспроизведение возвращается к началу. Потеря capture/отмена восстанавливает позицию; транспорт не меняет численную область. - Ctrl+Shift+S отображается полностью: ширина подписи измеряется текущим шрифтом вместо фиксированных 80 px; отступы команды/сочетания/стрелки согласованы. - «Склеивать участки записи» перенесено в «Каналы» и принадлежит документу. Старый глобальный INI-ключ удаляется при сохранении; проекты сохраняют локальное значение. - Диалог «Анализ → Участок анализа» использует общие тематические поля/кнопки, двухстрочную компоновку, измеренные подписи и корректный клиентский размер. Очистка кода: - Удалены невызываемые SpectrumWorker::submit_source/Prepare, всегда истинная проверка поддержки overview, недостижимое предупреждение о склейке, export_helpers/draw_text и четыре поля переводов. - start_async_load_task принимает только путь; source_preview остаётся для seed-публикации. Реальные диапазонные reader API, CLI, callbacks и ресурсное владение сохранены. - Удалён устаревший совет использовать Light Mode при отказе resident-бюджета. Бесплатная подпись Windows: - Добавлены одинаковые VERSIONINFO GUI/CLI, AM_version.rc и безопасная генерация ресурсов PowerShell/Make. - Workflow SignPath строит проверенный тег из main на GitHub-hosted Windows, использует закреплённые SHA Actions, ограниченный доступ и два собственных EXE. - Требуются ручное одобрение SignPath, Valid Authenticode, издатель Foundation, timestamp, одинаковый сертификат и версии. ZIP/SHA-256 считаются после подписи; старые releases не перезаписываются, новый создаётся draft. - PR #1 с инфраструктурой применён, заявка отправлена 14.10.2026 с разрешения владельца. Одобрение фонда/сертификат ещё ожидаются; существующие EXE не объявляются подписанными. Документация и архив: - Обновлены AGENTS.md, ARCHITECTURE.md, CHANGELOG и двуязычное описание версии. - Выполнена внешняя инвентаризация материалов. 22 старых отчёта, пять материалов 20 GB и описание rc.2 перенесены в архив; SHA-256 сохранён. Внешние материалы не входят в Git-коммит. - Текущий приоритет остаётся до 10 GB; задачи/генерация/новые испытания 20 GB не возобновлялись. Стенды и исходные записи сохранены. - Руководство MD/DOCX и смешанный исторический LARGE_RECORDINGS_PLAN ещё требуют документальной актуализации; старые сравнительные таблицы не описывают нынешний EXE. Проверки и измеренные границы: - Последний полный набор: 1262 проверки ядра и 1026 GUI, ошибок нет. Проверены FFT/FRF, рецепты/состояния фильтра, ресурсы, отмена, демоция и взаимодействия. - Реальный test1: 49 938 563 байта, N=337132, C=8; полосовой Баттерворт 0–16/5–16/16–200 Гц в RAM и 100–1000 Гц через дисковый replay. Полный обзор и три перехода без ошибок; для RAM 5–16/16–200 все значения точно совпали с filter_signal. - Реальный test2: 1 024 104 009 байт, N=6832000, C=8. Холодный обзор 47,932 → 4,106 с; первая навигация после перезапуска 19,799 → 0,415 с. Это время готовности, а не только реакция UI. - Полный обработанный FFT и FRF семи откликов совпали с resident контролем; Manual 64 MiB/commit cap 128 MiB: 29 source-opening проверок и полный disk FFT, Peak WS 24,531 MiB. - Инфраструктура подписи: 25 проверок метаданных/отказа unsigned/путей/ZIP/SHA-256; Windows/Linux CI PR #1 успешен. Настоящая подпись ещё не проверена из-за отсутствия доступа. - Полные штатные CLI/GUI сборки выполнены; после нового тега метаданные и приложения собираются для v0.17.1. - Сравнение 0.16.1: 132 численных процесса, 17 933 600 значений побитово равны для тогдашнего снимка. Последующее исправление фильтра не перемерено парно с 0.16.1/0.16.7/FAMOS. Не заявляется универсальное ускорение, новый тест 10 GB или физический ПК 8 GiB.
almuleev
added a commit
that referenced
this pull request
Oct 14, 2026
Объединена история main с уже применённым PR #1 и коммитом подтверждённой заявки SignPath. Полный состав изменений версии описан в предшествующем коммите ebb50ca и docs/releases/v0.17.1.md. Разрешены только конфликты карты документации AGENTS.md и ARCHITECTURE.md: сохранены все накопленные описания версии, фильтра, интерфейса, test1 и архива. Итоговое дерево полностью совпадает с проверенным ebb50ca (1012954); программный код при объединении не изменился. Коммит сохраняет историю ранее опубликованной инфраструктуры подписи и отправленной заявки. Сертификат и подписанные EXE ещё не получены. Внешние отчёты и стенды не включены в Git.
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.
Скачанные EXE AMSignal пока не имеют доверенной подписи издателя. Добавлена
интеграция бесплатной программы SignPath Foundation для будущих выпусков GUI
и CLI. Фактическая подпись требует принятия проекта сервисом, подключения
учётной записи и ручного одобрения владельцем; существующие файлы не объявляются
подписанными и не перезаписываются.
запускает регрессии и передаёт неизменяемый артефакт в SignPath. Actions
закреплены по SHA; подпись требует ручного одобрения.
метку, версии и единый сертификат двух EXE. Контрольные суммы считаются после
подписи; результатом является черновик GitHub Release, без замены старого.
инструкция подключения и готовый текст заявки. Никакая платная услуга
не подключена. Численные алгоритмы и поведение приложения не менялись.
Проверено локально: штатные CLI/GUI-сборки, 25 проверок упаковки и метаданных,
PowerShell AST, XML, actionlint, запуск CLI FFT на N=4096. Полная успешная
подпись и получение файла из SignPath пока не проверены: бесплатное подключение
и реальный сертификат ещё не одобрены.
Владелец должен подтвердить контакт заявки и условия программы, подключить
GitHub App/учётную запись SignPath с MFA, задать SIGNPATH_* переменные и submitter
secret, затем одобрить первую подпись. Подробности — docs/CODE_SIGNING.md и
docs/SIGNPATH_APPLICATION.md. Гарантия немедленного исчезновения SmartScreen
не заявляется.