Změny pro vývojáře 05/2026
Technický přehled změn za květen 2026, korelovaný napříč repozitáři (backend, terminal, vue-design-system, elasticr-admin-assets, elasticr-assets). Zákaznický přehled najdete na stránce Novinky: Release notes 05/2026.
Administrace zákazníků a builder framework (EP-270)
Repozitáře: backend (57.3.0), vue-design-system (1.3.0), elasticr-admin-assets · Jira: EP-270
Vznikl konfigurační builder systém pro administraci: systém podmínek a interakcí, parametry a klíče, obsahové prvky, rozložení, pole a filtry, akce/efekty/potvrzení, sloupce a hierarchie konfigurace výpisů s vrstvenými enhancery a infrastrukturou dashboardů (4ffd8ea5, 6b789474, da35c271, cc9e8c5a, f85a2c31, 349f07fd, c1bab20d, 15a05ab2, d19ff04a, 8ffc5180, fbc23a24). Na něm byla postavena nová administrace zákazníků — výpis, formulář a dashboard s prioritizovanými záložkami (objednávky, zásilky, externí objednávky, KPI, finance, poptávky, vratky a reklamace) včetně hromadných úprav a mazání (a6da6db0, 6c62f01f, 894c76b2, d4b5804c, 5df9bd46, 26de6c7a, e8b8168a, a76b60b4). Zdroje Channel, Currency, Route, ReturnQualityGrade a ReturnReason byly migrovány na nové API výpisů s výchozím řazením podle ID a definovanými kandidáty řazení (3f78798b, a207ec61, 8b89fffe, a25a5fdf, b5f1b2e0, 59f7b93b). Doplněny testy a dokumentace, sjednocena hierarchie řazení (URL → uložený stav → preset → nastavení zdroje → konfigurace) a výchozí mazatelnost select filtrů (a9264ea8, 472c617f, 9a13653e, 48629afc, 2b60da11, 9d84b271, 1933cc0a, 900c00d2, c3d8b20e). Ve frontendu se změnil validační diskriminátor a přibyly nové typy konfigurace; v administraci přibyl kontakt (e-mail + telefon) v referenci zákazníka a externí ID (1d3d39d, 5f6fe4a14, 67734d1b).
Produktové masky – více masek na pravidlo (EP-285)
Repozitáře: backend (57.2.0), elasticr-assets · Jira: EP-285
Jedna maska byla nahrazena kolekcí masek napříč pravidly prodeje, dárky, kupóny, cenovými pravidly a pravidly doprav a plateb (ae525a9d). Ve frontendu formulář masky umožňuje whitelist/blacklist jednotlivých typů filtrů, výběr původů dokladu a prázdný stav s placeholderem (c85a48e4c, 000864d75, f40c95b5c, a2b78ed2d, dc1bdc4be, 087182b34).
Priorita dokumentů – hodnota místo ID (EP-294)
Repozitáře: backend (57.2.0, 57.5.0), terminal (6.2.8, 6.3.0) · Jira: EP-294
Reprezentace priority dokumentů přešla z interního ID na přímou hodnotu (10/20/30) s validací existence hodnoty; databázové sloupce byly přejmenovány a doplněn dočasný můstek priority ID pro API a Firestore (c21bc32c, c262effa, 0eed6b08, 0c955aedf, 132c14555). V terminálu se řazení podle priority přesunulo na klienta kvůli heterogenním backendům a detail dokumentu získal topContent slot (f4fa271b, af7dc19f, 247319b5).
Doplňování zásob – pravidla umístění (MATEZAWMS-805)
Repozitáře: backend (57.4.0, 57.8.3), elasticr-admin-assets · Jira: MATEZAWMS-805
Přibyla pravidla umístění skladových položek na úrovni zóny i pozice s režimy doplňování (striktní / doporučení) a režimy množství (pevná hodnota / kapacita pozice) včetně validace kapacity; výpočet doplňování tato pravidla zohledňuje (bd97b717, d40d8d5e, caf91b8f). Opraven výpadek produktů v UI doplňování (a862e6fd); ve frontendu vzniklo UI pro pravidla umístění produktu (3e206d3de).
Naskladnění, převody a příjemky (WMS)
Repozitáře: backend (57.2.0, 57.5.0, 57.8.0, 57.8.6, 57.9.0), elasticr-admin-assets · Jira: MATEZAWMS-827, LUMAX-768, LUMAX-780, LUMAX-738
Logika tvorby položek naskladnění byla vyčleněna a znovupoužita pro převody i podporu výroby během vychystávání (10ec9b9b, 37b4b122). Přibyl handler pro vytvoření příjemky z předchozí expedice s párováním položek na původní výdejky a zohledněním původu položky u účetních dokladů (775d7663, 3fe215f4, 799a0d4f). Coverage převodů hledá pokrytí z navazujících převodů a detail převodu ve Vue byl zjednodušen (997ac9c2, ab4eda08, b9d2182d). Lokace sériového čísla je modelována jako jednotný skladový kontext s cache a přejmenováním na warehouseLocation (53be6e05, d3718b6f, 61da5a47, 9e7c8800, 21d62639).
Částečné úpravy dokladů (LUMAX-757)
Repozitáře: backend (57.6.4), elasticr-admin-assets · Jira: LUMAX-757
Zavedena granulární oprávnění pro částečnou úpravu fakturačních dokladů — zvlášť fakturační a doručovací adresa, položky, doprava a platba i sleva. Neautorizované změny se ignorují a zapisují do audit logu; doplněna vlastnost plné editovatelnosti a E2E pokrytí (7d3ae46a, ec234ab8, cd0c8d6c, 31ab59d2, 3198abdd, 7040c5ee). Ve frontendu přibylo UI částečné editace (3528169f4, 9f0c1c009, 35acdec2f, 4217a4fcf, f3b3346b2).
Maloobchodní štítky – log tisku (MATEZAWMS-806)
Repozitáře: backend (57.1.0, 57.3.0), terminal (6.3.2) · Jira: MATEZAWMS-806
Vznikla položka menu Maloobchodní štítky s historií tisku (produkt, pozice, cena, uživatel, čas) a filtry podle stavu ceny, lokace, zóny a produktů; přibyl jednotlivý i hromadný dotisk z přehledu (fbc3e4a0, 7883aee4, 6d3a7adb, ed87bfe6). V terminálu lze při tisku volitelně naskenovat pozici a uchovat tak historii ceny (be4fed04).
Publikační práva pro obsah (BODOVKA26)
Repozitáře: backend (57.6.8, 57.7.0), elasticr-admin-assets · Jira: BODOVKA26-138, BODOVKA26-145
Ukládací tlačítka jsou nově podmíněna kontextem zobrazení, publikace článků a stránek je krytá maticí oprávnění a stav/revize/datum publikace jsou gateované publikační rolí (e0219668, c62688a2, 9fbf6dd1, 234c3321, 44cc35f92). K typu článku lze přiřadit ikonu (49815683, b5f71c1a7).
Referenční ceny podle směrnice Omnibus (MATEZAWMS-797)
Repozitáře: backend (57.6.0), elasticr-assets · Jira: MATEZAWMS-797
Přibyl výpočet a zobrazení nejnižší ceny za posledních 30 dní; procento slevy i příznak zlevnění vychází z této referenční ceny a v detailu produktu je u přidání do košíku textová informace, doplněná o styly ve frontendu (3a018d92, 6ca4fd8).
Cenové skupiny produktů (EP-309)
Repozitáře: backend (57.9.0), elasticr-admin-assets · Jira: EP-309
Vznikly cenové skupiny produktů s relacemi, zpracováním importu a výpočtem cen, s vlastností kódu, na který se importy odkazují (f06cb3ab, dfe4b279); ve frontendu přibylo UI cenových skupin a práce s cenou z lead price (41d284372, 606b18679).
Výpisy produktů a zákaznický profil (storefront)
Repozitáře: backend (57.8.9, 57.9.0), elasticr-assets · Jira: EP-296, VETERIX-426
Do nastavení webu přibyla konfigurace počtu produktů ve výpisu (výchozí, nabízené hodnoty, přepínač pro návštěvníky) a nová Vue pipeline pro balíčky (d6dbe9fc, 44d7f85, dc3920e). V profilu zákazníka lze zopakovat celý nákup, jednu položku nebo ji přidat do poptávky, s přeskočením nedostupného zboží (16740a75).
Napojení BaseLinker (QSWMS-71)
Repozitáře: backend (57.3.0) · Jira: QSWMS-71
Přidán adaptér BaseLinkeru: stahování objednávek CLI příkazem, zakládání zásilek a tisk přepravních štítků přes API a konfigurace zákazníka (tokeny, zdroje objednávek, mapování dopravy, dobírka) (6581b4c0).
Integrace a ESB (ESO9/E9, Distribox, Shopify, SalesConnect)
Repozitáře: backend (57.4.0–57.13.0) · Jira: INGREDIEU-, MATEZAWMS-, GBWMS-202
Rozdělení zdrojů pro synchronizaci objednávek a produktů v SalesConnectu (ca4562fa); nové endpointy a kombinační logika způsobů dopravy a platby (f21f66c5, e6219ef9); Distribox přešel na návratový endpoint místo zrušení a doplnil parsování verzí a debug logy (96ec2eb9, 7d902f02, 49e7c97f, f835ee68); optimalizace stahování objednávek z E9 a ošetření stavů (1a7ec5ca, eb14703c, 2bf47a38); Shopify a ESO9 úpravy a konfigurátor vyráběných produktů z ESO9 (9f2c369a, ae895938, 018b54e9); async indexace produktů po dávkách s robustním ošetřením chyb (56727500, 070fc255); flexibee DTO enhancer (d9e6a240).
Ostatní
Kompletní seznam všech změn za měsíc po repozitářích (shortId — title).
backend
3f565e80— containers validation when performing transactions from receipts FS activitiesfbc3e4a0— created RetailLabelLogEntry with get/reprint endpoints and log-based retail label printing7883aee4— RetailLabelLogEntry fixes (rename column, add filters, stricter validation)ffd57b3b— fix potential value type issue in CustomerMinimalOrderPriceSettingsae525a9d— EP-285 replace single mask with multiple product masksc21bc32c— switch from priorityId to priority6684fdb3— update assets10ec9b9b— extract items creation logic from PutAwayFromDocumentFactory37b4b122— reuse putAway items logic for creating StockTransfer3f78798b— add id as sortable property on channel/currency/customer/route/returnQualityGrade/returnReason listingsa207ec61— force ACTION_READ in EmbeddableResourceContextBuilder on normalization path8b89fffe— add TagGroupObjectType + TranslationPrefix attributes and stock-context marker4ffd8ea5— add builder foundation — enums, renderable base, concerns, interaction, href, condition system6b789474— add Param + Key builderda35c271— add Content builder (12 content types)cc9e8c5a— add Layout builder + rework Panel (9 layout types)f85a2c31— add Field + FormField + FilterField + BulkEditField + PayloadMapper349f07fd— add Action + Effect + Confirm systemc1bab20d— add Column builder (15 column types)15a05ab2— list config hierarchy (PageListConfig, EmbeddedListConfig, DtoListConfigFactory)d19ff04a— DtoListBuilder + DtoPageListBuilder + DtoListEnhancer + Dashboard infra8ffc5180— document list enhancers (Base/Billable/WithPayments/WithStockContext)a25a5fdf— migrate ReturnQualityGrade + ReturnReason resources to pageList APIb5f1b2e0— migrate Channel + Currency + Route resources to pageList APIa6da6db0— add customer admin surface (list + form + dashboard)6c62f01f— customer bulk edit (PriceGroup + RemoveAll handling, array-indexed payload)894c76b2— wire list enhancer services, drop legacy /customers route, resource_settings VDS migrationd4b5804c— package CustomerDashboard enhancers (finance/inquiry/returns tabs)a9264ea8— builder unit tests472c617f— integration tests (customer bulk, tagging embed, dashboard, list enhancer)9a13653e— docs — vue-design-system integration + skill updates + migration cookbook48629afc— cypress + docs — customer listing selectors, sort hierarchy, clearable defaultsfbc23a24— builder alignment polish (Flex enums, config-renderer emit, VDS contract)2b60da11— builder unit tests (selectedTemplate/chipTemplate, api-select clearable, strict overrides)a76b60b4— fix CustomerDashboard KPI tab test (structured Param emit)5df9bd46— customer bulk edit hardening (pre-resolve tag groups, per-row try/catch)59f7b93b— move DtoListConfigFactory into Builder/ namespace + update importers26de6c7a— bulk-edit hardening (enum mode, hoist lookups, clean abort on EM close)e8b8168a— builder polish — omit null payloadMapper key9d84b271— fix Content typehints to ValueParamContract1933cc0a— docs for reviews (contributing conventions)900c00d2— CR naming fixesc3d8b20e— bump vue-design-system pin 1.2.0 → 1.3.0ed87bfe6— rebase fixup — migrate WMS retail label log resource to EP-270 builder API6d3a7adb— add bulk reprint toolbar action to retail label log17a00bb9— fix FindFilteredValuesByGroupsAction when second range value missingbac00d81— allow merge when branch-id/own-vhost deploy fails6581b4c0— BaseLinker adapter19ef3029— split package test job to run in parallelc262effa— temporary priorityId to api/firestore9f6659ae— assets updatebd97b717— added placement rules on stock itemd40d8d5e— extended itemCoverPosition with quantitiescaf91b8f— updated replenishments with storage rules logic1b1688bb— add deploy lock to auto-deploy testing jobca4562fa— add priceSyncExcludedSources to SalesConnectConfig, filter product sources68621caa— project update — copy dist/vite.config.js7db40d1e— refresh elasticr-admin-assets pinf992e798— inventory item — performance optimization (covering index, batch upsert)6bb1472a— package test reorder919a6ed0— added missing filters for doc series in activities and worklogsc6e47b96— upd assets68f59b1f— assets update775d7663— CreateReceiptFromExpeditionTransitionHandler added3fe215f4— accounting receipts from putAway respect item origin, not header0eed6b08— fix priority value data backfill migrationb4fdfde8— upd assets3a018d92— MATEZAWMS-797 add EU Omnibus Directive reference price calculation90ccd323— added workflow state and definition translators2bf47a38— sync receipts with correct origin to E9256aa709— allow controlling pipeline via START_DB_COPY / START_DEPLOY_STAGING458b64cf— fix containers validation in coverage handler5efd851c— fix getting stockDocuments to sync through ESB0e61d93f— better error message when state not found in workflow currentState0556b038— fixes for billable items and items with configuration2f5c2d47— update assets in composer6221ec65— fix passing correct related transfer items IDs to ESO9601c83fd— clearing containers correctly when creating receipt from DN874deace— keep serialNumbers when making order from another order (service orders)b5de3eb8— split billable vs sales concerns in EditDocumentItemAction7d3ae46a— add granular partial edit permissions for billable documentsec234ab8— extend partial edit feature, add E2E coverageaf619851— isolate partial-edit E2E fixtures into e2e-test groupcd0c8d6c— extend partial edit role gating (IDN state-lock + discount in_process)9c757008— e2e coverage for canApplyDiscount role minimization31ab59d2— extract APPLY_DISCOUNT permission constant to enum3198abdd— audit editable item deletions in partial edit merge7040c5ee— split structural vs discount in edit validator bypass5663e570— add fixture-drift pre-flight to order partial edit spec474325fb— bump admin-assets900d60d4— nested() field modifier on AbstractField919f5c78— bump vue-design-system to 1.4.0df547af1— bump admin-assets11cc5683— fix referenceNumber PK collision across document types sharing a prefix19dcb303— log success in delivery note status update to ESB handler8843d2f2— document-created event switched to contract, dispatched for all WMS docse4085409— don't pass document tags when transforming into doc with no allowed tagging473fbbb8— fall back to default channel locale when request locale not active00f0865e— allow admin-hot/site-hot port override via env var06e3a616— pass note from transfer to its putAway164f4916— ecs fix Router02e45694— fix fixtures labs49815683— add icon parameter to article type8919591f— asset update8589a4f0— bump vue-design-system to 1.5.0e0219668— gate save buttons by view context, add page list publish actionsc62688a2— cover article + page publish-rights with permission matrix9fbf6dd1— sort user listing by id.asc in spec234c3321— bump admin-assets to post-publish-rights master018b54e9— add ManufacturedConfigurator and process components from ESO9f857ad84— workflow currentStateOrNull method added1f9e4c6c— pass more origin levels to ESB in stock document handler7d52de4e— bump admin-assets to null-taggedItem fixf21f66c5— added payment and shipping method new endpoints5148c439— create stock taking from operation queue + endpoint for documents from filtered stock items6b562c41— add operation-driven StockTaking creation in API0b3dbcd3— don't force log payload of E9 delivery list, keep settings-based logging96ec2eb9— distribox cancel update (use return endpoint instead of cancel)7d902f02— update distribox OrderStatus enume7e85aa4— returns workflow update00c962df— filemanager and uploading attachments refactoringf61d63b4— EP-271123ad3b9— updates to create complaint from returnDocument098d1749— fix returns tests30ddf362— skip warehouse zone deleted validator when location is new799a0d4f— split receipt items by original expedition putAwayce81bf72— allow rendering placeholder item in inquiry offer20045659— assets updated9e6a240— add flexibee order dto enhancer contractc49b9574— fix cash register transaction synthesizing phantom transactions on re-invocation4aae6b3e— exclude E2E regression from tag/release pipelines8c9ffee3— fix nested reference in CI rules anchors624efe0d— dedupe CI rulesca3c8616— update vue assets to 1.5.14d85bcc9— fix update assets1a7ec5ca— fetching orders from E9 optimization (lazy fetch details)eb14703c— E9 stock document service — check current state when unable to set on closed doc142ca640— log vouchers activationa862e6fd— fixed missing products from replenishments uic517bbd0— upd assetse17f85e3— skip stock transfer sync violations by regex pattern7592b5b1— prevent auto-deploy when a release prepare is created192f8bf7— add e2e — warehouse location field on manual shipment create52708fb9— access removalc71b0d93— shipment status check command/service extended for common usagesfbb93d72— balikobot shipment status check logging update997ac9c2— treat items in stockTransfer as still on stock in out-of-stock supplier actionab4eda08— stock transfer receipts coverage provider finds coverage from following transfersb9d2182d— stockTransfer vue detail data update (correct coverageContext)e6219ef9— added combination logic in api for shipping and payment methods554d88ef— update symfony/flex00449fac— versioner — update symfony/flex2302207b— automation handler to run importe1f80eb4— sentry — logging memory limit / max execution time errors56727500— async indexation070fc255— more robust error handling for async processesd6dbe9fc— EP-296 configurable product count on frontend listings79b1f18b— refactor product route generation for title/meta description changes9f2c369a— INGREDIEU-960 Shopify adjustments732b3fa7— assets update219f952b— product listing adjustment (BODOVKA26-21)0675c4fd— asset updateae895938— fix origin document type for eso9 orders16740a75— VETERIX-426 repeat purchases in customer profilea271b60c— added lastStockTakingAt in aggregated positions + automationsf06cb3ab— ProductPriceGroup with relations, import and price calculation294125cb— update assets8ec800c1— PutAway data factory supports coverPosition for itemse5c057b7— documents-from-stock factory can skip zero-qty items53be6e05— expose stockroom + warehouse on serial number locationsd3718b6f— model SN location as a single StockContext61da5a47— cache WarehouseLocationDto per id in position dto factory10e93d20— port SN picker stock-context spec to Playwright9e7c8800— rename position dto warehouse to warehouseLocation21d62639— derive SN stockContext per source1aa7e9c9— EP-303 automations update (groups, priority, labels, triggerConfig)86176f0f— update assets80d2be99— ship currency object to monetary-field resource pagesc49e6b37— add Playwright regression spec for decimal price inputb44fdc94— add Playwright red-green config for inner TDD loop792e9542— dump fixture references for Playwright specsa08c91cf— add Playwright regression spec for order-item discount cleardfe4b279— added code property to ProductPriceGroup, imports rely on codedbe3108f— fix fixture-refs dump path, apply CS/Rectora576636b— bump elasticr-admin-assets72b871b1— adjust migration to set trigger only for dataPointer based automationsf313397e— process ID added into audit log metadataeffac445— fix wrong specdf9ef7bc— fixes for billing address and b2b module (checkout templates)07ecc732— catch exception when numbers-to-words fail, add more currencies36ea37e3— IssuedDeliveryNote and IssuedTaxDocument use SalesBaseDocument5a277b43— fix OrderSettings useNumberDirectly default value106300af— automation handler to mark another automation as pending8fa72f23— EP-303 remove gate on triggering route recalculation085462e2— run specific automation7c6a6d5a— automation frequency not nullable — empty string default266eaf57— stockTransfer coverageOptions canCover false when context empty61dfc7bf— reference number to distribox118bb19d— pin select2 to 4.0.13 via resolutionsc587c199— INGREDIEU-963 add filter negations and operators67734d1b— fix customer post in listb87ffbfd— bump vue-design-system to 1.5.249e7c97f— distribox API debug loggingf835ee68— distribox other API responses version parsing464d7b87— receipt position resolver use default position prior to last transaction
terminal
f4fa271b— Priority: rename priorityId → priority, values 10/20/30247319b5— DocumentDetail: rendering event carries topContent, new Mateza listeneraf7dc19f— Orders: client-side priority sorting (heterogeneous backends)1f57004a— fix boxes (infinite spinner on place-to-position, stream replay)be4fed04— retail label print: optional position scanning with price historye9855770— queue ticket: on-screen debug preview instead of print + layout tweak
elasticr-admin-assets
606b18679— prices with lead price6ddb3efd4— node 24 supportd9c7d663a— VETERIX-454 coupon item in order (backend-driven)1a95dbb9e— regenerate types from backend092c5bad8— pin select2 to 4.0.xc0fd3e669— StockTransfer detail bugfix when no putAway in FS8a8815b0f— LUMAX-777 add itinerary fields to document batch delivery23c9c00e0— fix CI test job OOM via ts-jest isolatedModules + jest worker caps8bc2165ca— add negation and operator options to tag group6d1afa0e7— add visibleProductSet6f6c1da8c— accept dot and comma in numeric price inputsead4916d1— rename SN picker position.warehouse to warehouseLocationc3e4a7bb5— replace SN picker locations[] with single stockContext965ad7459— honor ADMIN_HOT_PORT in adminEncoreaa452c6c6— wire firestore emulator + long-polling for Cypress CIcf0bfe1b4— render warehouse/location column on serial number pickers67c542007— Ep 30341d284372— UI changes for price group6476be8a9— fix CashRegisterDashboardModuled58cdc3ab— stockTransfer detail minor updates132c14555— propagate priority through WarehouseLocationFilterFactory93220bcd6— expose warehouse location on manual shipment create modald0e762154— lint fixbc1229ed3— split coupon gift/shipping form gating into two flags4eaef6cf6— added fixed width on position column087182b34— allow empty multi-mask state with placeholder0889092b9— open filemanager at attachment folder22437df64— guard null taggedItem in document transformation mapping44cc35f92— gate state, revision, publishedFrom/To on publish roleb5f71c1a7— add icon parameter to article typebb8c15f0b— preserve user discount when BE returns different originalPriceda2f019d8— reset price when discount toggle is disabled9f0c1c009— LUMAX-757 fix partial-edit permission gating for transitions/discount35acdec2f— tighten canApplyDiscount gate to mirror BE merge rules3633f0512— drop fullyEditable requirement from canApplyDiscount4217a4fcf— align partial-edit FE gating with backend save behaviorf3b3346b2— treat null isEditable as no override7a6697c36— fix type errors in partial edit providers3528169f4— add partial edit UI for billable documents5f6fe4a14— added customer externalId on ui4404a64da— added translation ui for workflow states and definitionc85a48e4c— DocumentMaskForm — whitelist/blacklist each filter type000864d75— RelatedDocumentFiltersForm renamed to DocumentMaskFormf40c95b5c— add just desired filters into RelatedDocumentFiltersForma2b78ed2d— extend RelatedDocumentFiltersForm with origins selectiondc1bdc4be— PositiveNegativeSelect extracted from DocumentStatusCategoriesFilterc09052745— CreateReceiptFromExpeditionHandlerForm addedee6ff1c9a— fix margin calculation in costs and revenues module958c5cb23— added document series UI for activity logs and worklogsc7bb9a7a7— fix expiration date input keyboard entry925ad194d— regenerate types01d815f21— fix stock transfer documents tab crash on closed transfers without putAways478766cec— fix tests0c955aedf— priority switch from id to priority3e206d3de— added ui for product placement rules3dbc5777d— added ui for product filtering on replenishments
elasticr-assets
7986037— add path to exclude4c65a1c— add filter exclusions44d7f85— product listing adjustment087144d— add custom-product-image6ca4fd8— MATEZAWMS-797 add lowest 30-day reference price stylesdc3920e— prevent reloading page on load-more button
vue-design-system
c143ca8— prune unused FieldHandle setValue/setDisabled verbs9c5c08e— fix collection params in route URLs, add action button loading stateb996ce3— resolve api-select routeParams per-param to avoid recompute churn72b1ba1— provide FORM_REF_KEY locally so standalone forms run revalidate effects4b9044c— guard clearWhenStale against self-record cache-miss race18b0690— extract useFieldHandle composable to dedup FieldHandle wiringc0b0e40— trim non-essential comments across the effects subsystem51e802b— field effects subsystem (clearValue / revalidate) + FilterFieldRenderer1825086— destructure ValidationRule per-variant to satisfy typecheck15c438c— fix validation for config form0ae0457— input group repeater component3e56bb6— Prettier fixbd806f3— footer slide panel106b85e— SlidePanel story: footer variant with ProductReference subheaderaa4e254— SlidePanel: add footer slot pinned at the bottom6d923ff— button variant fix631f32a— WIP new editor/code-editor/tooltip/slider/empty-state components + ObjectReference variants1d3d39d— CustomerReference shows email + phone as IconText below title1f1ca15— fix format972953f— validation tuning, settings component3979055— mirrored horizontal scrollbar above Table825fecf— shared tsconfig.base.json + dist consumer templatea2b3741— fix OperatorInput: skip emit when operator changes without value2f7761d— respect valueShape in QuickFilter editor6e1496d— nested-DTO field hooks + page-scoped resource cache