{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.TimerTrigger$TimerTriggerCause",
          "shortDescription" : "Started by timer"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/dev" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 785,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "df668409fbd9c6d6e6c5a61351826a7a35221b29",
            "branch" : [
              {
                "SHA1" : "df668409fbd9c6d6e6c5a61351826a7a35221b29",
                "name" : "refs/remotes/origin/dev"
              }
            ]
          },
          "revision" : {
            "SHA1" : "df668409fbd9c6d6e6c5a61351826a7a35221b29",
            "branch" : [
              {
                "SHA1" : "df668409fbd9c6d6e6c5a61351826a7a35221b29",
                "name" : "refs/remotes/origin/dev"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "df668409fbd9c6d6e6c5a61351826a7a35221b29",
        "branch" : [
          {
            "SHA1" : "df668409fbd9c6d6e6c5a61351826a7a35221b29",
            "name" : "refs/remotes/origin/dev"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/younex1/erp-nuxt-frontend.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#785",
  "duration" : 66022,
  "estimatedDuration" : 61562,
  "executor" : None,
  "fullDisplayName" : "build-logship-frontend #785",
  "id" : "785",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 785,
  "queueId" : 5956,
  "result" : "SUCCESS",
  "timestamp" : 1793494800165,
  "url" : "https://jenkins.younex.de/job/build-logship-frontend/785/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "server/utils/printAgentAuth.ts",
          "app/components/settings/PrintAgentsCard.vue"
        ],
        "commitId" : "b759b9724661d951814bb78110b3b95b2379b9ff",
        "timestamp" : 1793446628000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Print-Agents: lenient session parsing (client id from cookie digits or JWT claims — 'no client in session' blocked the card in the browser); agent rows expanded by default with queue names in the list\u000a",
        "date" : "2026-10-31 12:37:08 +0100",
        "id" : "b759b9724661d951814bb78110b3b95b2379b9ff",
        "msg" : "Print-Agents: lenient session parsing (client id from cookie digits or JWT claims — 'no client in session' blocked the card in the browser); agent rows expanded by default with queue names in the list",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "server/utils/printAgentAuth.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/components/settings/PrintAgentsCard.vue"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "server/api/settings/print-agents/[id]/cups/[...path].ts",
          "server/utils/printSpoolDb.ts",
          "app/components/settings/PrintAgentsCard.vue",
          "server/api/settings/print-agents/[id]/commands.get.ts",
          "server/plugins/print-spool-maintenance.ts"
        ],
        "commitId" : "41d5cb536c1f0e3045156f101f4f0c7c3ca0d9d0",
        "timestamp" : 1793447024000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Print-Agents: CUPS web UI of a remote box inside LogShip — HTTP relay over the agent command channel (/api/settings/print-agents/:id/cups/*, links/cookies rewritten, admin login stays on the box), 'CUPS-Oberfläche' button; relay results purged after 10 min\u000a",
        "date" : "2026-10-31 12:43:44 +0100",
        "id" : "41d5cb536c1f0e3045156f101f4f0c7c3ca0d9d0",
        "msg" : "Print-Agents: CUPS web UI of a remote box inside LogShip — HTTP relay over the agent command channel (/api/settings/print-agents/:id/cups/*, links/cookies rewritten, admin login stays on the box), 'CUPS-Oberfläche' button; relay results purged after 10 min",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/components/settings/PrintAgentsCard.vue"
          },
          {
            "editType" : "add",
            "file" : "server/api/settings/print-agents/[id]/cups/[...path].ts"
          },
          {
            "editType" : "edit",
            "file" : "server/api/settings/print-agents/[id]/commands.get.ts"
          },
          {
            "editType" : "edit",
            "file" : "server/plugins/print-spool-maintenance.ts"
          },
          {
            "editType" : "edit",
            "file" : "server/utils/printSpoolDb.ts"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "server/api/settings/print-agents/[id].put.ts",
          "server/api/settings/print-agents/index.get.ts",
          "server/utils/printSpoolDb.ts",
          "server/api/settings/print-agents/[id]/cups/[...path].ts",
          "server/api/settings/print-agents/[id]/command.post.ts",
          "app/components/settings/PrintAgentsCard.vue"
        ],
        "commitId" : "13228618bb62be06acfa136cb068a4a02b6975d3",
        "timestamp" : 1793447159000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Print-Agents: per-box remote-access switches (CUPS web relay / support shell tunnel), on by default, enforced in relay route, command and support endpoints; toggles in the card\u000a",
        "date" : "2026-10-31 12:45:59 +0100",
        "id" : "13228618bb62be06acfa136cb068a4a02b6975d3",
        "msg" : "Print-Agents: per-box remote-access switches (CUPS web relay / support shell tunnel), on by default, enforced in relay route, command and support endpoints; toggles in the card",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/components/settings/PrintAgentsCard.vue"
          },
          {
            "editType" : "edit",
            "file" : "server/api/settings/print-agents/[id]/command.post.ts"
          },
          {
            "editType" : "edit",
            "file" : "server/utils/printSpoolDb.ts"
          },
          {
            "editType" : "edit",
            "file" : "server/api/settings/print-agents/[id].put.ts"
          },
          {
            "editType" : "edit",
            "file" : "server/api/settings/print-agents/[id]/cups/[...path].ts"
          },
          {
            "editType" : "edit",
            "file" : "server/api/settings/print-agents/index.get.ts"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/components/settings/PrintAgentsCard.vue"
        ],
        "commitId" : "c59b6b5c9a0077270b7836d84fa62cd016a8627f",
        "timestamp" : 1793447593000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Print-Agents: CUPS web UI of the box opens in a modal inside LogShip (iframe on the same-origin relay route), reload + open-in-tab\u000a",
        "date" : "2026-10-31 12:53:13 +0100",
        "id" : "c59b6b5c9a0077270b7836d84fa62cd016a8627f",
        "msg" : "Print-Agents: CUPS web UI of the box opens in a modal inside LogShip (iframe on the same-origin relay route), reload + open-in-tab",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/components/settings/PrintAgentsCard.vue"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/components/settings/PrintAgentsCard.vue"
        ],
        "commitId" : "4a71d87bccdfba06ed316e0a7ab13f18dabae95a",
        "timestamp" : 1793447901000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Print-Agents: organisation per box (column, filter, org picker in the enrolment dialog, org prefilled when creating a printer from a discovered queue) — one box per merchant/site\u000a",
        "date" : "2026-10-31 12:58:21 +0100",
        "id" : "4a71d87bccdfba06ed316e0a7ab13f18dabae95a",
        "msg" : "Print-Agents: organisation per box (column, filter, org picker in the enrolment dialog, org prefilled when creating a printer from a discovered queue) — one box per merchant/site",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/components/settings/PrintAgentsCard.vue"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/components/settings/PrintAgentsCard.vue"
        ],
        "commitId" : "1b96b2c25f7d284005254e4d692d15a8f6223f42",
        "timestamp" : 1793447916000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Print-Agents card: org lookup without top-level await\u000a",
        "date" : "2026-10-31 12:58:36 +0100",
        "id" : "1b96b2c25f7d284005254e4d692d15a8f6223f42",
        "msg" : "Print-Agents card: org lookup without top-level await",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/components/settings/PrintAgentsCard.vue"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/components/settings/PrintServerEnrolModal.vue",
          "app/composables/usePrintAgents.ts",
          "app/pages/settings/printers/create.vue",
          "app/components/settings/PrintJobsPanel.vue",
          "app/components/settings/PrintServerCupsModal.vue",
          ".claude/rules/printing/print-agent.md",
          "app/components/settings/PrintServerCard.vue",
          "app/components/settings/PrintAgentsCard.vue",
          "app/components/settings/PrintServerSetupModal.vue",
          "app/pages/settings/printers/index.vue"
        ],
        "commitId" : "adbba97c50cd5c2c16692fed852fc4ce716fe349",
        "timestamp" : 1793448495000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Settings → Drucker & Druckserver: page restructured on Nuxt UI — hero with stats, tabs Drucker / Druckserver / Druckaufträge, one card per print server (status, KPIs, queues ↔ LogShip printers, remote-access switches, actions), enrol / printer-setup / CUPS / commands as modals, shared usePrintAgents() composable; old all-in-one PrintAgentsCard removed\u000a",
        "date" : "2026-10-31 13:08:15 +0100",
        "id" : "adbba97c50cd5c2c16692fed852fc4ce716fe349",
        "msg" : "Settings → Drucker & Druckserver: page restructured on Nuxt UI — hero with stats, tabs Drucker / Druckserver / Druckaufträge, one card per print server (status, KPIs, queues ↔ LogShip printers, remote-access switches, actions), enrol / printer-setup / CUPS / commands as modals, shared usePrintAgents() composable; old all-in-one PrintAgentsCard removed",
        "paths" : [
          {
            "editType" : "add",
            "file" : "app/components/settings/PrintServerCupsModal.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/pages/settings/printers/index.vue"
          },
          {
            "editType" : "edit",
            "file" : ".claude/rules/printing/print-agent.md"
          },
          {
            "editType" : "add",
            "file" : "app/components/settings/PrintJobsPanel.vue"
          },
          {
            "editType" : "add",
            "file" : "app/components/settings/PrintServerEnrolModal.vue"
          },
          {
            "editType" : "add",
            "file" : "app/composables/usePrintAgents.ts"
          },
          {
            "editType" : "add",
            "file" : "app/components/settings/PrintServerCard.vue"
          },
          {
            "editType" : "delete",
            "file" : "app/components/settings/PrintAgentsCard.vue"
          },
          {
            "editType" : "add",
            "file" : "app/components/settings/PrintServerSetupModal.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/pages/settings/printers/create.vue"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".claude/rules/printing/print-agent.md"
        ],
        "commitId" : "4a1c60d897bcbb2c0dbe480567faf0eb1507fd83",
        "timestamp" : 1793450451000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "recipe: print-agent box setup via install/install.sh\u000a",
        "date" : "2026-10-31 13:40:51 +0100",
        "id" : "4a1c60d897bcbb2c0dbe480567faf0eb1507fd83",
        "msg" : "recipe: print-agent box setup via install/install.sh",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".claude/rules/printing/print-agent.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "server/api/settings/commission-tables/store.post.ts",
          "app/components/settings/CommissionTableForm.vue",
          "server/api/materials/warehouse-layouts/meta/capabilities.get.ts",
          "server/api/materials/warehouse-layouts/[id]/apply.post.ts",
          "app/components/materials/warehouse-builder/modals/SyncModal.vue",
          "app/components/NewNavBar.vue",
          "app/utils/warehouseLayout/geometry.ts",
          "server/api/materials/warehouse-layouts/[id].put.ts",
          "app/utils/warehouseLayout/wiring.ts",
          "server/api/materials/warehouse-layouts/[id]/summary.get.ts",
          "app/components/materials/warehouse-builder/PrintSheet.vue",
          "server/utils/pLimit.ts",
          "app/pages/materials/locators/index.vue",
          "app/composables/useWarehouseLayout.ts",
          "app/components/materials/warehouse-builder/modals/GenerateModal.vue",
          "app/components/materials/warehouse-builder/modals/WallsByLengthModal.vue",
          "server/utils/withIdempiere.ts",
          "app/components/materials/warehouse-builder/LocatorsGrid.vue",
          "server/api/materials/warehouse-layouts/by-warehouse/[warehouseId]/locators.get.ts",
          "app/components/materials/warehouse-builder/modals/LayoutsModal.vue",
          "app/components/materials/warehouse-builder/modals/WiringModal.vue",
          "server/api/settings/commission-tables/update.put.ts",
          "app/components/materials/warehouse-builder/Inspector.vue",
          "app/pages/settings/commission-tables/[id]/edit.vue",
          "app/composables/menu/admin/materials.ts",
          "app/components/materials/warehouse-builder/modals/ApplyModal.vue",
          "reference/test-scripts/warehouse-layout-smoke.mts",
          "app/components/materials/WarehouseVisualization3D.vue",
          "server/api/materials/warehouse-layouts/index.post.ts",
          "app/components/materials/warehouse-builder/View3D.vue",
          "app/components/materials/warehouse-builder/LayoutSvg.vue",
          "app/components/materials/warehouse-builder/Palette.vue",
          "app/utils/warehouseLayout/schema.ts",
          "app/components/materials/warehouse-builder/CapabilitiesBanner.vue",
          "app/components/materials/warehouse-builder/Stage.vue",
          "app/components/materials/warehouse-builder/LocatorDock.vue",
          "server/api/materials/warehouse-layouts/by-warehouse/[warehouseId]/index.get.ts",
          "app/utils/warehouseLayout/pick.ts",
          "server/api/materials/warehouse-layouts/[id].delete.ts",
          "app/components/materials/warehouse-builder/MetricsCard.vue",
          "app/components/materials/warehouse-builder/modals/ImportWizardModal.vue",
          "server/utils/locatorBulk.ts",
          "server/api/materials/locators/generate.post.ts",
          "server/api/materials/warehouse-layouts/[id].get.ts",
          ".claude/rules/materials/warehouse-builder.md",
          "app/pages/settings/commission-tables/create.vue",
          "app/components/materials/warehouse-builder/ObjectGlyph.vue",
          "app/pages/materials/warehouse-builder/index.vue",
          "app/components/materials/warehouse-builder/ShelfWiringFields.vue",
          "server/api/materials/locators/bulk-create.post.ts",
          "app/components/MainNavigationMenu.vue",
          "server/utils/warehouseLayout.ts",
          "app/components/materials/warehouse-builder/Toolbar.vue"
        ],
        "commitId" : "c3194a48e654a73cff87242658d880e3c24616a0",
        "timestamp" : 1793472016000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Warehouse Builder: 2D top-down floor plan editor replaces the Locator Manager\u000a\u000a- /materials/warehouse-builder (old /materials/locators redirects): SVG plan per warehouse + floor\u000a  (1 m grid, 0.5 m snap) with walls / room / obstacles, zones, shelves, pallet places, doors,\u000a  commission tables, walkways, labels; undo/redo, marquee, rotate, snap, zoom at cursor,\u000a  space/middle pan, floating view controls, keyboard shortcuts, browser draft, live metrics card,\u000a  \"Grundriss nach Maßen\" (walls by length), print popup (A3/A4) + PNG export, 3D tab read-only\u000a- Shelf bays × levels wired to M_Locator codes (X-Y-Z) with live statuses; create missing in bulk;\u000a  import wizard from existing locators; Sync + Auto-Generate modals ported to Nuxt UI\u000a- Storage: CUST_WarehouseLayout (LayoutJSON, LayoutVersion optimistic lock, AppliedVersion);\u000a  Apply writes LayoutPosX/Y, LayoutSide, PickSeqNo (serpentine), LayoutZone, LayoutObjectKey,\u000a  CUST_WarehouseLayout_ID onto M_Locator (chunked, diffed, dry-run first)\u000a- Server: warehouse-layouts routes (floors, locators paged + column fallback, capabilities probe,\u000a  CRUD, summary, apply), locators/bulk-create + shared locatorBulk util (generate.post.ts uses it),\u000a  pLimit, withIdempiere wrapper\u000a- Commission tables: optional M_Warehouse_ID (form field, routes, palette filter, assign button)\u000a- 3D view: positions/grid/readonly props fed from the plan\u000a- Recipe .claude/rules/materials/warehouse-builder.md, smoke script reference/test-scripts/warehouse-layout-smoke.mts\u000a",
        "date" : "2026-10-31 19:40:16 +0100",
        "id" : "c3194a48e654a73cff87242658d880e3c24616a0",
        "msg" : "Warehouse Builder: 2D top-down floor plan editor replaces the Locator Manager",
        "paths" : [
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/MetricsCard.vue"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/Stage.vue"
          },
          {
            "editType" : "add",
            "file" : "server/api/materials/warehouse-layouts/by-warehouse/[warehouseId]/index.get.ts"
          },
          {
            "editType" : "add",
            "file" : "app/utils/warehouseLayout/schema.ts"
          },
          {
            "editType" : "add",
            "file" : "server/utils/pLimit.ts"
          },
          {
            "editType" : "add",
            "file" : "app/utils/warehouseLayout/geometry.ts"
          },
          {
            "editType" : "add",
            "file" : "server/api/materials/warehouse-layouts/[id]/summary.get.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/components/NewNavBar.vue"
          },
          {
            "editType" : "add",
            "file" : "server/api/materials/warehouse-layouts/[id].put.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/composables/menu/admin/materials.ts"
          },
          {
            "editType" : "edit",
            "file" : "server/api/settings/commission-tables/update.put.ts"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/modals/ImportWizardModal.vue"
          },
          {
            "editType" : "add",
            "file" : "app/utils/warehouseLayout/pick.ts"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/modals/ApplyModal.vue"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/modals/WiringModal.vue"
          },
          {
            "editType" : "add",
            "file" : "reference/test-scripts/warehouse-layout-smoke.mts"
          },
          {
            "editType" : "edit",
            "file" : "server/api/materials/locators/generate.post.ts"
          },
          {
            "editType" : "add",
            "file" : "server/api/materials/warehouse-layouts/by-warehouse/[warehouseId]/locators.get.ts"
          },
          {
            "editType" : "edit",
            "file" : "server/api/settings/commission-tables/store.post.ts"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/LocatorsGrid.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/MainNavigationMenu.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/settings/CommissionTableForm.vue"
          },
          {
            "editType" : "add",
            "file" : "server/api/materials/warehouse-layouts/[id].get.ts"
          },
          {
            "editType" : "add",
            "file" : "app/utils/warehouseLayout/wiring.ts"
          },
          {
            "editType" : "add",
            "file" : ".claude/rules/materials/warehouse-builder.md"
          },
          {
            "editType" : "add",
            "file" : "server/api/materials/warehouse-layouts/[id]/apply.post.ts"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/modals/LayoutsModal.vue"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/ObjectGlyph.vue"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/LocatorDock.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/pages/settings/commission-tables/create.vue"
          },
          {
            "editType" : "add",
            "file" : "app/pages/materials/warehouse-builder/index.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/pages/settings/commission-tables/[id]/edit.vue"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/CapabilitiesBanner.vue"
          },
          {
            "editType" : "add",
            "file" : "app/composables/useWarehouseLayout.ts"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/modals/GenerateModal.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/pages/materials/locators/index.vue"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/Inspector.vue"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/LayoutSvg.vue"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/modals/WallsByLengthModal.vue"
          },
          {
            "editType" : "add",
            "file" : "server/utils/locatorBulk.ts"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/Palette.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/WarehouseVisualization3D.vue"
          },
          {
            "editType" : "add",
            "file" : "server/api/materials/locators/bulk-create.post.ts"
          },
          {
            "editType" : "add",
            "file" : "server/api/materials/warehouse-layouts/index.post.ts"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/ShelfWiringFields.vue"
          },
          {
            "editType" : "add",
            "file" : "server/api/materials/warehouse-layouts/[id].delete.ts"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/modals/SyncModal.vue"
          },
          {
            "editType" : "add",
            "file" : "server/utils/warehouseLayout.ts"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/View3D.vue"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/PrintSheet.vue"
          },
          {
            "editType" : "add",
            "file" : "server/utils/withIdempiere.ts"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/Toolbar.vue"
          },
          {
            "editType" : "add",
            "file" : "server/api/materials/warehouse-layouts/meta/capabilities.get.ts"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/pages/materials/warehouse-builder/index.vue"
        ],
        "commitId" : "8fe356dee13e5a6dc52c3bb821bf5ec61656a1e6",
        "timestamp" : 1793472367000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Warehouse Builder: import useWarehouseLayout explicitly (SSR 500 'useWarehouseLayout is not defined' when the auto-import registry is stale)\u000a",
        "date" : "2026-10-31 19:46:07 +0100",
        "id" : "8fe356dee13e5a6dc52c3bb821bf5ec61656a1e6",
        "msg" : "Warehouse Builder: import useWarehouseLayout explicitly (SSR 500 'useWarehouseLayout is not defined' when the auto-import registry is stale)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/pages/materials/warehouse-builder/index.vue"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "server/utils/offers/flyerTexts.ts",
          "app/composables/useOfferQuote.ts"
        ],
        "commitId" : "8ea976720002cb83c62d22a91ebe3299ff7a89af",
        "timestamp" : 1793473134000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Offer texts: FIFO → 'FIFO oder FEFO' in quote plan features and flyer (DE/EN)\u000a",
        "date" : "2026-10-31 19:58:54 +0100",
        "id" : "8ea976720002cb83c62d22a91ebe3299ff7a89af",
        "msg" : "Offer texts: FIFO → 'FIFO oder FEFO' in quote plan features and flyer (DE/EN)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "server/utils/offers/flyerTexts.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/composables/useOfferQuote.ts"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/components/materials/warehouse-builder/Palette.vue",
          "app/composables/useWarehouseLayout.ts",
          "app/components/materials/warehouse-builder/LayoutSvg.vue",
          "app/utils/warehouseLayout/schema.ts",
          "app/components/materials/warehouse-builder/MetricsCard.vue",
          "app/components/materials/warehouse-builder/Stage.vue",
          "app/components/materials/warehouse-builder/Toolbar.vue",
          "app/components/materials/warehouse-builder/PrintSheet.vue",
          "app/components/materials/warehouse-builder/Inspector.vue"
        ],
        "commitId" : "a5c818f6cc1eb569512e0668e7bab4db67959c0d",
        "timestamp" : 1793474944000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Warehouse Builder: walkways as drawn lanes (polyline + width), drag-to-size doors and office/machine areas, metre rulers outside the grid, +5/−5 m grid chips, ruler toggle, commission-table warehouse column (form, routes, palette filter, assign button), narrower properties column, floating draft chip, LocatorsGrid blanks for cleared sentinels\u000a",
        "date" : "2026-10-31 20:29:04 +0100",
        "id" : "a5c818f6cc1eb569512e0668e7bab4db67959c0d",
        "msg" : "Warehouse Builder: walkways as drawn lanes (polyline + width), drag-to-size doors and office/machine areas, metre rulers outside the grid, +5/−5 m grid chips, ruler toggle, commission-table warehouse column (form, routes, palette filter, assign button), narrower properties column, floating draft chip, LocatorsGrid blanks for cleared sentinels",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Palette.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Stage.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/composables/useWarehouseLayout.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Inspector.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/utils/warehouseLayout/schema.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/MetricsCard.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/LayoutSvg.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/PrintSheet.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Toolbar.vue"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".claude/rules/materials/warehouse-builder.md"
        ],
        "commitId" : "1970aa619ff280576121e872df581155ffc1c43d",
        "timestamp" : 1793474979000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "recipe: warehouse builder walkway lanes, draw bricks, rulers, grid chips, HMR gotcha\u000a",
        "date" : "2026-10-31 20:29:39 +0100",
        "id" : "1970aa619ff280576121e872df581155ffc1c43d",
        "msg" : "recipe: warehouse builder walkway lanes, draw bricks, rulers, grid chips, HMR gotcha",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".claude/rules/materials/warehouse-builder.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/components/materials/warehouse-builder/Render3D.vue",
          "app/pages/materials/warehouse-builder/index.vue",
          ".claude/rules/materials/warehouse-builder.md"
        ],
        "commitId" : "fa33aa39b0d2f2e61fc34789677224c77df1e491",
        "timestamp" : 1793475212000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Warehouse Builder: Rendering tab — three.js scene built from the plan (floor, walls, racks with levels and cartons on wired bays, pallets, doors, tables, obstacles, zones, walkways, labels), orbit camera with presets and toggles\u000a",
        "date" : "2026-10-31 20:33:32 +0100",
        "id" : "fa33aa39b0d2f2e61fc34789677224c77df1e491",
        "msg" : "Warehouse Builder: Rendering tab — three.js scene built from the plan (floor, walls, racks with levels and cartons on wired bays, pallets, doors, tables, obstacles, zones, walkways, labels), orbit camera with presets and toggles",
        "paths" : [
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/Render3D.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/pages/materials/warehouse-builder/index.vue"
          },
          {
            "editType" : "edit",
            "file" : ".claude/rules/materials/warehouse-builder.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "server/api/materials/warehouse-layouts/meta/img.get.ts",
          "app/composables/useWarehouseLayout.ts",
          "app/components/materials/warehouse-builder/Palette.vue",
          "app/utils/warehouseLayout/schema.ts",
          "app/pages/materials/warehouse-builder/index.vue",
          "app/components/materials/warehouse-builder/ObjectGlyph.vue",
          "server/api/materials/warehouse-layouts/meta/stock-by-locators.post.ts",
          "app/components/materials/warehouse-builder/Render3D.vue",
          ".claude/rules/materials/warehouse-builder.md",
          "app/components/materials/warehouse-builder/Inspector.vue"
        ],
        "commitId" : "454170532af280fcaa37b32c17f6ecd577c9eb57",
        "timestamp" : 1793475970000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Warehouse Builder: walk-through mode (first person, WASD + drag/pointer-lock look, collision, doors as passages), article thumbnails in camera range (stock-by-locators route, Strapi image relay, SKU plates as fallback), pedestrian door kind with swing arc, gate orientation switch, collapsible side panels with rails\u000a",
        "date" : "2026-10-31 20:46:10 +0100",
        "id" : "454170532af280fcaa37b32c17f6ecd577c9eb57",
        "msg" : "Warehouse Builder: walk-through mode (first person, WASD + drag/pointer-lock look, collision, doors as passages), article thumbnails in camera range (stock-by-locators route, Strapi image relay, SKU plates as fallback), pedestrian door kind with swing arc, gate orientation switch, collapsible side panels with rails",
        "paths" : [
          {
            "editType" : "add",
            "file" : "server/api/materials/warehouse-layouts/meta/img.get.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/composables/useWarehouseLayout.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Palette.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/pages/materials/warehouse-builder/index.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/utils/warehouseLayout/schema.ts"
          },
          {
            "editType" : "add",
            "file" : "server/api/materials/warehouse-layouts/meta/stock-by-locators.post.ts"
          },
          {
            "editType" : "edit",
            "file" : ".claude/rules/materials/warehouse-builder.md"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Render3D.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/ObjectGlyph.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Inspector.vue"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/composables/useWarehouseLayout.ts",
          ".env",
          "app/components/materials/warehouse-builder/modals/ApplyModal.vue",
          "server/api/materials/warehouse-layouts/[id]/apply.post.ts",
          ".claude/rules/materials/warehouse-builder.md",
          ".env-dev",
          "app/utils/warehouseLayout/schema.ts",
          "nuxt.config.ts",
          "server/api/materials/warehouse-layouts/meta/stock-by-locators.post.ts",
          "server/utils/warehouseLayout.ts",
          "app/components/materials/warehouse-builder/Render3D.vue",
          "app/components/materials/warehouse-builder/Inspector.vue",
          ".env-prod"
        ],
        "commitId" : "689e328a6663877641f84814d54d9a39707b78fa",
        "timestamp" : 1793476417000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Warehouse Builder: shared-hall scope — WAREHOUSE_LAYOUT_SHARED instance flag + per-plan option; Apply mirrors values to equal locator codes in all warehouses and clears via the layout FK; stock lookups merge all orgs' stock per bin\u000a",
        "date" : "2026-10-31 20:53:37 +0100",
        "id" : "689e328a6663877641f84814d54d9a39707b78fa",
        "msg" : "Warehouse Builder: shared-hall scope — WAREHOUSE_LAYOUT_SHARED instance flag + per-plan option; Apply mirrors values to equal locator codes in all warehouses and clears via the layout FK; stock lookups merge all orgs' stock per bin",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "server/api/materials/warehouse-layouts/meta/stock-by-locators.post.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/composables/useWarehouseLayout.ts"
          },
          {
            "editType" : "edit",
            "file" : ".env-dev"
          },
          {
            "editType" : "edit",
            "file" : ".claude/rules/materials/warehouse-builder.md"
          },
          {
            "editType" : "edit",
            "file" : ".env-prod"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Render3D.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Inspector.vue"
          },
          {
            "editType" : "edit",
            "file" : "nuxt.config.ts"
          },
          {
            "editType" : "edit",
            "file" : "server/utils/warehouseLayout.ts"
          },
          {
            "editType" : "edit",
            "file" : "server/api/materials/warehouse-layouts/[id]/apply.post.ts"
          },
          {
            "editType" : "edit",
            "file" : ".env"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/modals/ApplyModal.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/utils/warehouseLayout/schema.ts"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/pages/materials/warehouse-builder/index.vue",
          "app/components/materials/warehouse-builder/Inspector.vue"
        ],
        "commitId" : "eaa7698c20d437270d9be236c17f25913d2ef487",
        "timestamp" : 1793476515000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Warehouse Builder: scope checkbox layout\u000a",
        "date" : "2026-10-31 20:55:15 +0100",
        "id" : "eaa7698c20d437270d9be236c17f25913d2ef487",
        "msg" : "Warehouse Builder: scope checkbox layout",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/pages/materials/warehouse-builder/index.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Inspector.vue"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/composables/useWarehouseLayout.ts",
          "app/components/materials/warehouse-builder/modals/ApplyModal.vue",
          "app/utils/warehouseLayout/schema.ts",
          "app/components/materials/warehouse-builder/Render3D.vue",
          "app/components/materials/warehouse-builder/Inspector.vue"
        ],
        "commitId" : "d2ddeb4d6698e6472c911e6e019545d205f529fc",
        "timestamp" : 1793476656000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Warehouse Builder: plans without an explicit scope follow WAREHOUSE_LAYOUT_SHARED (existing LogYou plan shows all orgs' articles)\u000a",
        "date" : "2026-10-31 20:57:36 +0100",
        "id" : "d2ddeb4d6698e6472c911e6e019545d205f529fc",
        "msg" : "Warehouse Builder: plans without an explicit scope follow WAREHOUSE_LAYOUT_SHARED (existing LogYou plan shows all orgs' articles)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/modals/ApplyModal.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Inspector.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/composables/useWarehouseLayout.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Render3D.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/utils/warehouseLayout/schema.ts"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/components/materials/warehouse-builder/Render3D.vue",
          "server/api/materials/warehouse-layouts/meta/stock-by-locators.post.ts"
        ],
        "commitId" : "2503dfeba6ccbab680f5bae9bedb86f85b82b44d",
        "timestamp" : 1793476781000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Warehouse Builder: mirror lookup with original code spelling (case-sensitive Value), reload stock when images are re-enabled or the scope changes\u000a",
        "date" : "2026-10-31 20:59:41 +0100",
        "id" : "2503dfeba6ccbab680f5bae9bedb86f85b82b44d",
        "msg" : "Warehouse Builder: mirror lookup with original code spelling (case-sensitive Value), reload stock when images are re-enabled or the scope changes",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Render3D.vue"
          },
          {
            "editType" : "edit",
            "file" : "server/api/materials/warehouse-layouts/meta/stock-by-locators.post.ts"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/components/materials/warehouse-builder/Render3D.vue"
        ],
        "commitId" : "97d1d5d9454199cce9a9cb4a1c8121a1ba75579a",
        "timestamp" : 1793477065000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Warehouse Builder: article plates on both faces of a bay (visible from either aisle)\u000a",
        "date" : "2026-10-31 21:04:25 +0100",
        "id" : "97d1d5d9454199cce9a9cb4a1c8121a1ba75579a",
        "msg" : "Warehouse Builder: article plates on both faces of a bay (visible from either aisle)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Render3D.vue"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/components/materials/warehouse-builder/Palette.vue",
          "app/utils/warehouseLayout/schema.ts",
          "app/components/materials/warehouse-builder/Render3D.vue",
          "app/components/materials/warehouse-builder/ObjectGlyph.vue",
          "app/components/materials/warehouse-builder/ShelfWiringFields.vue",
          ".claude/rules/materials/warehouse-builder.md"
        ],
        "commitId" : "ca533769d113880f840adb1efa054465610b4fa3",
        "timestamp" : 1793481773000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Warehouse Builder: pallet rack style (blue RAL 5010 frames with bracing, orange RAL 2004 beams, mesh decks, pallets + cartons per level, 2–n levels with level height), rack bricks 2.7/5.5 × 1.1 m, blue/orange plan glyph, type + level height in the inspector\u000a",
        "date" : "2026-10-31 22:22:53 +0100",
        "id" : "ca533769d113880f840adb1efa054465610b4fa3",
        "msg" : "Warehouse Builder: pallet rack style (blue RAL 5010 frames with bracing, orange RAL 2004 beams, mesh decks, pallets + cartons per level, 2–n levels with level height), rack bricks 2.7/5.5 × 1.1 m, blue/orange plan glyph, type + level height in the inspector",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/utils/warehouseLayout/schema.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Render3D.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/ObjectGlyph.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/ShelfWiringFields.vue"
          },
          {
            "editType" : "edit",
            "file" : ".claude/rules/materials/warehouse-builder.md"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Palette.vue"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/components/materials/warehouse-builder/Stage.vue"
        ],
        "commitId" : "ae68a178cc8747e9460a78c431bfeb271ac67486",
        "timestamp" : 1793482090000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Warehouse Builder: Esc always returns to the cursor tool (page-wide, clears drafts/ghost/selection)\u000a",
        "date" : "2026-10-31 22:28:10 +0100",
        "id" : "ae68a178cc8747e9460a78c431bfeb271ac67486",
        "msg" : "Warehouse Builder: Esc always returns to the cursor tool (page-wide, clears drafts/ghost/selection)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Stage.vue"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/components/materials/warehouse-builder/PrintSheet.vue",
          "app/components/materials/warehouse-builder/Render3D.vue",
          "app/pages/materials/warehouse-builder/index.vue",
          ".claude/rules/materials/warehouse-builder.md",
          "app/components/materials/warehouse-builder/modals/PrintModal.vue"
        ],
        "commitId" : "54db1df441f1656e8558e698be6b1c85c77b24b3",
        "timestamp" : 1793482603000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Warehouse Builder: print dialog (paper, title, bay codes, legend, specification page with all metrics + rack list + zone table + note, rendered 3D views from selectable angles via headless Render3D snapshots), metre markers along the hall edges in the rendering\u000a",
        "date" : "2026-10-31 22:36:43 +0100",
        "id" : "54db1df441f1656e8558e698be6b1c85c77b24b3",
        "msg" : "Warehouse Builder: print dialog (paper, title, bay codes, legend, specification page with all metrics + rack list + zone table + note, rendered 3D views from selectable angles via headless Render3D snapshots), metre markers along the hall edges in the rendering",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Render3D.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/pages/materials/warehouse-builder/index.vue"
          },
          {
            "editType" : "add",
            "file" : "app/components/materials/warehouse-builder/modals/PrintModal.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/PrintSheet.vue"
          },
          {
            "editType" : "edit",
            "file" : ".claude/rules/materials/warehouse-builder.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/components/materials/warehouse-builder/Render3D.vue",
          "app/components/materials/warehouse-builder/modals/PrintModal.vue",
          "app/components/materials/warehouse-builder/PrintSheet.vue"
        ],
        "commitId" : "053e8e042f423487e6adf00a7ffb69d8b61b131e",
        "timestamp" : 1793483868000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Warehouse Builder: print renderings fixed (nuxt-lazy-load rewrote the <img src> in the popup document to data-src), more camera angles (corners NO/NW/SO/SW, steep overview, eye level from south/north) in the Rendering tab and the print dialog with all/none toggle\u000a",
        "date" : "2026-10-31 22:57:48 +0100",
        "id" : "053e8e042f423487e6adf00a7ffb69d8b61b131e",
        "msg" : "Warehouse Builder: print renderings fixed (nuxt-lazy-load rewrote the <img src> in the popup document to data-src), more camera angles (corners NO/NW/SO/SW, steep overview, eye level from south/north) in the Rendering tab and the print dialog with all/none toggle",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/modals/PrintModal.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Render3D.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/PrintSheet.vue"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/composables/useWarehouseLayout.ts",
          "app/components/materials/warehouse-builder/MetricsCard.vue",
          "reference/test-scripts/warehouse-layout-smoke.mts",
          ".claude/rules/materials/warehouse-builder.md",
          "app/components/materials/warehouse-builder/LayoutSvg.vue",
          "app/components/materials/warehouse-builder/Palette.vue",
          "app/utils/warehouseLayout/geometry.ts",
          "app/utils/warehouseLayout/schema.ts",
          "app/components/materials/warehouse-builder/ObjectGlyph.vue",
          "app/components/materials/warehouse-builder/modals/PrintModal.vue",
          "app/components/materials/warehouse-builder/Stage.vue",
          "app/components/materials/warehouse-builder/PrintSheet.vue",
          "app/components/materials/warehouse-builder/Render3D.vue",
          "app/components/materials/warehouse-builder/Inspector.vue"
        ],
        "commitId" : "df668409fbd9c6d6e6c5a61351826a7a35221b29",
        "timestamp" : 1793485420000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Warehouse Builder: magnetic snapping to walls/objects/zones while drawing, moving and resizing (guide lines, Alt disables); doors and gates dock into the nearest wall and cannot stand free; door hinge + opening direction; surveillance cameras with heading/FOV/range, ray-cast view cones (shadowed by walls, racks, obstacles) in plan, rendering and print (coverage page + camera table), coverage metrics; office areas separated from the warehouse area in metrics and print; offices see-through in the rendering\u000a",
        "date" : "2026-10-31 23:23:40 +0100",
        "id" : "df668409fbd9c6d6e6c5a61351826a7a35221b29",
        "msg" : "Warehouse Builder: magnetic snapping to walls/objects/zones while drawing, moving and resizing (guide lines, Alt disables); doors and gates dock into the nearest wall and cannot stand free; door hinge + opening direction; surveillance cameras with heading/FOV/range, ray-cast view cones (shadowed by walls, racks, obstacles) in plan, rendering and print (coverage page + camera table), coverage metrics; office areas separated from the warehouse area in metrics and print; offices see-through in the rendering",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/PrintSheet.vue"
          },
          {
            "editType" : "edit",
            "file" : "reference/test-scripts/warehouse-layout-smoke.mts"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Stage.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/modals/PrintModal.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/composables/useWarehouseLayout.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Render3D.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Inspector.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/MetricsCard.vue"
          },
          {
            "editType" : "edit",
            "file" : ".claude/rules/materials/warehouse-builder.md"
          },
          {
            "editType" : "edit",
            "file" : "app/utils/warehouseLayout/schema.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/LayoutSvg.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/Palette.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/utils/warehouseLayout/geometry.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/warehouse-builder/ObjectGlyph.vue"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.younex.de/user/info",
      "fullName" : "info"
    }
  ]
}