| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
| sharixopen:knowledge:operations:deploy [2026/11/01 21:10] – [sharixknowledge] approved package sx_knowledge_api_open | sharixopen:knowledge:operations:deploy [2026/11/02 05:51] (текущий) – [sharixknowledge] approved package sx_knowledge_api_open |
|---|
| "prepared_on": "2026-11-02", | "prepared_on": "2026-11-02", |
| "patch_sha256": "ca6e6c2bde9351132d8d780e1de786dcfb7e628b8f04dae61fdc63da38d0bb00", | "patch_sha256": "ca6e6c2bde9351132d8d780e1de786dcfb7e628b8f04dae61fdc63da38d0bb00", |
| "state": "prepared_locally_tested", | "state": "published_root_7003755", |
| "native_alt_runtime_verified": false | "native_alt_runtime_verified": false |
| | }, |
| | "subscription_lock_fix": { |
| | "date": "2026-11-02", |
| | "state": "prepared_locally_tested", |
| | "payments_base": "8173a87419e9b5ea0dba6f3ec19c08d062c09a59", |
| | "patch_sha256": "b9a5cbf7670068f3f5594bb4c2e100b460784317296b0d083d4ed3534c63189c", |
| | "database_evidence": "PostgreSQL 17.11, Django 5.2.18, 19 seed scenarios plus two-session category locking", |
| | "native_ALT_host_verified": false |
| | }, |
| | "acceptance_identity_fix": { |
| | "date": "2026-11-02", |
| | "owner_basis": "SYSTEMD_SERVICE_NAME is configurable; do not require opensharix", |
| | "state": "prepared_locally_tested", |
| | "root_base": "7003755b8c4dd5fb4e2988e4ee63e2d222e37d2b", |
| | "patch_sha256": "2077ca23fbe54c5e38e9055f18a955bffd525ca4fcf7d2ab29579352d1cfbce2", |
| | "host_ordinary_install_restart": "passed in owner log", |
| | "full_host_acceptance_passed": false |
| } | } |
| } | } |
| }, | }, |
| "content_sha256": "eb76f8c007a1ca21c5f780c20778d232913336d892422454d3145d666d64686d", | "content_sha256": "266a1cc1f000b2667da4c8212ab1292348b62bda661eed845b904320c7ee78f3", |
| "schema": 1 | "schema": 1 |
| } | } |
| |
| ===== Установка, Demo-набор и необязательный онбординг: уточнение 01.11.2026 ===== | ===== Установка, Demo-набор и необязательный онбординг: уточнение 01.11.2026 ===== |
| **Согласованное уточнение владельца. Предыдущий подготовленный патч с исключением полного Demo из установки не применён и отозван. Корневой код нового порядка опубликован в 9e77ad2; полная серверная приёмка не завершена. Ошибка default payment_method воспроизведена и исправлена в отдельном подготовленном patch, см. уточнение 02.11.2026 ниже.** | **Согласованное уточнение владельца. Предыдущий подготовленный патч с исключением полного Demo из установки не применён и отозван. Корневой код нового порядка опубликован в 9e77ad2; полная серверная приёмка не завершена. Исправление default payment_method опубликовано в root 7003755; по последнему логу владельца ordinary installation, activate и restart прошли. Оставшийся отказ находится в отдельной acceptance-проверке namespace; дополнительный fix подготовлен, см. уточнения 02.11.2026 ниже.** |
| |
| * При новой установке ShariX Open с ''METASERVICE_ID=0'' полный Demo-набор разворачивается обязательно. Его связи, порядок создания объектов и проверки должны быть валидными с действующими моделями и эксплуатационными defaults. | * При новой установке ShariX Open с ''METASERVICE_ID=0'' полный Demo-набор разворачивается обязательно. Его связи, порядок создания объектов и проверки должны быть валидными с действующими моделями и эксплуатационными defaults. |
| |
| ===== Default payment_method до валидации: исправление 02.11.2026 ===== | ===== Default payment_method до валидации: исправление 02.11.2026 ===== |
| **Статус:** дефект воспроизведён на опубликованном root 9e77ad2 по traceback владельца. Исправление подготовлено локально; его публикация, применение и native ALT/runtime-приёмка ещё не подтверждены. | **Статус:** дефект воспроизведён на root 9e77ad2, исправление опубликовано в [[https://git.sharix-app.org/ShariX_Open/sharix-open-webapp-base/src/commit/7003755b8c4dd5fb4e2988e4ee63e2d222e37d2b|7003755]]. Следующий traceback владельца проходит создание Метасервиса и останавливается позднее в payments; полная host-приёмка ещё не завершена. |
| |
| ''PAYMENT_PROCESSING_MODE'' остаётся источником истины для оплаты. ''Metaservice.payment_method'' — исторический integer snapshot; ''save()'' уже получает его через shared ''get_legacy_payment_method_code()''. Callable default до сохранения ошибочно читал устаревший ''PAYMENT_METHOD''. При отсутствии этого env-параметра новый объект имел NULL, и ''full_clean()'' останавливал seed до ''save()''. | ''PAYMENT_PROCESSING_MODE'' остаётся источником истины для оплаты. ''Metaservice.payment_method'' — исторический integer snapshot; ''save()'' уже получает его через shared ''get_legacy_payment_method_code()''. Callable default до сохранения ошибочно читал устаревший ''PAYMENT_METHOD''. При отсутствии этого env-параметра новый объект имел NULL, и ''full_clean()'' останавливал seed до ''save()''. |
| |
| Применение: обычный root patch сначала проверяется и публикуется owning repository с основного ShariX Open. CS получает опубликованный root через ''repositories.sh pull --repo .'', затем root повторяет ''./bin/install.sh initial --strict'' с сохранением исправных настроек служб и завершением этапа 2. Не пересоздавать БД/LDAP/venv, не удалять checkpoints и не выполнять Demo reset из-за этой ошибки. Обычные обновления продолжают использовать deploy/restart/acceptance. Shared/optional код этим дополнительным fix не меняется; Platform не получает Open root patch. | Применение: обычный root patch сначала проверяется и публикуется owning repository с основного ShariX Open. CS получает опубликованный root через ''repositories.sh pull --repo .'', затем root повторяет ''./bin/install.sh initial --strict'' с сохранением исправных настроек служб и завершением этапа 2. Не пересоздавать БД/LDAP/venv, не удалять checkpoints и не выполнять Demo reset из-за этой ошибки. Обычные обновления продолжают использовать deploy/restart/acceptance. Shared/optional код этим дополнительным fix не меняется; Platform не получает Open root patch. |
| | |
| | |
| | ===== PostgreSQL и блокировка подписочной категории: 02.11.2026 ===== |
| | **Статус:** по следующему traceback владельца воспроизведён ''FOR UPDATE cannot be applied to the nullable side of an outer join''. Дополнительный patch payments подготовлен и локально проверен; Git-публикация и серверная приёмка этого fix ещё не выполнены. |
| | |
| | ''enable_subscription_category()'' загружает nullable ''subscription_service'' через select_related и одновременно запрашивал блокировку всех таблиц join. Такой SQL PostgreSQL отвергает. Та же ошибка есть в ''disable_subscription_category()'', в том числе когда связь уже заполнена: join остаётся outer по схеме поля. |
| | |
| | Подготовленный fix явно задаёт ''select_for_update(of=("self",))'' в обеих операциях. Блокируется строка категории, которая сериализует её настройку/привязку; transaction.atomic, проверки доступа и доменные ограничения сохраняются. Не нужно менять isolation level, отключать подписки или обнулять requirements. Это общий payments service для Demo и обычной настройки. Контракт: [[https://docs.djangoproject.com/en/5.2/ref/models/querysets/#select-for-update|Django 5.2]], [[https://www.postgresql.org/docs/17/sql-select.html#SQL-FOR-UPDATE-SHARE|PostgreSQL row locks]]. |
| | |
| | База payments — [[https://git.sharix-app.org/ShariX_Open/sharix-open-payments/src/commit/8173a87419e9b5ea0dba6f3ec19c08d062c09a59|8173a87]], проверенный root — 7003755. Меняются только service и README payments. После публикации с основного ShariX Open потребители получают общий код через repositories.sh; незавершённая CS initial продолжается с сохранением исправных служб и checkpoints. Shared payments также получает Platform. Миграций, env, переводов и зависимостей в fix нет. |
| | |
| | Раньше seed проверялся на SQLite, которая это ограничение не выявляет. Для нового fix поднят отдельный локальный PostgreSQL 17.11 с psycopg2 2.9.10 и Django 5.2.18. Старый SQL воспроизвёл именно присланную ошибку. После fix прошли 19 native PostgreSQL вариантов полного core seed и повтора: payment modes, отсутствующий/NULL/устаревший legacy payment input, strict defaults, optional contributions, положительный namespace, operator edits, отключённая подписка, collision и post-audit rollback. |
| | |
| | Дополнительно проверены обычное включение/изменение цены/повторное включение с сохранением ID, отключение NULL-связи, отказ гостю и настоящий конфликт row lock со второй сессией NOWAIT. После commit та же строка доступна второй сессии. Повторный Demo seed сохранил ручные изменения. Проверка повторена на чистой копии после применения поставляемого patch без fuzz; compileall и diff checks пройдены. Временный PostgreSQL остановлен. |
| | |
| | Это real-model test schema с обычными auth migrations, изолированными settings/AppConfig и transport; полный migration graph, GIS-запросы/PostGIS, native ALT packages, LDAP/XMPP/systemd/ACL, browser и production assembly startup локально не воспроизведены. Эти границы остаются отдельной host-приёмкой; source/provenance/permissions/runtime guards не ослаблены. |
| | |
| | |
| | ===== Acceptance и настраиваемый SYSTEMD_SERVICE_NAME: 02.11.2026 ===== |
| | **Уточнение владельца:** имя сервиса является настраиваемым параметром. Проверки не должны требовать конкретный namespace из примера. Источник — фактический ''SYSTEMD_SERVICE_NAME'' этой установки; ''opensharix'' не является обязательным именем каждого сервера. |
| | |
| | В новом логе CS ordinary installation, root activate и deploy restart завершились; main и configured handler modes проверены. Nginx отдал HTML/CSS. Один upstream HTTP timeout корректно оставлен advisory WARNING. Далее runtime acceptance прошла до handler-health unittest и остановилась exit=1 без сообщения. Полная установка ещё не объявляется принятой. |
| | |
| | Следующий по порядку ''runtime_identity_direct_source.sh'' содержал literal ожидания opensharix. Он правильно получал configured start из .env, затем сравнивал с чужим фиксированным именем и молча отказывал. Дефект воспроизведён на изолированной установке start. Также воспроизведены ложные отказы двух соседних synthetic runtime guards при унаследованном shell SYSTEMD_SERVICE_NAME. |
| | |
| | Подготовленный root patch из пяти файлов переносит direct-source проверку на временные копии текущего helper и собственные конфиги с разными namespace. Live .env не читается/не переписывается этой fixture. В S.4/Stage 19.5 fixtures унаследованный namespace очищается только внутри тестов их собственных установок; production helpers не меняются. Duplicate/invalid/foreign identity и чужие units остаются fail-visible. Wrapper acceptance сохраняет исходный exit code и печатает раздел/строку без командных аргументов/секретных env-значений; Stage 19.2 использует выбранный PYTHON. |
| | |
| | Локально прошли configurable-name cases, проверка неизменности конфигов, отрицательная проверка с намеренно сломанным resolver, шесть вариантов соседних guards (unset/start/foreign), 54 installer contracts и 16 optional acceptance tests. На чистой базе patch применён без fuzz; целевой guard и wrapper-flow harness повторены. Harness подменяет остальные guards и проверяет orchestration/сохранение exit=17; он не является полной assembled/runtime-приёмкой. |
| | |
| | После reviewed Git-публикации root на основном ShariX Open CS получает его через repositories.sh pull --repo . и под deploy повторяет только ./bin/check_acceptance.sh --with-runtime-audit. Для изменения проверок не нужны повторные initial/deploy/migrations/seed/restart/activate, перенастройка служб или смена start на opensharix. Shared код/Platform root этим patch не меняются; выключенные optional modules не включаются ради приёмки. |
| | |
| | Прежний initial checkpoint после ошибки acceptance сам не стал complete. Отдельная команда приёмки его не изменяет; не редактировать и не удалять checkpoint вручную. Это исправление checks не добавляет режим завершения initial. Итоговый host/runtime acceptance и браузерный вход подтверждаются отдельно после получения кода. |
| |
| ~~NOCACHE~~ | ~~NOCACHE~~ |