<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>775</buildNumber><marked><SHA1>2146eb6cda626967bfe67e1c156bc25e80917dc9</SHA1><branch><SHA1>2146eb6cda626967bfe67e1c156bc25e80917dc9</SHA1><name>refs/remotes/origin/dev</name></branch></marked><revision><SHA1>2146eb6cda626967bfe67e1c156bc25e80917dc9</SHA1><branch><SHA1>2146eb6cda626967bfe67e1c156bc25e80917dc9</SHA1><name>refs/remotes/origin/dev</name></branch></revision></refsremotesorigindev></buildsByBranchName><lastBuiltRevision><SHA1>2146eb6cda626967bfe67e1c156bc25e80917dc9</SHA1><branch><SHA1>2146eb6cda626967bfe67e1c156bc25e80917dc9</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'></action><building>false</building><displayName>#775</displayName><duration>103520</duration><estimatedDuration>60620</estimatedDuration><fullDisplayName>build-logship-frontend #775</fullDisplayName><id>775</id><inProgress>false</inProgress><keepLog>false</keepLog><number>775</number><queueId>5861</queueId><result>SUCCESS</result><timestamp>1792713600765</timestamp><url>https://jenkins.younex.de/job/build-logship-frontend/775/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>deploy/pm2-root.service.d/override.conf</affectedPath><affectedPath>reference/ci/deploy-production.sh</affectedPath><affectedPath>nuxt.config.ts</affectedPath><affectedPath>ecosystem.config.cjs</affectedPath><affectedPath>package-lock.json</affectedPath><affectedPath>.claude/rules/nuxt/dependency-upgrades.md</affectedPath><affectedPath>package.json</affectedPath><commitId>c45b03221311f76ad94f5002ccebe107050ee636</commitId><timestamp>1792649418000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Dependencies: upgrade pass (npm audit 105 → 17, 0 critical) + prod Node 22.22.3

- Nuxt 4.4.7 → 4.6.2 (Vite 8.3.5, Vue 3.5.44, @nuxt/ui 4.12.0, @sentry/nuxt 10.76.2), amCharts 5.21.3,
  Capacitor 8.5.3 (android CVE fix, needs an APK release), vue-pdf 2.2.1 (pdfjs RCE fix), quagga2,
  firebase-admin, form-data, imapflow, fast-xml-parser, mysql2, pg, sass, dompurify, bwip-js, three 0.186
- Low-risk majors: nodemailer 10 (all transports are localhost:25 with TLS checks off), sharp 0.35
  (libvips CVEs), better-sqlite3 13 (N-API prebuilds), sqlite3 6, @simplewebauthn 14, @elastic/elasticsearch 9
- xlsx: npm 0.18.5 (unfixable advisories) → SheetJS CDN tarball 0.20.3 (same API, write path only)
- Removed unused @nuxt/image (pulled vulnerable ipx) and ndarray-pixels; alga-css pinned exactly to
  1.0.0-beta-51 (npm audit fix would move it to the foreign 1.0.0-wood-* line)
- nuxt.config: vite.build.cssMinify = 'esbuild' — Vite 8's lightningcss rejects an invalid selector in
  bulma-extensions.min.css and fails the build
- Lockfile regenerated from scratch (prod installs with npm ci)
- Prod Node v22.14.0 → v22.22.3 (Nuxt 4.6 engine floor): deploy-production.sh, ecosystem.config.cjs,
  pm2 systemd drop-in; node pre-installed on the host via nvm, deploy script flips the default alias
- Recipe .claude/rules/nuxt/dependency-upgrades.md
- Held back: @sentry/nuxt 11, pdfmake 0.3, @anthropic-ai/sdk 1.x (separate tasks)
</comment><date>2026-10-22 08:10:18 +0200</date><id>c45b03221311f76ad94f5002ccebe107050ee636</id><msg>Dependencies: upgrade pass (npm audit 105 → 17, 0 critical) + prod Node 22.22.3</msg><path><editType>add</editType><file>.claude/rules/nuxt/dependency-upgrades.md</file></path><path><editType>edit</editType><file>deploy/pm2-root.service.d/override.conf</file></path><path><editType>edit</editType><file>reference/ci/deploy-production.sh</file></path><path><editType>edit</editType><file>ecosystem.config.cjs</file></path><path><editType>edit</editType><file>package-lock.json</file></path><path><editType>edit</editType><file>package.json</file></path><path><editType>edit</editType><file>nuxt.config.ts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>server/api/accounting/settlement-exports/index.post.ts</affectedPath><affectedPath>app/composables/useSettlementExportLog.ts</affectedPath><affectedPath>app/components/accounting/SettlementGridFilters.vue</affectedPath><affectedPath>app/components/accounting/SettlementLexofficeActions.vue</affectedPath><affectedPath>app/pages/accounting/amazon-settlements.vue</affectedPath><affectedPath>.claude/rules/accounting/lexoffice.md</affectedPath><affectedPath>app/composables/useLexofficeSettlementExport.ts</affectedPath><affectedPath>app/components/accounting/SettlementPeriodList.vue</affectedPath><affectedPath>app/utils/settlementGridFilter.ts</affectedPath><affectedPath>app/components/AgGrid/Accounting/AgLexofficeSyncStatus.vue</affectedPath><affectedPath>server/api/accounting/settlement-exports/reset.post.ts</affectedPath><affectedPath>app/pages/accounting/ebay-settlements.vue</affectedPath><affectedPath>server/utils/settlementExportLog.ts</affectedPath><affectedPath>server/api/accounting/settlement-exports/index.get.ts</affectedPath><affectedPath>app/components/accounting/LexofficeHintsPanel.vue</affectedPath><commitId>0253f6b9d29b056fc6eabf2fdcc0db355ace13dc</commitId><timestamp>1792650145000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Settlements: per-period lexoffice export log (data/settlement-exports.db) — fee/Ads/adjustment/unmatched/payout rows get a CSV status, period list shows offen/teilweise/exportiert, default ticks = not-yet-exported periods, duplicate-export confirm, period-level reset; CSV filter no longer drops rows without an order marker
</comment><date>2026-10-22 08:22:25 +0200</date><id>0253f6b9d29b056fc6eabf2fdcc0db355ace13dc</id><msg>Settlements: per-period lexoffice export log (data/settlement-exports.db) — fee/Ads/adjustment/unmatched/payout rows get a CSV status, period list shows offen/teilweise/exportiert, default ticks = not-yet-exported periods, duplicate-export confirm, period-level reset; CSV filter no longer drops rows without an order marker</msg><path><editType>add</editType><file>server/api/accounting/settlement-exports/index.post.ts</file></path><path><editType>edit</editType><file>app/composables/useLexofficeSettlementExport.ts</file></path><path><editType>add</editType><file>app/composables/useSettlementExportLog.ts</file></path><path><editType>add</editType><file>server/utils/settlementExportLog.ts</file></path><path><editType>edit</editType><file>app/utils/settlementGridFilter.ts</file></path><path><editType>edit</editType><file>.claude/rules/accounting/lexoffice.md</file></path><path><editType>edit</editType><file>app/components/accounting/SettlementLexofficeActions.vue</file></path><path><editType>edit</editType><file>app/pages/accounting/amazon-settlements.vue</file></path><path><editType>edit</editType><file>app/components/AgGrid/Accounting/AgLexofficeSyncStatus.vue</file></path><path><editType>add</editType><file>server/api/accounting/settlement-exports/reset.post.ts</file></path><path><editType>add</editType><file>server/api/accounting/settlement-exports/index.get.ts</file></path><path><editType>edit</editType><file>app/components/accounting/SettlementGridFilters.vue</file></path><path><editType>edit</editType><file>app/components/accounting/LexofficeHintsPanel.vue</file></path><path><editType>edit</editType><file>app/components/accounting/SettlementPeriodList.vue</file></path><path><editType>edit</editType><file>app/pages/accounting/ebay-settlements.vue</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>reference/ci/deploy-production.sh</affectedPath><commitId>91eaac695777f3eb9234ef9b642a052d98ad935c</commitId><timestamp>1792650178000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Deploy script: keep data/settlement-exports.db (settlement export log) across deploys
</comment><date>2026-10-22 08:22:58 +0200</date><id>91eaac695777f3eb9234ef9b642a052d98ad935c</id><msg>Deploy script: keep data/settlement-exports.db (settlement export log) across deploys</msg><path><editType>edit</editType><file>reference/ci/deploy-production.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>server/utils/leads/leadChat.ts</affectedPath><affectedPath>.env</affectedPath><affectedPath>server/utils/leads/leadAssessment.ts</affectedPath><affectedPath>nuxt.config.ts</affectedPath><affectedPath>.claude/rules/leads/ai-assessment.md</affectedPath><affectedPath>.env-prod</affectedPath><commitId>2898324c5ffdee9b00cd4ff5085aa3c52ea705da</commitId><timestamp>1792668268000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Lead KI-Konsole: answer limit 8000 → 32000 output tokens (ANTHROPIC_CHAT_MAX_TOKENS, 1000–128000) + auto-continuation (up to 2 rounds) when an answer still hits max_tokens; 10 min client timeout
</comment><date>2026-10-22 13:24:28 +0200</date><id>2898324c5ffdee9b00cd4ff5085aa3c52ea705da</id><msg>Lead KI-Konsole: answer limit 8000 → 32000 output tokens (ANTHROPIC_CHAT_MAX_TOKENS, 1000–128000) + auto-continuation (up to 2 rounds) when an answer still hits max_tokens; 10 min client timeout</msg><path><editType>edit</editType><file>.claude/rules/leads/ai-assessment.md</file></path><path><editType>edit</editType><file>.env</file></path><path><editType>edit</editType><file>nuxt.config.ts</file></path><path><editType>edit</editType><file>server/utils/leads/leadAssessment.ts</file></path><path><editType>edit</editType><file>server/utils/leads/leadChat.ts</file></path><path><editType>edit</editType><file>.env-prod</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app/pages/users/leads/index.vue</affectedPath><affectedPath>app/components/admin/LeadForm.vue</affectedPath><affectedPath>app/composables/useIsMobile.ts</affectedPath><affectedPath>app/pages/users/leads/[id]/edit.vue</affectedPath><affectedPath>app/components/leads/CardList.vue</affectedPath><affectedPath>.claude/rules/leads/crm-qualification.md</affectedPath><affectedPath>app/assets/langs/shared.js</affectedPath><commitId>2146eb6cda626967bfe67e1c156bc25e80917dc9</commitId><timestamp>1792668268000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Leads on phones: card list (name, company, status, stars, follow-up, offer/contract, phone + dial, e-mail, URL) replaces the grid ≤ 768 px with search/sort/filter toggle; lead page gets collapsible form + side cards, 2-column CTA grid, fixed back · call · save bar; fix global aside rule hiding the side column on mobile
</comment><date>2026-10-22 13:24:28 +0200</date><id>2146eb6cda626967bfe67e1c156bc25e80917dc9</id><msg>Leads on phones: card list (name, company, status, stars, follow-up, offer/contract, phone + dial, e-mail, URL) replaces the grid ≤ 768 px with search/sort/filter toggle; lead page gets collapsible form + side cards, 2-column CTA grid, fixed back · call · save bar; fix global aside rule hiding the side column on mobile</msg><path><editType>add</editType><file>app/components/leads/CardList.vue</file></path><path><editType>add</editType><file>app/composables/useIsMobile.ts</file></path><path><editType>edit</editType><file>app/pages/users/leads/index.vue</file></path><path><editType>edit</editType><file>app/assets/langs/shared.js</file></path><path><editType>edit</editType><file>app/components/admin/LeadForm.vue</file></path><path><editType>edit</editType><file>app/pages/users/leads/[id]/edit.vue</file></path><path><editType>edit</editType><file>.claude/rules/leads/crm-qualification.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit></freeStyleBuild>