<freeStyleBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesorigindev _class='hudson.plugins.git.util.Build'><buildNumber>780</buildNumber><marked><SHA1>c03ffecdc39c2fb48e278b6fed453fb530fd8237</SHA1><branch><SHA1>c03ffecdc39c2fb48e278b6fed453fb530fd8237</SHA1><name>refs/remotes/origin/dev</name></branch></marked><revision><SHA1>c03ffecdc39c2fb48e278b6fed453fb530fd8237</SHA1><branch><SHA1>c03ffecdc39c2fb48e278b6fed453fb530fd8237</SHA1><name>refs/remotes/origin/dev</name></branch></revision></refsremotesorigindev></buildsByBranchName><lastBuiltRevision><SHA1>c03ffecdc39c2fb48e278b6fed453fb530fd8237</SHA1><branch><SHA1>c03ffecdc39c2fb48e278b6fed453fb530fd8237</SHA1><name>refs/remotes/origin/dev</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/erp-nuxt-frontend.git</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://jenkins.younex.de/job/build-logship-frontend/780/artifact</artifactsUrl><changesUrl>https://jenkins.younex.de/job/build-logship-frontend/changes</changesUrl><displayUrl>https://jenkins.younex.de/job/build-logship-frontend/780/</displayUrl><testsUrl>https://jenkins.younex.de/job/build-logship-frontend/780/testReport</testsUrl></action><building>false</building><displayName>#780</displayName><duration>67591</duration><estimatedDuration>60620</estimatedDuration><fullDisplayName>build-logship-frontend #780</fullDisplayName><id>780</id><inProgress>false</inProgress><keepLog>false</keepLog><number>780</number><queueId>5892</queueId><result>SUCCESS</result><timestamp>1793062800194</timestamp><url>https://jenkins.younex.de/job/build-logship-frontend/780/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>android/update-files/version.json</affectedPath><affectedPath>android/app/build.gradle</affectedPath><commitId>cedd49d1ef03513a99128d8eab938399f83ab8ef</commitId><timestamp>1792996434000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>release app 1.0.68 (code 69): WMS app login only for mobile workers — corrects the unshipped 1.0.69 bump from the interrupted release run
</comment><date>2026-10-26 07:33:54 +0100</date><id>cedd49d1ef03513a99128d8eab938399f83ab8ef</id><msg>release app 1.0.68 (code 69): WMS app login only for mobile workers — corrects the unshipped 1.0.69 bump from the interrupted release run</msg><path><editType>edit</editType><file>android/update-files/version.json</file></path><path><editType>edit</editType><file>android/app/build.gradle</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>server/api/offers/conditions/index.post.ts</affectedPath><affectedPath>app/components/offers/QuoteModal.vue</affectedPath><affectedPath>server/api/settings/software-catalog/lists.get.ts</affectedPath><affectedPath>app/composables/useOfferSoftwareQuote.ts</affectedPath><affectedPath>server/api/offers/quote/preview.post.ts</affectedPath><affectedPath>app/pages/settings/software-catalog/index.vue</affectedPath><affectedPath>reference/template-cleanup/01-idempiere-truncate.sql</affectedPath><affectedPath>app/utils/softwareCatalogDefaults.ts</affectedPath><affectedPath>server/utils/chatAccess.ts</affectedPath><affectedPath>app/pages/users/leads/[id]/edit.vue</affectedPath><affectedPath>server/api/settings/software-catalog/seed.post.ts</affectedPath><affectedPath>reference/template-cleanup/README.md</affectedPath><affectedPath>app/components/offers/SoftwareQuoteModal.vue</affectedPath><affectedPath>app/assets/langs/shared.js</affectedPath><affectedPath>server/api/settings/software-catalog/save.post.ts</affectedPath><affectedPath>server/api/settings/software-catalog/seed-lists.post.ts</affectedPath><affectedPath>server/api/offers/software-catalog/index.get.ts</affectedPath><affectedPath>app/components/leads/ChatConsoleModal.vue</affectedPath><affectedPath>reference/test-scripts/software-catalog-seed-lists.mts</affectedPath><affectedPath>server/utils/offers/softwareCatalog.ts</affectedPath><affectedPath>.claude/rules/offers/software-quote.md</affectedPath><affectedPath>app/composables/menu/admin/sales.ts</affectedPath><affectedPath>app/components/MainNavigationMenu.vue</affectedPath><affectedPath>server/utils/offers/softwareQuotePdf.ts</affectedPath><affectedPath>server/api/offers/quote/send.post.ts</affectedPath><commitId>7247b7d3b3973109586dfc39741d445d9fa06b91</commitId><timestamp>1793023127000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Software offer type "LogShip Cloud" + maintainable catalog in iDempiere

Second offer type next to the 3PL fulfillment quote on the lead page: a SaaS
offer for the LogShip Cloud product with its own modal (packages, overage
staffel, feature matrix, add-ons, onboarding package with phases/highlights,
positions, requirements, texts) and branded PDF (package card, prices, 4–5
column package comparison, onboarding section, example calculation). Header
switch "Fulfillment | LogShip Cloud" in both modals; offers/quote preview+send
branch on payload.offerType, conditions saved as offer_conditions.softwareQuote.

Catalog persisted in iDempiere (CUST_SoftwarePlan / CUST_SoftwareCatalogItem,
enum columns as AD_Reference lists): server util with 5-min cache and fail-soft
defaults, routes for read / lists / whole-catalog save / seed / seed-lists,
staff gate option requireChat=false. Settings → Software-Katalog is a matrix
editor (packages = columns, features = rows, click cell = minimum package,
mode pill, drag &amp; drop rows/columns, inline rename, details panel, add-ons
list, one save) — linked from Sales in both menus. Offers carry a catalog
snapshot so old PDFs stay reproducible.

Also: backdrop close only on a real backdrop click (both offer modals), feature
rows no longer squeezed by the global select width, dark-mode styling for the
catalog page, the KI console and the offer modals, template clean-up keeps the
two new tables, recipe .claude/rules/offers/software-quote.md.
</comment><date>2026-10-26 14:58:47 +0100</date><id>7247b7d3b3973109586dfc39741d445d9fa06b91</id><msg>Software offer type "LogShip Cloud" + maintainable catalog in iDempiere</msg><path><editType>add</editType><file>server/utils/offers/softwareQuotePdf.ts</file></path><path><editType>add</editType><file>server/api/settings/software-catalog/seed-lists.post.ts</file></path><path><editType>edit</editType><file>reference/template-cleanup/01-idempiere-truncate.sql</file></path><path><editType>edit</editType><file>reference/template-cleanup/README.md</file></path><path><editType>add</editType><file>app/components/offers/SoftwareQuoteModal.vue</file></path><path><editType>add</editType><file>server/api/settings/software-catalog/save.post.ts</file></path><path><editType>add</editType><file>server/api/settings/software-catalog/seed.post.ts</file></path><path><editType>add</editType><file>.claude/rules/offers/software-quote.md</file></path><path><editType>add</editType><file>app/utils/softwareCatalogDefaults.ts</file></path><path><editType>edit</editType><file>app/composables/menu/admin/sales.ts</file></path><path><editType>edit</editType><file>app/components/MainNavigationMenu.vue</file></path><path><editType>edit</editType><file>server/api/offers/conditions/index.post.ts</file></path><path><editType>edit</editType><file>server/utils/chatAccess.ts</file></path><path><editType>add</editType><file>server/utils/offers/softwareCatalog.ts</file></path><path><editType>add</editType><file>app/pages/settings/software-catalog/index.vue</file></path><path><editType>add</editType><file>server/api/offers/software-catalog/index.get.ts</file></path><path><editType>edit</editType><file>app/components/offers/QuoteModal.vue</file></path><path><editType>add</editType><file>app/composables/useOfferSoftwareQuote.ts</file></path><path><editType>edit</editType><file>app/components/leads/ChatConsoleModal.vue</file></path><path><editType>add</editType><file>reference/test-scripts/software-catalog-seed-lists.mts</file></path><path><editType>edit</editType><file>app/pages/users/leads/[id]/edit.vue</file></path><path><editType>edit</editType><file>server/api/offers/quote/send.post.ts</file></path><path><editType>edit</editType><file>server/api/offers/quote/preview.post.ts</file></path><path><editType>add</editType><file>server/api/settings/software-catalog/lists.get.ts</file></path><path><editType>edit</editType><file>app/assets/langs/shared.js</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>server/utils/offers/softwareQuotePdf.ts</affectedPath><affectedPath>app/composables/useOfferSoftwareQuote.ts</affectedPath><affectedPath>app/components/offers/SoftwareQuoteModal.vue</affectedPath><affectedPath>app/assets/langs/shared.js</affectedPath><commitId>e41d3f6dc8550eda20b6a57c1a42ccba2ca35f50</commitId><timestamp>1793024418000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>LogShip offer: onboarding package marked optional, "ab" price, travel costs excluded

The onboarding package prints as optional with an "ab 3.250 €" starting price
(final fixed price after the kickoff) and a note that travel and accommodation
costs for on-site appointments are billed as incurred — in the price table, the
onboarding section, the example calculation and the Hinweise. Both aspects are
per-offer switches in the modal (default on) and persist with the conditions.
</comment><date>2026-10-26 15:20:18 +0100</date><id>e41d3f6dc8550eda20b6a57c1a42ccba2ca35f50</id><msg>LogShip offer: onboarding package marked optional, "ab" price, travel costs excluded</msg><path><editType>edit</editType><file>app/composables/useOfferSoftwareQuote.ts</file></path><path><editType>edit</editType><file>app/components/offers/SoftwareQuoteModal.vue</file></path><path><editType>edit</editType><file>app/assets/langs/shared.js</file></path><path><editType>edit</editType><file>server/utils/offers/softwareQuotePdf.ts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>server/utils/offers/softwareQuotePdf.ts</affectedPath><affectedPath>app/composables/useOfferSoftwareQuote.ts</affectedPath><affectedPath>app/utils/softwareCatalogDefaults.ts</affectedPath><affectedPath>app/components/offers/SoftwareQuoteModal.vue</affectedPath><affectedPath>app/assets/langs/shared.js</affectedPath><commitId>a08361cbd2c664f0b42f95f54c50f2e7272e01ac</commitId><timestamp>1793025148000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>LogShip offer: editable fee-line name and subtext, package taglines

The monthly software-fee row prints "&lt;package&gt; — monatliche Softwaregebühr"
with the package tagline (catalog Description) and the included volumes as
subtext; name and subtext can be overridden per offer (empty = automatic).
The package card shows the tagline too. Default catalog names are now
Start / Wachstum / Premium / Enterprise with taglines (e.g. Start: "Der
komplette Fulfillment-Kern für Ihren Einstieg."); the live rows were updated
to match. Modal gets tagline, fee-name and fee-subtext fields (de/en/es).
</comment><date>2026-10-26 15:32:28 +0100</date><id>a08361cbd2c664f0b42f95f54c50f2e7272e01ac</id><msg>LogShip offer: editable fee-line name and subtext, package taglines</msg><path><editType>edit</editType><file>app/components/offers/SoftwareQuoteModal.vue</file></path><path><editType>edit</editType><file>app/composables/useOfferSoftwareQuote.ts</file></path><path><editType>edit</editType><file>app/assets/langs/shared.js</file></path><path><editType>edit</editType><file>app/utils/softwareCatalogDefaults.ts</file></path><path><editType>edit</editType><file>server/utils/offers/softwareQuotePdf.ts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>server/api/inouts/quick-rma.post.ts</affectedPath><affectedPath>app/pages/mobile/return.vue</affectedPath><affectedPath>app/pages/integrations/returns-desktop.vue</affectedPath><affectedPath>app/composables/useReturnedQty.ts</affectedPath><commitId>a332853cd2e7e11a943633fdca396c6ac7a54586</commitId><timestamp>1793031078000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Returns: count only received customer returns as returned qty, link receipt lines to reused marketplace RMA lines

The mobile + desktop return pages summed every completed M_RMA on the
shipment as already returned. Marketplace-imported RMAs (Amazon) are
Completed with the expected qty before the parcel arrives, so unprocessed
returns showed Remaining 0/1 and could not be entered (e.g. shipment
536925 / RMA 30614). Shared useReturnedQty composable now counts only
completed/closed customer-return receipts linked via M_RMA_ID.

quick-rma: when reusing such an RMA, receipt lines are matched to RMA
lines by shipment line id (then product, then line number restricted to
unlinked lines) instead of the bare line number, which the Amazon
importer assigns as a counter. Orphan check also accepts closed receipts.
</comment><date>2026-10-26 17:11:18 +0100</date><id>a332853cd2e7e11a943633fdca396c6ac7a54586</id><msg>Returns: count only received customer returns as returned qty, link receipt lines to reused marketplace RMA lines</msg><path><editType>edit</editType><file>server/api/inouts/quick-rma.post.ts</file></path><path><editType>add</editType><file>app/composables/useReturnedQty.ts</file></path><path><editType>edit</editType><file>app/pages/mobile/return.vue</file></path><path><editType>edit</editType><file>app/pages/integrations/returns-desktop.vue</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>server/api/inouts/quick-rma.post.ts</affectedPath><commitId>ba5f7e6b2a5f8f26ee1dd348cc9d7103c25b8c6d</commitId><timestamp>1793031125000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>quick-rma: prefer line-number match over product match for unlinked RMA lines

Keeps the previous behaviour for RMAs created without M_InOutLine_ID
(sales-order return page) when the same product appears on two lines.
</comment><date>2026-10-26 17:12:05 +0100</date><id>ba5f7e6b2a5f8f26ee1dd348cc9d7103c25b8c6d</id><msg>quick-rma: prefer line-number match over product match for unlinked RMA lines</msg><path><editType>edit</editType><file>server/api/inouts/quick-rma.post.ts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>reference/demo-instance/hess/catalog.json</affectedPath><affectedPath>app/pages/materials/products/index.vue</affectedPath><affectedPath>reference/demo-instance/hess/build-catalog.py</affectedPath><affectedPath>reference/demo-instance/create-master-articles.sh</affectedPath><affectedPath>server/utils/productsGrid.ts</affectedPath><affectedPath>app/components/materials/ProductVariantsCard.vue</affectedPath><affectedPath>reference/demo-instance/hess/cattree.json</affectedPath><affectedPath>reference/demo-instance/add-purchase-prices.sh</affectedPath><affectedPath>app/pages/materials/products/[id]/edit.vue</affectedPath><affectedPath>server/api/materials/products/[id]/variants.get.ts</affectedPath><affectedPath>reference/demo-instance/hess/masters.json</affectedPath><affectedPath>reference/demo-instance/set-parent-ids.sh</affectedPath><affectedPath>app/assets/langs/shared.js</affectedPath><commitId>bf69e20f22003bbc73714edec19512152cea83bd</commitId><timestamp>1793034452000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Product variants: master (IsSummary) articles + ParentId grouping, Varianten card and list column; Hess/Livipur demo catalog tooling
</comment><date>2026-10-26 18:07:32 +0100</date><id>bf69e20f22003bbc73714edec19512152cea83bd</id><msg>Product variants: master (IsSummary) articles + ParentId grouping, Varianten card and list column; Hess/Livipur demo catalog tooling</msg><path><editType>add</editType><file>reference/demo-instance/hess/masters.json</file></path><path><editType>add</editType><file>reference/demo-instance/hess/catalog.json</file></path><path><editType>add</editType><file>reference/demo-instance/hess/build-catalog.py</file></path><path><editType>add</editType><file>reference/demo-instance/set-parent-ids.sh</file></path><path><editType>add</editType><file>server/api/materials/products/[id]/variants.get.ts</file></path><path><editType>add</editType><file>app/components/materials/ProductVariantsCard.vue</file></path><path><editType>edit</editType><file>app/pages/materials/products/[id]/edit.vue</file></path><path><editType>edit</editType><file>app/pages/materials/products/index.vue</file></path><path><editType>add</editType><file>reference/demo-instance/hess/cattree.json</file></path><path><editType>add</editType><file>reference/demo-instance/add-purchase-prices.sh</file></path><path><editType>add</editType><file>reference/demo-instance/create-master-articles.sh</file></path><path><editType>edit</editType><file>server/utils/productsGrid.ts</file></path><path><editType>edit</editType><file>app/assets/langs/shared.js</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>reference/ci/README.md</affectedPath><affectedPath>.claude/rules/materials/product-variants.md</affectedPath><affectedPath>reference/demo-instance/README.md</affectedPath><commitId>c1fc1c30ccab14645c0baf48a5c72ea6986ce862</commitId><timestamp>1793034546000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Docs: product variant model recipe, Hess demo tooling, Jenkins trigger crumb note
</comment><date>2026-10-26 18:09:06 +0100</date><id>c1fc1c30ccab14645c0baf48a5c72ea6986ce862</id><msg>Docs: product variant model recipe, Hess demo tooling, Jenkins trigger crumb note</msg><path><editType>edit</editType><file>reference/ci/README.md</file></path><path><editType>add</editType><file>reference/demo-instance/README.md</file></path><path><editType>add</editType><file>.claude/rules/materials/product-variants.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>server/api/materials/products/[id]/variants.get.ts</affectedPath><affectedPath>server/utils/productsGrid.ts</affectedPath><commitId>106bde8bfced6763eb4dbed5eab19ca36e10b69d</commitId><timestamp>1793035132000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Variants: read ParentId under its REST key (parentId)
</comment><date>2026-10-26 18:18:52 +0100</date><id>106bde8bfced6763eb4dbed5eab19ca36e10b69d</id><msg>Variants: read ParentId under its REST key (parentId)</msg><path><editType>edit</editType><file>server/api/materials/products/[id]/variants.get.ts</file></path><path><editType>edit</editType><file>server/utils/productsGrid.ts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>reference/demo-instance/hess/build-catalog.py</affectedPath><affectedPath>reference/demo-instance/hess/catalog.json</affectedPath><commitId>dfef60a31ee23e7beb1ffa4d485ca6956e603d06</commitId><timestamp>1793035243000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Hess catalog: distinct variation names (append missing attribute values)
</comment><date>2026-10-26 18:20:43 +0100</date><id>dfef60a31ee23e7beb1ffa4d485ca6956e603d06</id><msg>Hess catalog: distinct variation names (append missing attribute values)</msg><path><editType>edit</editType><file>reference/demo-instance/hess/build-catalog.py</file></path><path><editType>edit</editType><file>reference/demo-instance/hess/catalog.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.claude/rules/nuxt/ui-components.md</affectedPath><affectedPath>app/components/AgGrid/Users/AgSecurityKeyActions.vue</affectedPath><affectedPath>app/components/users/SecurityKeyEnrolModal.vue</affectedPath><affectedPath>app/components/users/SecurityKeyRevokeModal.vue</affectedPath><affectedPath>.claude/rules/auth/webauthn-security-keys.md</affectedPath><affectedPath>app/pages/users/security-keys/index.vue</affectedPath><affectedPath>app/composables/useSecurityKeyFormat.ts</affectedPath><affectedPath>app/components/AgGrid/Users/AgSecurityKeyUser.vue</affectedPath><affectedPath>app/components/AgGrid.vue</affectedPath><affectedPath>app/components/users/SecurityKeys.vue</affectedPath><affectedPath>app/assets/langs/shared.js</affectedPath><affectedPath>app/composables/useWebAuthn.ts</affectedPath><commitId>b6f8902e5a86439a36af8f88c9be9e31cf5fff70</commitId><timestamp>1793045605000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Security keys: Nuxt UI enrol wizard + revoke dialog, working grid actions, phone layout

- /users/security-keys: real Vue cell renderers (user + actions) with handlers via
  cellRendererParams — the shared AgGrid cellClick is selection-changed and never fired the
  Revoke/user-link in raw-HTML cells; 44px rows, stats, search, UIcon icons
- Phone (&lt; 900px): grouped employee cards, sticky "Enrol key" button, full-screen wizard with
  NFC/USB hints per device (Android/iOS/Windows/macOS/app)
- Shared UsersSecurityKeyEnrolModal (details → tap → done/error, UForm validation, employee
  picker with key counts, auto "YubiKey &lt;first name&gt;", cancel aborts at every stage) and
  UsersSecurityKeyRevokeModal (key/user/dates, last-key warning, toasts) used by the overview,
  the profile panel and the user-edit panel; UsersSecurityKeys.vue rebuilt on them
- useSecurityKeyFormat (relative dates, transports, initials, WebAuthn error texts),
  useWebAuthn.cancelCeremony/isNativeApp + register({ isCancelled }), AgGrid rowHeight prop
- Translations en/de/es (+ ne fallback); recipes: webauthn UI, icon + Tailwind colour gaps
</comment><date>2026-10-26 21:13:25 +0100</date><id>b6f8902e5a86439a36af8f88c9be9e31cf5fff70</id><msg>Security keys: Nuxt UI enrol wizard + revoke dialog, working grid actions, phone layout</msg><path><editType>add</editType><file>app/components/users/SecurityKeyEnrolModal.vue</file></path><path><editType>edit</editType><file>app/pages/users/security-keys/index.vue</file></path><path><editType>edit</editType><file>app/assets/langs/shared.js</file></path><path><editType>edit</editType><file>app/components/AgGrid.vue</file></path><path><editType>edit</editType><file>app/composables/useWebAuthn.ts</file></path><path><editType>add</editType><file>app/components/users/SecurityKeyRevokeModal.vue</file></path><path><editType>add</editType><file>app/composables/useSecurityKeyFormat.ts</file></path><path><editType>edit</editType><file>.claude/rules/auth/webauthn-security-keys.md</file></path><path><editType>add</editType><file>app/components/AgGrid/Users/AgSecurityKeyUser.vue</file></path><path><editType>add</editType><file>app/components/AgGrid/Users/AgSecurityKeyActions.vue</file></path><path><editType>edit</editType><file>.claude/rules/nuxt/ui-components.md</file></path><path><editType>edit</editType><file>app/components/users/SecurityKeys.vue</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.claude/rules/nuxt/dev-server-troubleshooting.md</affectedPath><commitId>9371c6664d11ca13d1295dc13b1dd8e845ebdbf4</commitId><timestamp>1793045666000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Recipe: duplicate nuxt dev server symptoms (client never mounts, stale style module 404)
</comment><date>2026-10-26 21:14:26 +0100</date><id>9371c6664d11ca13d1295dc13b1dd8e845ebdbf4</id><msg>Recipe: duplicate nuxt dev server symptoms (client never mounts, stale style module 404)</msg><path><editType>edit</editType><file>.claude/rules/nuxt/dev-server-troubleshooting.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>reference/demo-instance/README.md</affectedPath><commitId>c03ffecdc39c2fb48e278b6fed453fb530fd8237</commitId><timestamp>1793046463000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Docs: Hess as second 3PL on the demo instance (restricted admin role, merchant onboarding gotchas)
</comment><date>2026-10-26 21:27:43 +0100</date><id>c03ffecdc39c2fb48e278b6fed453fb530fd8237</id><msg>Docs: Hess as second 3PL on the demo instance (restricted admin role, merchant onboarding gotchas)</msg><path><editType>edit</editType><file>reference/demo-instance/README.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName><id>info</id></culprit></freeStyleBuild>