<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>642</buildNumber><marked><SHA1>860b3f6d10c00e06580690356df286f6129ac7f1</SHA1><branch><SHA1>860b3f6d10c00e06580690356df286f6129ac7f1</SHA1><name>refs/remotes/origin/dev</name></branch></marked><revision><SHA1>860b3f6d10c00e06580690356df286f6129ac7f1</SHA1><branch><SHA1>860b3f6d10c00e06580690356df286f6129ac7f1</SHA1><name>refs/remotes/origin/dev</name></branch></revision></refsremotesorigindev></buildsByBranchName><lastBuiltRevision><SHA1>860b3f6d10c00e06580690356df286f6129ac7f1</SHA1><branch><SHA1>860b3f6d10c00e06580690356df286f6129ac7f1</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/642/artifact</artifactsUrl><changesUrl>https://jenkins.younex.de/job/build-logship-frontend/changes</changesUrl><displayUrl>https://jenkins.younex.de/job/build-logship-frontend/642/</displayUrl><testsUrl>https://jenkins.younex.de/job/build-logship-frontend/642/testReport</testsUrl></action><building>false</building><displayName>#642</displayName><duration>62171</duration><estimatedDuration>57393</estimatedDuration><fullDisplayName>build-logship-frontend #642</fullDisplayName><id>642</id><inProgress>false</inProgress><keepLog>false</keepLog><number>642</number><queueId>5253</queueId><result>SUCCESS</result><timestamp>1781222400933</timestamp><url>https://jenkins.younex.de/job/build-logship-frontend/642/</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>d4225a17e2f7a04c2b1ae4b56fd7ee7a5efc4d23</commitId><timestamp>1781161581000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>add biometric to android native
</comment><date>2026-06-11 09:06:21 +0200</date><id>d4225a17e2f7a04c2b1ae4b56fd7ee7a5efc4d23</id><msg>add biometric to android native</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>nuxt.config.ts</affectedPath><affectedPath>app/pages/mobile/index.vue</affectedPath><commitId>3d98d54f7d88326419b81c755704d9d10798c1ac</commitId><timestamp>1781162512000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Fix stale dashboard counts + app pointing at dev Strapi host

Dashboard: the mobile index is keep-alive'd, so the openso-count/shipped
useFetch never re-ran on revisit (stale counts). Capture refresh and re-fetch
on page re-activation and on app foreground.

App Strapi host: the bundled app baked config.public.strapi from the local
.env (a dev host, unreachable from devices) while /api goes to prod — breaking
product thumbnails and media uploads. In the app build, strapi base/token now
follow apiBase (CAP_STRAPI_BASE/CAP_STRAPI_TOKEN override), so /files-api and
/media-api resolve on the same prod host as the API. Web build unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</comment><date>2026-06-11 09:21:52 +0200</date><id>3d98d54f7d88326419b81c755704d9d10798c1ac</id><msg>Fix stale dashboard counts + app pointing at dev Strapi host</msg><path><editType>edit</editType><file>nuxt.config.ts</file></path><path><editType>edit</editType><file>app/pages/mobile/index.vue</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>package.json</affectedPath><commitId>e3623b1e780125b9d34da31e3993e4010320082a</commitId><timestamp>1781162686000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>build:app uses .env-prod (production app build)

The bundled app is a production app (apiBase = app.logship.de), so build it
with the prod env. This bakes the PROD Strapi token (dev≠prod), fixing media
uploads, and aligns all public config to prod. For a dev app build, override
the env/CAP_* vars.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</comment><date>2026-06-11 09:24:46 +0200</date><id>e3623b1e780125b9d34da31e3993e4010320082a</id><msg>build:app uses .env-prod (production app build)</msg><path><editType>edit</editType><file>package.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.gitignore</affectedPath><affectedPath>android/app/capacitor.build.gradle</affectedPath><affectedPath>app/composables/useChatSocket.ts</affectedPath><affectedPath>server/utils/fcmNotifier.ts</affectedPath><affectedPath>android/app/google-services.json</affectedPath><affectedPath>server/api/push/register-native.post.ts</affectedPath><affectedPath>server/api/chat/voice.post.ts</affectedPath><affectedPath>android/capacitor.settings.gradle</affectedPath><affectedPath>android/update-files/version.json</affectedPath><affectedPath>android/app/build.gradle</affectedPath><affectedPath>nuxt.config.ts</affectedPath><affectedPath>server/utils/fcmDb.ts</affectedPath><affectedPath>package.json</affectedPath><affectedPath>server/routes/chat/ws.ts</affectedPath><affectedPath>app/plugins/20.native-push.client.ts</affectedPath><affectedPath>.env-prod</affectedPath><commitId>cd3e4c34a3ba58e56b3ad45158f0e047b55ed0e9</commitId><timestamp>1781166611000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Integrate Android Native Push Messaging on Chat with Firebase
</comment><date>2026-06-11 10:30:11 +0200</date><id>cd3e4c34a3ba58e56b3ad45158f0e047b55ed0e9</id><msg>Integrate Android Native Push Messaging on Chat with Firebase</msg><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>.env-prod</file></path><path><editType>add</editType><file>android/app/google-services.json</file></path><path><editType>add</editType><file>app/plugins/20.native-push.client.ts</file></path><path><editType>edit</editType><file>android/update-files/version.json</file></path><path><editType>add</editType><file>server/utils/fcmNotifier.ts</file></path><path><editType>edit</editType><file>android/app/build.gradle</file></path><path><editType>edit</editType><file>package.json</file></path><path><editType>edit</editType><file>app/composables/useChatSocket.ts</file></path><path><editType>edit</editType><file>android/app/capacitor.build.gradle</file></path><path><editType>edit</editType><file>nuxt.config.ts</file></path><path><editType>add</editType><file>server/utils/fcmDb.ts</file></path><path><editType>edit</editType><file>server/api/chat/voice.post.ts</file></path><path><editType>add</editType><file>server/api/push/register-native.post.ts</file></path><path><editType>edit</editType><file>android/capacitor.settings.gradle</file></path><path><editType>edit</editType><file>server/routes/chat/ws.ts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app/pages/mobile/index.vue</affectedPath><commitId>d0ccdc3e4e26e7ea789d8b3813f0acd875ee8be8</commitId><timestamp>1781167451000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Add chat entry point to the mobile dashboard

The chat window (/chat) was bundled into the app but unreachable — the desktop
&lt;ChatBadge&gt; lives in navbars the /mobile/* pages don't use, and the mobile
layout has no shared nav. Add the chat entry to the mobile dashboard:
- &lt;ChatBadge&gt; in the header (live unread badge; taps → /chat on mobile),
- a gated "Chat" tile in the task grid for discoverability.

Both reuse useChatEligible/useChatUnread (no new state, no server change) and
self-hide for non-staff / when chat is disabled.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</comment><date>2026-06-11 10:44:11 +0200</date><id>d0ccdc3e4e26e7ea789d8b3813f0acd875ee8be8</id><msg>Add chat entry point to the mobile dashboard</msg><path><editType>edit</editType><file>app/pages/mobile/index.vue</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app/pages/mobile/index.vue</affectedPath><commitId>a95497c94c62d0e7c8cd1c8c5730f0da32f48d7e</commitId><timestamp>1781169743000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Restructure + restyle the mobile dashboard header (Option A)

Modernize the cramped header: replace the centered "LogShip Mobile" title and
the 4-button cluster with a clean profile-driven bar.

- Left: gradient avatar (user initials) + first name + warehouse/org; tapping
  opens the profile sheet.
- Right: only the two task actions — scanner toggle and chat (with a live red
  unread-count badge).
- Theme toggle + logout move into the profile sheet (UModal, now titled
  "Profil"), decluttering the bar.

Chat unread badge reuses useChatUnread; the chat button is gated by
useChatEligible (hidden for non-staff). No server change.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</comment><date>2026-06-11 11:22:23 +0200</date><id>a95497c94c62d0e7c8cd1c8c5730f0da32f48d7e</id><msg>Restructure + restyle the mobile dashboard header (Option A)</msg><path><editType>edit</editType><file>app/pages/mobile/index.vue</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>android/update-files/version.json</affectedPath><affectedPath>android/app/build.gradle</affectedPath><commitId>ce4a701251b6e94be5f0a1bf251e4cc969852d08</commitId><timestamp>1781170461000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>changes to mobile header
</comment><date>2026-06-11 11:34:21 +0200</date><id>ce4a701251b6e94be5f0a1bf251e4cc969852d08</id><msg>changes to mobile header</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/routes/chat/ws.ts</affectedPath><affectedPath>server/api/chat/voice.post.ts</affectedPath><commitId>73dc5819a3a0a6870053a356ebd2ed03ba392914</commitId><timestamp>1781170694000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>chat: push to all devices, not only when the user is fully offline

Presence is per-USER (online if ANY socket is connected), but the FCM/web-push
fallback was gated on the whole user being offline. With two devices on one
login, a foreground device kept the user "online", so the server skipped the
push entirely and the backgrounded 2nd device got nothing.

Send the native FCM to ALL the recipient's devices on every message, regardless
of presence. Foreground devices receive it silently (no pushNotificationReceived
handler → no tray; the live socket already rendered it), so there's no
double-notify; backgrounded/killed devices now get the tray notification.
Web push stays offline-only (an active browser tab already showed it live).

Applied in both the text (ws.ts) and voice-note (voice.post.ts) paths.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</comment><date>2026-06-11 11:38:14 +0200</date><id>73dc5819a3a0a6870053a356ebd2ed03ba392914</id><msg>chat: push to all devices, not only when the user is fully offline</msg><path><editType>edit</editType><file>server/routes/chat/ws.ts</file></path><path><editType>edit</editType><file>server/api/chat/voice.post.ts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>android/app/src/main/AndroidManifest.xml</affectedPath><affectedPath>android/app/src/main/res/drawable/ic_stat_notify.xml</affectedPath><affectedPath>app/composables/useChatSocket.ts</affectedPath><affectedPath>server/utils/fcmNotifier.ts</affectedPath><affectedPath>android/app/src/main/java/com/logship/mobile/MainActivity.java</affectedPath><commitId>346a27eec2e6129c0607b7b41c4805ca4eb20e59</commitId><timestamp>1781172054000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Fix background chat push not displaying on Android + in-app toast deep-link

Background FCM pushes played a sound but showed nothing in the tray/heads-up:
the 'chat' notification channel was only created from JS (never runs on a
killed app), with no small icon and no manifest fallback — so Android 8+
silently dropped the notification (posted to a non-existent channel).

- MainActivity: create the high-importance 'chat' channel NATIVELY in onCreate
  so it always exists (persists when killed) → heads-up + shade.
- ic_stat_notify.xml: a proper white notification small icon.
- AndroidManifest: firebase default_notification_icon + default_notification_channel_id='chat'.
- fcmNotifier: log sends (no-credential / no-tokens / sent N/M / per-token error)
  so we can confirm pushes are actually sent vs a display problem.
- useChatSocket: the in-app toast's "open" now navigates to /chat on mobile
  (it previously only toggled the desktop drawer, which doesn't render on mobile).

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</comment><date>2026-06-11 12:00:54 +0200</date><id>346a27eec2e6129c0607b7b41c4805ca4eb20e59</id><msg>Fix background chat push not displaying on Android + in-app toast deep-link</msg><path><editType>edit</editType><file>server/utils/fcmNotifier.ts</file></path><path><editType>add</editType><file>android/app/src/main/res/drawable/ic_stat_notify.xml</file></path><path><editType>edit</editType><file>android/app/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>app/composables/useChatSocket.ts</file></path><path><editType>edit</editType><file>android/app/src/main/java/com/logship/mobile/MainActivity.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>android/update-files/version.json</affectedPath><affectedPath>android/app/build.gradle</affectedPath><commitId>96c1a8ae05278cee2c12cee066e03ea59634a5f7</commitId><timestamp>1781172157000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Fix Android OS Level notification
</comment><date>2026-06-11 12:02:37 +0200</date><id>96c1a8ae05278cee2c12cee066e03ea59634a5f7</id><msg>Fix Android OS Level notification</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/chat/voice/[id].get.ts</affectedPath><affectedPath>app/components/chat/Drawer.vue</affectedPath><affectedPath>app/pages/chat.vue</affectedPath><affectedPath>app/composables/useImageDownscale.ts</affectedPath><affectedPath>server/api/chat/image/[id].get.ts</affectedPath><affectedPath>server/utils/chatDb.ts</affectedPath><affectedPath>app/composables/useChatMedia.ts</affectedPath><affectedPath>app/composables/useChat.ts</affectedPath><affectedPath>server/api/chat/image.post.ts</affectedPath><commitId>3b24faa650308e06fc6dd652371f416b59b91483</commitId><timestamp>1781176390000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>chat: image sharing (send + view photos), mirroring the voice-note pattern

Adds image messages to the staff chat, stored self-contained in chat.db like
voice notes (no Strapi/iDempiere coupling):

- chatDb: image_notes table + insert/get/link fns + retention sweep.
- POST /api/chat/image: multipart upload → image_notes + a message carrying
  meta {kind:'image', imageId}, fanned out over the socket + pushed (📷 Bild
  label). Type guard (jpeg/png/webp/gif) + 8MB cap. No post-processing.
- GET /api/chat/image/:id: serves the blob, party-authorized like the voice route.
- useChat.sendImage (optimistic localUrl preview) + a shared downscaleImage util
  (≤1600px / q0.82, GIFs passed through) so blobs stay small in sqlite.
- Drawer.vue + pages/chat.vue (kept in sync): a 📷 composer button (hidden
  &lt;input accept=image/*&gt; → Android camera/gallery), an image bubble (thumbnail
  opens full-size), and image CSS.

Also fixes media loading in the bundled app: &lt;img&gt;/&lt;audio&gt; element loads bypass
the fetch wrapper, so chatMediaUrl() makes voice/image URLs absolute + token-bearing
in the app, and the voice/image serve routes accept ?access_token= as an auth
fallback (web is unchanged — relative + cookie). This also makes VOICE playback
work in the app for the first time.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</comment><date>2026-06-11 13:13:10 +0200</date><id>3b24faa650308e06fc6dd652371f416b59b91483</id><msg>chat: image sharing (send + view photos), mirroring the voice-note pattern</msg><path><editType>edit</editType><file>app/composables/useChat.ts</file></path><path><editType>edit</editType><file>app/pages/chat.vue</file></path><path><editType>add</editType><file>server/api/chat/image/[id].get.ts</file></path><path><editType>add</editType><file>server/api/chat/image.post.ts</file></path><path><editType>edit</editType><file>server/api/chat/voice/[id].get.ts</file></path><path><editType>edit</editType><file>app/components/chat/Drawer.vue</file></path><path><editType>edit</editType><file>server/utils/chatDb.ts</file></path><path><editType>add</editType><file>app/composables/useChatMedia.ts</file></path><path><editType>add</editType><file>app/composables/useImageDownscale.ts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>android/update-files/version.json</affectedPath><affectedPath>android/app/build.gradle</affectedPath><affectedPath>app/components/chat/Drawer.vue</affectedPath><affectedPath>app/pages/chat.vue</affectedPath><affectedPath>server/api/chat/image/[id].get.ts</affectedPath><affectedPath>server/utils/chatDb.ts</affectedPath><affectedPath>app/composables/useChat.ts</affectedPath><affectedPath>server/api/chat/image.post.ts</affectedPath><commitId>10feacd40f1f4e945f057bbeb44cd9972da8d3d2</commitId><timestamp>1781182062000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>add image handling and vice voice german transcritpion
</comment><date>2026-06-11 14:47:42 +0200</date><id>10feacd40f1f4e945f057bbeb44cd9972da8d3d2</id><msg>add image handling and vice voice german transcritpion</msg><path><editType>edit</editType><file>android/update-files/version.json</file></path><path><editType>edit</editType><file>app/composables/useChat.ts</file></path><path><editType>edit</editType><file>server/utils/chatDb.ts</file></path><path><editType>edit</editType><file>app/pages/chat.vue</file></path><path><editType>delete</editType><file>server/api/chat/image/[id].get.ts</file></path><path><editType>edit</editType><file>app/components/chat/Drawer.vue</file></path><path><editType>edit</editType><file>android/app/build.gradle</file></path><path><editType>edit</editType><file>server/api/chat/image.post.ts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>android/app/build.gradle</affectedPath><affectedPath>android/update-files/version.json</affectedPath><affectedPath>server/api/partners/agreements/destroy.delete.ts</affectedPath><affectedPath>app/components/partners/PartnerForm.vue</affectedPath><affectedPath>app/components/partners/PartnerAgreementNotesEditor.vue</affectedPath><affectedPath>server/api/partners/agreements/update.put.ts</affectedPath><affectedPath>app/components/RichTextEditor.vue</affectedPath><affectedPath>reference/recipes.md</affectedPath><affectedPath>server/api/partners/agreements/store.post.ts</affectedPath><affectedPath>server/api/partners/agreements/index.get.ts</affectedPath><affectedPath>app/assets/langs/shared.js</affectedPath><commitId>8eb323432715780fe53e768237f38112b4c77756</commitId><timestamp>1781186917000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>add agreement notes to bpartner
</comment><date>2026-06-11 16:08:37 +0200</date><id>8eb323432715780fe53e768237f38112b4c77756</id><msg>add agreement notes to bpartner</msg><path><editType>add</editType><file>app/components/RichTextEditor.vue</file></path><path><editType>edit</editType><file>app/components/partners/PartnerForm.vue</file></path><path><editType>edit</editType><file>reference/recipes.md</file></path><path><editType>add</editType><file>server/api/partners/agreements/store.post.ts</file></path><path><editType>edit</editType><file>android/app/build.gradle</file></path><path><editType>add</editType><file>server/api/partners/agreements/destroy.delete.ts</file></path><path><editType>add</editType><file>server/api/partners/agreements/index.get.ts</file></path><path><editType>edit</editType><file>android/update-files/version.json</file></path><path><editType>add</editType><file>app/components/partners/PartnerAgreementNotesEditor.vue</file></path><path><editType>edit</editType><file>app/assets/langs/shared.js</file></path><path><editType>add</editType><file>server/api/partners/agreements/update.put.ts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app/components/RichTextEditor.vue</affectedPath><affectedPath>nuxt.config.ts</affectedPath><affectedPath>app/components/partners/PartnerAgreementNotesEditor.vue</affectedPath><affectedPath>server/api/partners/agreements/store.post.ts</affectedPath><affectedPath>app/assets/langs/shared.js</affectedPath><affectedPath>server/api/partners/agreements/update.put.ts</affectedPath><commitId>e0259e37b18917e174f7d0436a1fca990a7106da</commitId><timestamp>1781188747000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>add agreement notes to bpartner
</comment><date>2026-06-11 16:39:07 +0200</date><id>e0259e37b18917e174f7d0436a1fca990a7106da</id><msg>add agreement notes to bpartner</msg><path><editType>edit</editType><file>app/assets/langs/shared.js</file></path><path><editType>edit</editType><file>app/components/RichTextEditor.vue</file></path><path><editType>edit</editType><file>nuxt.config.ts</file></path><path><editType>edit</editType><file>server/api/partners/agreements/store.post.ts</file></path><path><editType>edit</editType><file>app/components/partners/PartnerAgreementNotesEditor.vue</file></path><path><editType>edit</editType><file>server/api/partners/agreements/update.put.ts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app/components/dashboard/PicklistGenerateModal.vue</affectedPath><affectedPath>app/composables/usePicklistPdf.ts</affectedPath><commitId>860b3f6d10c00e06580690356df286f6129ac7f1</commitId><timestamp>1781200468000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>add shipment printing to dashboard picklist card
</comment><date>2026-06-11 19:54:28 +0200</date><id>860b3f6d10c00e06580690356df286f6129ac7f1</id><msg>add shipment printing to dashboard picklist card</msg><path><editType>edit</editType><file>app/components/dashboard/PicklistGenerateModal.vue</file></path><path><editType>edit</editType><file>app/composables/usePicklistPdf.ts</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName><id>info</id></culprit></freeStyleBuild>