Журнал изменений
Что нового.
Каждое усовершенствование платформы, как только она появится.
· kamo-shared-library
§ 6.1 Зерно правовой стены RON - **************** (замороженный цвет) + CLOSING STEP BLOCKED
Состояние собственности - это замороженная идентичность в пакете закрытия (собственность закрытия делает это). не перемещаться) и является зерном, согласно §6.1 RON, правовой стеной, имеющей право на получение статуса. CLOSING STEP BLOCKED Это прочный сигнал, на который реагирует очередь исключения замыкающего стюарда, когда RON обнесен стеной.
· kamo-shared-library
CLOSING MERS SUBMITTED event key (doc 05 §6.3)
Сигнал MERS: к кредиту была добавлена регистрация MersRegistration **************** (только приложение), Мин никогда не переписывается. Добавочный открытый струнный ключ (без DDL).
· SecurityService
Добавить kamp-apps, VectorService, kamolos, kamo-signer-monorepo в публичный Changelog
· kamo-shared-library
CLOSING STEP RETRIED event key (doc 05 §6.4)
Сигнал о восстановлении стюарда: пакет BLOCKED STEWARD был разблокирован, а новый узел PENDING материализовался. Восстановленная подсистема. Добавочный открытый струнный ключ (без DDL).
· kamo-shared-library
CLOSING STEP FAILED event key (doc 05 §6.4)
Сигнал неисправности приводного цикла: закрывающий шаг FAILED/BLOCKED, пакет удерживается BLOCKED STEWARD; Реагирует очередь за исключением стюардов. Добавочный открытый струнный ключ (без DDL).
· kamo-shared-library
CLOSING STEP COMPLETED + CLOSING PACKAGE COMPLETED event keys (doc 05 §6.4)
Сигналы привода: ClosingArtifact достиг COMPLETED (следующий адаптер), и все необходимые шаги выполнены. (инвестор-поставка/обслуживание-пансион). Аддитивные открытые струнные ключи (без DDL).
· InitializerService
Безопасный уникальный индекс для версий ClosingWorkflowTemplate (doc 05 §6.3)
Одна версия на зерно (organization id, scope level, scope ref id). CRDB отличается от NULLs, поэтому разделен на nullable scope ref id (mirrors mlos aiptp *): mlos closing wft version uniq (scope ref id IS NOT NULL) + **************** (org, scope level, version) (scope ref id IS NULL). The Бэкстоп MLOSDocOrchestration издательства read-then-write (версияNumber=max+1): одновременная dup-версия Опубликовать проигрыш в 409 (кроме ассемблера 409s на dup, кирпичной сборке).
· kamo-shared-library
**************** ключ к событию (док 05 §6.3)
Прочный сигнал, издаваемый издателем шаблонов док-оркестрации, издается в новой версии ClosingWorkflowTemplate. Добавочный открытый струнный ключ (без DDL).
· kamo-shared-library
CLOSING PACKAGE ASSEMBLED event key (doc 05 eClose)
Прочный сигнал, излучаемый сборщиком док-оркестрации при создании пакета закрытия из разрешенного ClosingWorkflowTemplate + первый узел артефактов. Добавочный открытый струнный ключ (без DDL).
· kamo-internal
Удалить сцену «Publish to World»; исправить Run All
Генераторы теперь пишут плитки непосредственно на обслуживающий диск, поэтому мирген Трубопровод больше не имеет стадии публикации/толчка. - worldgenNats.ts + universe/types.ts: drop 'push from WorldgenStageId, WORLDGEN STAGES and STAGE ORDER (трубопровод = *******************) - components.tsx: удалить push STAGE META entry + неиспользованный CloudUploadIcon. - сервисы/[стадия]/старт: примите «все» в качестве командной цели, чтобы «Бегите все» работал (расширяется до преп->гидро->флора->транспорт на агенте) вместо 400.
· kamo-shared-library
PULL THROUGH POLICY PUBLISHED event key + null-safe AiPTP backstop doc (doc 09 §8)
Добавляет канонический ******************* ключ событийного типа (долгосрочный сигнал Pull-Through) Двигатель перезагружает свою активную политику на) для управляющего самолета AiPullThroughPolicy издателя. Обновления The AiPullThroughPolicy WORM javadoc для документирования разделенной одноактивной задней панели (на рынке +) NULLs-distinct-safe org-wide grain) и требуемый автором приказ о раздельном введении.
· kamo-shared-library
LoanIdentifierEvent append-only audit entity (doc 11 §5.3/§10)
LoanIdentifierEvent половина документа 11 §5.3 шага-4 / §10 «аудиторская полнота» (каждый монетный двор / суперседе излучает Серия событий WORM. *************************** КредитоспособностьEventType LoanIdentifierEventRepository: полностью блоковое приложение WORM (AiDecision/Decision) Идиома ввода — все поля updatable=false, @PreUpdate throws, occurredAt=DB dateCreated запись org/loanFileUid/ идентификатор Id (новая строка ACTIVE, мягкий UUID ref)/supersedesIdentifierId (замененный предшествующий, нулевой для мята)/событиеТип ************* + недействительное решение WORM-решение половина (отложенное — реестра AiFunction пока не существует). Soft refs by id only (нет @ManyToOne) Длинные идентификаторы, сериализованные как Струна. Таблица автоматически создает на пробеге KamoInitializer (индексы, объявленные организацией) loan file uid + identifier id; никаких изменений SchemaCleanupRunner. Аддитивная версия — shared-lib без изменений (1.5.0).
· InitializerService
(loan file uid,type) нативный одноактивный частичный уникальный индекс (doc 11 §5.3/§6.2)
Закрывает уже существующую двойную активную дыру в реестре кредитных идентификаторов MLOS: индекс (a) **************** Только ограничения (орг, тип, Ценность) для 10 REGISTRY-NATIVE одноактивные типы, поэтому два активных родных ряда одного и того же (loan file uid, type), но разные значения могут оба совершают (например, перенумеровать гоночный регистрNative с другим значением — различные ключи значения, нет) конфликт). Новый частичный уникальный индекс **************** (loan file uid, type) status='ACTIVE' AND external system reference IS NULL and type IN (10 родных типов) ACTIVE native id per (loan, type) — аналог индекса (c) для зеркал OWNED ELSEWHERE. The тип IN (...) индекс зеркал списка (а); синхронизироваться с **************** (Дрифт §6.2) охрана). Idempotent CREATE ... Если не существует; prod не имеет нарушающих дублирующих активных родных строк (проверенных).
· kamo-shared-library
Добавить IDENTIFIER SUPERSEDED тип события
Добавочный открытый струнный ключ события (doc 11 §5.3/§7.3) для регистрационного перенумерования/суперсессионного сигнала — COMPLIANCE TIMER BREACHED precedent (no enum/schema/KI). Об этом сообщает MLOSIdentifierService.renumber.
· kamo-shared-library
**************** — установите потолок с поддержкой auto execute enabled рядом с порогом стены
Добавлена эффективная автономия (orgId, стадия, пол) → эффективная автономия AutoExecuteEnabled: одна цепная дорожка (профиль → конфигурация → перекрытие сцены), которая возвращает порог доверительной стенки на уровне §6.2 и Auto execute enabled мастер-переключатель (stage-override-aware). Эффективная автономия Порог теперь делегирует ему Единый источник истины. Пусть ворота RCE запирают в честь арендатора, который поворачивает автоматическое выполнение OFF в качестве автоматического действия CEILING независимо от автономии запроса уровень. Пустой, когда нет конфигурации арендатора (каллер использует платформу по умолчанию; запрос) управляет. Аддитивный; затрагивается только закрытая фасоль MlosActivationService. 4 испытания.
· InitializerService
Антидвойной парциальный уникальный индекс для записей блокировки RCE (doc 08 §7.3)
SchemaCleanupRunner добавляет: **************** — частично Индекс UNIQUE на mlos lock record (organization id, loan scenario id) Статус ******************* Максимально один замок с живой ставкой за кредит сценарий: детерминированная поддержка DB на уровне приложений MLOSCapitalMarketsService антидвойная охрана, закрытие гонки TOCTOU (дублированный вариант) Live lock - это молчаливая коррупция соблюдения - в реестре блокировки нет замен id. Idempotent (IF NOT EXISTS); уже применялся для поддержки CRDB.
· KlusterServices
Bootstrap universe-minio secret + ugc bucket note (§14) (недоступная ссылка)
Добавить шаг 6 в bootstrap-universe.sh: создает секрет вселенной-минио (ACCESS KEY/SECRET KEY из универсум-backup-s3 root creds) Ведро Минио должно существовать. Idempotent — пропуски, если секрет Уже присутствует.
· DaemonService
Потребитель MLOS compliance-timer (BLOCKED→STALE)
Потребительская половина петли нарушения комплаенс-таймера (doc 03 §2.8; выпускать половину уже судов). ComplianceTimerBreachConsumer подписывается на ********************** и, в соответствии с нарушенным кредитом, переводит свои BLOCKED кодеры оркестровки в STALE через OrchestrationEscalation Сервис (изменяемый, идемпотентный — уже стабильный/зеленый/полный нетронутым). Добавить **************** то @EnableJpaRepositories; позволяет mlos.outbox (так что эмиссия сметки должна быть записана + передана) и **************** Флаг. 5 единичных испытаний.
· InitializerService
§2.4 Анти-AUS-шоппинг частичный уникальный индекс на mlos aus run
One ACTIVE (non-supersed, non-frozen) AusRun per (loan file uid, source label) - "duplicates look как AUS-шоппинг" (doc 10 §2.4/§2.5). Безопасно приземляться сейчас, когда автор агентства MLOSUnderwritingService Управляет вытесненным ложным перевертышем, прежде чем вставлять новый активный забег. Применяется для поддержки CRDB.
· kamo-shared-library
Persisted par flag на MlosPricedProductResult + OrchestrationStepStatus.STALE
- MlosPricedProductResult gains par flag (булевый, по умолчанию ложный): §8.1-step-5 par cell Лестница периода блокировки строки, замороженная на вставке (запись постоянства только ответного флага). - OrchestrationStepStatus получает STALE: BLOCKED шаг, соблюдение которого SLA таймер нарушил + обострился (установлено потребителем, использующим датчик соответствия требованиям DaemonService; док 03 §2.8). Обе добавки; ddl-auto:update добавляет столбец, а общая подметка enum-CHECK допускает СТАЛЬНОСТЬ. Следующий запуск KamoInitializer.
· kamo-shared-library
RateSheetSanityGate — §6.6 Hard Pre-Publish Sanity Gate (диапазон + монотонный)
Чисто-логический невостребованный @Component (паттерн PriceAssemblyEngine), подтверждающий ставку / цену кандидата Лестница ДО публикации версии тарифного листа (doc 02 §6.6): условно-осознанный диапазон цен [par±20] (par=100 PRICE TO 100/0 POINTS FROM PAR — улавливает грубые ошибки знаков/конвенций), монотонная лестница (цена не снижается по мере повышения ставки по нотам, на одну (lockPeriodDays,ioFlag) лестницу) и структурная хорошо сформированность (непустая / положительная скорость / положительная блокировка / отсутствие дублирующей скорости). Доклады Все нарушения; не закрыты. Повторно используемый будущим приемом пищи кандидат-стадия (берет разъединенный) Рекорд RateSheetLadderCell, а не организация JPA. 2-агентный состязательный обзор → FIX THEN SHIP (1 must-fix application): снято сумасшествие около цены проверка — это ложно отвергнутые законные купонные окна со всеми премиальными / скидками (коэффициент разумности с парой RATE) маркировка, отложенная; полоса уже ограничивает цены до ±20 пар. Также: смягчил знак-конвенцию javadoc (явная проверка соответствия DEFERRED, полоса ловит только грубые ошибки величины), исключен Ячейки с нулевой скоростью от дубликата / монотонного сканирования и пропускают монотонное сравнение на равных скоростях. 18 тестов без DB (TDD). Нет новой сущности, нет запуска KamoInitializer.
· kamo-shared-library
LockPolicyVersionPublisher — §6.5 суперсеанс завершает триаду позвоночника
Отзывы о клипе ********************* ИНВЕСТОР (ux lock policy version active = (organization id, investor id) status='ACTIVE' and effective until IS NULL. То же атомное окно закрыто + SaveAndFlush ближний перед кандидатом INSERT (Hibernate insert-before-update flush-order) ловушка. Deltas vs. rate-sheet: scope key investorId; no revisionLabel/issuedAt; intraday Ключи от последовательности в день вступления в силу. Shared-lib @Component gated mlos.catalog.enabled + repo Искатель **************** 11 No-DB Мокито Тесты (TDD). С этим, § 6.5 суперсессия эффективного знакомства СОМПЛЕНА во всех трех ВОРМ Версия шипов (рейт-лист + руководство + политика блокировки). Верное зеркало → CRDB e2e — это ворота. Нет новой сущности / таблицы → нет запуска KamoInitializer.
· kamo-shared-library
GuidelineVersionPublisher — §6.5 Замена позвоночника
Руководство-версия брат RateSheetVersionPublisher, ключ за продукт (ux guideline version active = (organization id, product id) Эффективный — до тех пор, пока не станет НУЛЛ. То же самое атомное предварительное окно закрыто: ACTIVE→SUPERSEDED + effective until = successor.effective from, supersedes id link and saveAndFlush the a prior's close Before the candidate INSERT (Hibernate insert-before-update flush-order) ловушка. Deltas vs rate-sheet: scope key productId; validate revisionLabel + sourceDocumentId (не выдается в день); внутридневные ключи последовательности в день вступления в силу. Shared-lib @Component закрыт mlos.catalog.enabled + repo finder **************** 12 тестов Mockito без DB (TDD, в том числе повторный запуск InOrder + WORM-guard). Верное зеркало от издателя с рейтингом, рецензируемого противником, → закрытого поведенческим e2e (руководство) Сверхсессия переворачивает ценообразование. Нет новой сущности / таблицы → нет запуска KamoInitializer.
· kamo-shared-library
RateSheetVersionPublisher — doc 02 §6.5 суперсессия по эффективному датированию
Атомное предварительное окно закрывает загрузочную станцию MLOSCatalogService Отсрочка. Публикация новой версии тарифного листа для существующего (орг, инвестор) Сфера применения теперь закрывает предшественника (ACTIVE→SUPERSEDED + effective until = правопреемник.effective from), связывает правопреемника (supersedes id, next intraday sequence no) и смывает ближний перед кандидатом INSERT — Hibernate Заказывает INSERTs перед обновлением в смыве, поэтому требуется сохранить AndFlush (предшествующий). Избегайте самоподверженного частично уникального нарушения ux rate sheet version active. Shared-lib @Component gated mlos.catalog.enabled модель братьев и сестер; закрытие является WORM-юридическим путем строительства против предприятия @PreUpdate guard. 15 no-DB тестов (Mockito) incl. flush-order InOrder + WORM-guard 2-агентный состязательный обзор → FIX THEN SHIP (1 must-fix) SourceDocumentId проверил спереди → чистые 400, а не побочный эффект 500. Никакой новой сущности/таблицы/репо-интерфейса → никакого запуска KamoInitializer.
· kamo-shared-library
Добавить ************************* для проведения мероприятия по СИЗ
· kamo-shared-library
ПриемлемостьCellMatcher одномерная атрибуция кода причины (специфичность ECOA)
Закрывает пробел в доступности кода причины, отмеченный обзором PriceAssemblyEngine: a Ячейка промахивается на ТОЧНО одном измерении сдерживания теперь становится неопределимой с ее Конкретная основная причина ECOA (FICO BELOW MIN / STATE NOT ELIGIBLE) PROPERTY TYPE NOT ELIGIBLE / UNITITS NOT ELIGIBLE / **************** Вместо того, чтобы рухнуть на общий NO COVERAGE — сделать 9 недостижимых кодов CELL достижимо. Многомерные / двусмысленные промахи и числовые пробелы в каталогах (FICO) выше потолка или между полосами; сумма кредита между разъединенными полосами, правильно Оставаться NO COVERAGE (дефект покрытия § 6.6, никогда не отказ заемщика). Чистый субстрат — Никакая живая служба еще не потребляет спичку; никаких изменений схемы, никакого запуска KamoInitializer. - EligibilityResult: несет основной код MlosAdverseActionReasonCode Владеет им — только он содержит пространственный контекст. Беспричинный 2-арг не имеет права Завод устранен, поэтому ReasonCode недоступен — результат MlosPricedProductResult @PrePersist invariant удерживает строительство на любой заводской результат. CellMatcher: не удалось Dims + атрибут relax-one-dimensionNoCoverage; направление (BELOW/ABOVE/GAP) вычисляется ТОЛЬКО по выключателям единственного измерения (не вся матрица), поэтому слишком большой кредит на несвязанные полосы никогда не маркируется неправильно. BELOW MIN, а FICO выше потолка/разрыв - это разрыв в покрытии, а не ложный "оценка тоже низкий. Договор субстрата задокументирован: один истинный дисквалифицированный потребитель; Переопределяет причины до 4 NOAA. - PriceAssemblyEngine: дополнительная причина Или (ячейка, откат) — предпочитает спичку CellReasonCode (matrixType) сохранился в качестве защитного исходного результата. 2-агентный состязательный обзор → FIX THEN SHIP; применяется оба обязательных исправления (сумма займа и стоимость займа) FICO неправильные обозначения направлений, каждое из которых доказано на примере работы) + исправления (обобщать) Рекордный инвариант; субстрат-контракт + направленность док. 19 матчей + 33 двигателя Тесты зелёные (89 каталожных тестов зелёные).
· kamo-shared-library
ComplianceTimerService выдает mlos.compliance.timer.breached на нарушение SLA (doc 03 §2.8)
Названное в javadoc последующее действие по отношению к отгруженным таймерам Slice-2c: "выброс событий на Очередь соблюдения - это последующее наблюдение. COMPLIANCE TIMER BREACHED event per ARMED→EXPIRED timer, written to the outbox IN ТАКЖЕ ТРАНСАКЦИЯ, как и флип (гарантия транзакционного аутбокса: нарушение Обострение фиксируется достоверно. Нисходящий потребитель управляет ВЫСШИМ Стюард эскалации + оркестровкаГосударство БЛОКЕД→Стальной отказ (поздний кусочек). - OutboxWriter вводится как опционная зависимость **************** null отключает эмиссию, поэтому срок службы по-прежнему истекает, когда выключатель Подложка не подключена к запущенному сервису — изящна, обратно совместима с Текущая автопроводка DaemonService (испытательный шов 3-arg сохранен). - Envelope: domain=compliance, aggregateId=loanFileId, payload carrys **************************** - Новая постоянная открытого струнного типа событий **************************** (Никаких изменений схемы, ни запуска KamoInitializer). - 14 тестов ComplianceTimerService зеленый (12 существующих без изменений + 2 испытания на выбросы). Верное зеркало отгруженного аутбокс-продюсера decision-spine/webhook-ingress шаблон (review-exempt).
· kamo-shared-library
ConditionTemplateExtension — флаг для портала (doc 09 §6.4)
Потребности в новой сетевой зависимости от данных, представленной порталом заемщика «Что осталось»: Заблокированный LoanCondition несет только идентификаторы сотрудников / членов org, поэтому портал не может сказать На какие открытые условия может воздействовать бородавка. doc 09 § 6.4 предписывает Действующий флаг на шаблоне условий займа как сиблинговая организация — никогда столбец на заблокированном ядре (doc 01 §1.1). Флаг для каждого условия отдан сервисная сторона этого шаблонного флага + категория условий. - ConditionTemplateExtension (com.kamo.z.shared.mlos.docs, mutable config/reference): Soft FK loanConditionTemplateId → заблокированный LoanConditionTemplate.id (UUID) 1:1; денормализованная организация Id (длинная, струнная); заемщик Boolean @ColumnDefault false (безопасно: только для внутренних целей, если не кураторские действия). ********************** (найтиByLoanConditionTemplateId +) **************************** mlos.docs уже в @EnableJpaRepositories; индекс UNIQUE объявлен организацией (без SchemaCleanupRunner). - 3 теста без БД. Верное зеркало DocumentRequirement soft-FK-to-locked шаблон (review-exempt).
· kamo-shared-library
PriceAssemblyEngine — детерминированное ядро PPE §8.1 (фаза 2, срез 13)
Первый чисто-логический срез молоса: камень, который составляет отгруженный каталог Решители в авторитетную математику ценообразования на стороне сервера (doc 02 § 8.1 шаги 2-4). Ungated stateless @Component (относится к AdjustmentConditionEvaluator/) **************** — нулевой репозиторий, никакой новой сущности, Никаких изменений схемы. Будущее MLOSPricingService включает в себя репо + персистентность + события. - mergeEligibility(): трехконъюнктурный фильтр §8.1 step-2/3 (ячейка и руководство) AND AUS gate) → EligibilityVerdict, самый тяжелый блокирующий приоритет с одним Основной код MlosAdverseActionReasonCode (ячейка ****************) Справочник → AUS-When-Required → ELIGIBLE - assemblePrice(): final price = base + Σ ADDITIVE + Π MULTIPLICATIVE (stack order) + маржа, с учетом cap value. Аддитивное суммирование (→ Total adjustments 9,6) мультипликативные факторы масштабируют бегущий субтотал в порядке восходящего стека (uid) тай-брейк), затем маржа добавила последний / вне Π; одиночный финал HALF UP до (9,4). - цена(): организует оба; выход удовлетворяет MlosPricedProductResult @PrePersist offerable-consistency invariant by construction. - cap value = зажим величины, сохраняющий только знак присадки (cap=0 ⇒ 0, вклад, Предназначено; мультипликативное значение cap является дефектом громкой конфигурации (закрыто, никогда не закрывается) неправильная цена). AUS PASS/NOT APPLICABLE non-blocking (цена до AUS; § 8.2) Жесткая остановка на замке - это служба. - Новый: AusGateOutcome enum + **************************** PricedProductComputation records. 33 no-DB JUnit5 tests green. Научно-исследовательский рабочий процесс (3-читатель + синтез) + 2-агентный состязательный обзор (вердикт) FIX THEN SHIP, ноль must-fix; применяется 5 should-fix затвердевающих элементов: громко multiplicative-cap guard, reason-code-coverage-gap doc, cap=0 + low-ruleCode Документы и 6 тестов покрытия.
· InitializerService
Регистрация pkg + RCE/pull-through DDL (docs 08/09)
@EnableJpaRepositories += **************************** SchemaCleanupRunner: **************************** (частично уникальный) + rce commit ai decision fk + rce commit lock record fk + rce commit pricing snapshot fk (§7.4 snapshot delete-guard) + mlos aiptp one active uniq (одна политика ACTIVE на каждого кредитора profile+market) РСЕ Таблица + применяемые ограничения + проверенные.

Ваша вселенная ждет.
Начните бесплатно через несколько минут. Добавляйте продукты, когда будете готовы — без миграции, без новых логинов.
Бесплатно навсегда — не требуется кредитная карта