Releases: Mes-Open/OpenMes
Release list
OpenMES v0.16.1
Installation
Download openmmes-v0.16.1.zip below — it is self-contained (PHP dependencies in vendor/ and the built frontend in backend/public/build/ are already bundled, so no composer install or npm build is required).
Shared hosting (no terminal): unzip, upload the folder to your web host, point the document root at the package root, then open the URL — the browser-based setup wizard handles environment, database and the admin account.
Docker: unzip and run docker compose up -d from the package root (or bash install.sh).
Changes
OpenMES v0.16.0
Installation
Download openmmes-v0.16.0.zip below — it is self-contained (PHP dependencies in vendor/ and the built frontend in backend/public/build/ are already bundled, so no composer install or npm build is required).
Shared hosting (no terminal): unzip, upload the folder to your web host, point the document root at the package root, then open the URL — the browser-based setup wizard handles environment, database and the admin account.
Docker: unzip and run docker compose up -d from the package root (or bash install.sh).
Changes
- fix(ci): pass release-notes vars via env, not ${{ }} shell interpolation (62a281d)
- Merge pull request #164 from Mes-Open/release/v0.16.0 (b789673)
- chore(release): v0.16.0 (de45142)
- Merge pull request #163 from Mes-Open/feat/demo-oee-refresh (347d355)
- feat(demo): scheduled demo:refresh-oee to keep a long-running demo's OEE fresh (d50e1e3)
- fix: buttons (7b6f903)
- Merge pull request #162 from Mes-Open/fix/missing-i18n-import (c1bd63f)
- fix(i18n): import missing __ helper on 3 pages (runtime crash → blank page) (15dbd50)
- Merge pull request #156 from Mes-Open/feature/85-extended-genealogy-pallets (313b894)
- Merge pull request #161 from Mes-Open/chore/e2e-container-env (0264aef)
- test(e2e): derive backend container from OPENMES_NAME_PREFIX, not a hardcoded name (b1381f6)
- Merge pull request #157 from SoiBien-AI/feat/translate-develop (ca9cbc1)
- Merge branch 'develop' into pr157 (876b3eb)
- Merge pull request #160 from Mes-Open/chore/backup-ui-restyle (f2d9bb1)
- style(backup): restyle Backup/Reset UI to the om-* design system (75786d0)
- Merge pull request #159 from Mes-Open/fix/backup-coderabbit (808db82)
- fix(backup): finish CodeRabbit review on the merged backup feature (63f201d)
- fix: address CodeRabbit review on PR #156 (d06e2ec)
- fix: secure ResetSystemRequest and use config for admin credentials (6c1442a)
- fix: address code-review findings on the feature branch (334c765)
- feat(production): rich work instructions on a step - media & checklists (e0741d8)
- feat(production): milestone backflush consumption on pallet creation (3a76309)
- feat(production): mandatory document control gate on step completion (6dc8335)
- feat(analytics): operator production rate per machine (units/hour) (aaf91c7)
- feat(traceability): extend genealogy to output pallet and customer order (640679f)
- Merge pull request #155 from SoiBien-AI/feat/translate-develop (bbeac90)
- feat: localize divisions, subassemblies, and workstations to Vietnamese and update terminology (6b73a6e)
- fix: import missing i18n translation helpers (__ and timeAgo) in alerts index (0e8bed8)
- fix: add default fallback arrays for synced shapes to prevent crash on empty data (7410932)
- Merge branch 'feat/backup-restore-reset' into feat/translate-develop (6f7ae3a)
- Merge pull request #154 from Mes-Open/chore/oee-demo-seed (f594e24)
- chore(seed): OEE demo seeder populates every line + real production + LOTs (b3db415)
- fix(i18n): translate hardcoded Polish labels on packaging overview and EANs pages (1d011c5)
- fix(i18n): wrap status values in translation helper on work orders and issues lists (2e9966d)
- feat(i18n): translate new develop strings to Vietnamese (8f55839)
- Merge branch 'origin/develop' into feat/translate-develop (15877d5)
- Merge branch 'origin/main' into feat/translate-develop (06e1008)
- refactor: address CodeRabbit feedback on backup/restore/reset controllers and validation (ff6a716)
- feat: implement upload & restore backup file sequentially via AJAX (c9b0d0b)
- Merge pull request #150 from Mes-Open/fix/error-handling-schedule-sampledata-403 (e4e98a6)
- Merge branch 'develop' into fix/error-handling-schedule-sampledata-403 (800e919)
- feat: implement secure streaming backup, restore, and reset with confirm dialog and session logout (6d8bfe5)
- Merge pull request #149 from Mes-Open/feat/outgoing-webhooks (37eacb5)
- feat(i18n): add missing Vietnamese translations on develop branch (1c8abec)
- fix(webhooks): address CodeRabbit review on #149 (5aee710)
- Merge branch 'develop' into feat/outgoing-webhooks (5318849)
- Merge pull request #152 from SoiBien-AI/feat/vietnamese-localization (dfdd2c6)
- fix: add confirm_text name attribute to reset input (b5103d2)
- feat: use database cursor for backup stream and secure postgres sequence alignment during restore, add translations (3435d4d)
- Merge branch 'feat/vietnamese-localization' into feat/backup-restore-reset (02ba8f8)
- feat: implement backup, restore, and reset backend and frontend (ae8f228)
- fix: address CodeRabbit review feedback on translation keys and JSX wrapping (4533420)
- fix(i18n): translate Clear to Xóa bộ lọc for filter clearing (9c8c370)
- feat(i18n): add Vietnamese translation and UI localization keys (9466ca0)
- Merge pull request #151 from Mes-Open/chore/async-queue-on-docker (c9542b3)
- chore(docker): run background jobs async via database queue + entrypoint worker (9aaaa30)
- fix: harden schedule/sample-data/dashboard error handling (from http_error telemetry) (531184c)
- feat: outgoing webhooks — HTTP notifications on events (#20) (91ca502)
- Merge pull request #146 from Mes-Open/test/e2e-install-wizard (253b6eb)
- test(e2e): consent-required full web installer wizard spec (0d9feef)
- Merge pull request #145 from Mes-Open/feat/installer-module-selection (deddfd2)
- feat(install): select required modules during installation (#144) (ca100bc)
- Merge pull request #143 from Mes-Open/test/e2e-buildout-traceability (ec2a66a)
- test(e2e): full-buildout + traceability Playwright specs (7f23945)
- Merge pull request #135 from Mes-Open/feat/traceability-suite (1918759)
- Merge remote-tracking branch 'origin/develop' into feat/traceability-suite (c73ae6e)
- Merge pull request #142 from Mes-Open/feat/bom-item-edit (2b2e214)
- Merge pull request #138 from Mes-Open/feat/bom-item-edit (e4872df)
- Merge origin/develop into feat/bom-item-edit (7b3bf91)
- Merge pull request #140 from Mes-Open/fix/bom-snapshot-null-material-type (9f2ec91)
- fix(work-order): null-safe material type in BOM snapshot (619d01a)
- Merge origin/develop into feat/bom-item-edit (94c7c98)
- Merge pull request #139 from Mes-Open/feat/mrp-net-requirements (1809250)
- Merge remote-tracking branch 'origin/develop' into feat/mrp-net-requirements (0be7b37)
- Merge pull request #137 from Mes-Open/feat/machine-states-waiting-cleaning-maintenance (cee1b9a)
- Merge remote-tracking branch 'origin/develop' into feat/machine-states-waiting-cleaning-maintenance (5b0ec1d)
- Merge pull request #136 from Mes-Open/feat/nonconformance-disposition (cb5ae2b)
- refactor(mrp): address CodeRabbit on #90 — Form Requests + auth/422 tests (c665348)
- test(machine): address CodeRabbit on #87 — monitor auth tests + select fallback (cdef3ff)
- refactor(quality): address CodeRabbit on #11 — Form Requests + action lifecycle (419faae)
- Merge origin/develop into feat/traceability-suite (a2e7ca9)
- feat(mrp): net requirements & shortage report (#90) (24ddb4a)
- fix(traceability,wo): address CodeRabbit review on #135 (4d10653)
- fix: edit BOM (7cf2e39)
- feat(machine): waiting/cleaning/maintenance machine states (#87) (7a8069d)
- feat(quality): non-conformance disposition workflow + root-cause tracking (#11) (ec344cc)
- Merge pull request #134 from Mes-Open/feat/pallet-quality-link (769b161)
- fix(operator,quality): startable READY step + perform-QC modal crash (3ffbe39)
- refactor(traceability): address integration code-review findings (b2bc550)
- Merge branch 'feat/wo-time-lot-picking' into feat/traceability-suite (97ecbc4)
- refactor(traceability): address code-review findings (1188b88)
- Merge branch 'develop' into feat/customer-order-pallet-traceability (cc227a0)
- feat(traceability): trace by pallet number and customer order (8667739)
- feat(production): WO-time lot picking (ERP-aligned suggest + override) (73e0c65)
- Merge remote-tracking branch 'origin/develop' into feat/pallet-quality-link (354e231)
- Merge remote-tracking branch 'origin/main' into develop (4c7ae29)
- feat(quality): link quality results to a pallet + quality status (#106) (692cc14)
- i18n(product): translate "Components & serials used" section on product overview (64ec971)
- feat(traceability): reverse traceability by component serial/version (recall) (24159bf)
- Merge pull request #125 from Mes-Open/feat/supervisor-order-management (b0913db)
- Merge remote-tracking branch 'origin/develop' into feat/supervisor-order-management (ddabd7b)
- Merge pull request #124 from Mes-Open/fix/live-sync-stateful-401 (9897c3c)
- feat(supervisor): let supervisors create & manage work orders (81dfec7)
- fix(sync): make same-origin live-sync reads stateful on any host (973e744)
- Merge pull request #120 from Mes-Open/feat/quality-control-triggers (a69389f)
- feat(product): add "Components & serials used" to product overview (b5819bf)
- fix(quality): address CodeRabbit review on #105 (78c60e2)
- Merge pull request #121 from Mes-Open/feat/monorepo-design-system (564b582)
- fix: oee (a1a95f8)
- feat(quality): configurable quality-control triggers (#105) (200c207)
- test(e2e): drive material hold/release via the new modal UI (eb5a139)
- fix(docker): copy packages/ into image so @openmes/ui resolves at build (1ef6499)
- Merge pull request #118 from Mes-Open/feat/monorepo-design-system (9ba6578)
- fix: tranlsations (fa766e5)
- feat: translations (7293533)
- feat(design): port develop's new features onto Geist White + dark mode (c1105b0)
- Merge remote-tracking branch 'origin/develop' into feat/monorepo-design-system (dff71e2)
- test(e2e): cover material hold/release flow (#107) (42e2f37)
- feat: dark mode (f4c7c2e)
- feat: table design (90de18b)
- Merge pull request #117 from Mes-Open/feat/material-hold-release (aa678ee)
- feat(quality): material hold/release + batch-release quality gate (f...
OpenMES v0.15.5
Installation
Download openmmes-v0.15.5.zip below — it is self-contained (PHP dependencies in vendor/ and the built frontend in backend/public/build/ are already bundled, so no composer install or npm build is required).
Shared hosting (no terminal): unzip, upload the folder to your web host, point the document root at the package root, then open the URL — the browser-based setup wizard handles environment, database and the admin account.
Docker: unzip and run docker compose up -d from the package root (or bash install.sh).
Changes
OpenMES v0.15.4
Installation
Download openmmes-v0.15.4.zip below — it is self-contained (PHP dependencies in vendor/ and the built frontend in backend/public/build/ are already bundled, so no composer install or npm build is required).
Shared hosting (no terminal): unzip, upload the folder to your web host, point the document root at the package root, then open the URL — the browser-based setup wizard handles environment, database and the admin account.
Docker: unzip and run docker compose up -d from the package root (or bash install.sh).
Changes
- Merge pull request #131 from Mes-Open/release/v0.15.4 (3481eaf)
- chore(release): v0.15.4 (04d9f74)
- i18n: add German (de) locale (87f73a0)
- Merge pull request #129 from Mes-Open/hotfix/material-type-optional (f00807d)
- fix(materials): address CodeRabbit on #129 (f7077d8)
- Merge pull request #128 from Mes-Open/hotfix/defang-test-fixtures (d37c7e2)
- feat(materials): make material type an optional field (522ec8a)
- test: defang remaining XSS/SVG fixtures (no literal payloads in source) (e33e2bf)
- test: defang web-shell fixtures so antivirus stops flagging them (285530d)
v0.15.3
OpenMES v0.15.3
Added
- "Ready to start" batch-step status — a step state between Pending (blocked) and In Progress. A step becomes Ready to start once its prerequisites are met (first step, predecessor done/skipped, or non-sequential mode); the next step is promoted automatically on complete/skip; operators only get the Start button on Ready steps. No schema change (status is a free string); in-flight batches backfilled by migration; syncs to live views like any other status. (Refs discussion #69)
- Windows installer (
install.ps1) — PowerShell port ofinstall.shwith the same behaviour: auto free-port (80 → 8080/8443+), CSPRNG credentials, reuse-on-rerun, production build, wait-until-serving. Writes.envas LF/no-BOM so values aren't corrupted.-Interactive/-Devflags. .gitattributeskeeps shell scripts LF-only so a Windows checkout doesn't break the#!/bin/bashshebang.
Quality
- Full suite green: 1360 tests, 4148 assertions (incl. new
ReadyToStartStepTest).
Compare: v0.15.2...v0.15.3
OpenMES v0.15.2
Installation
Download openmmes-v0.15.2.zip below — it is self-contained (PHP dependencies in vendor/ and the built frontend in backend/public/build/ are already bundled, so no composer install or npm build is required).
Shared hosting (no terminal): unzip, upload the folder to your web host, point the document root at the package root, then open the URL — the browser-based setup wizard handles environment, database and the admin account.
Docker: unzip and run docker compose up -d from the package root (or bash install.sh).
Changes
- Merge pull request #113 from Mes-Open/develop (8a306cc)
- fix(install,e2e): address CodeRabbit review on PR #113 (a8895c6)
- fix(install): make install.sh macOS/BSD-safe (a7dc596)
- feat(docker): prefixable container names so local instances don't collide (1397cc8)
- feat(install): unattended by default + wait until the URL actually serves (80dce2c)
- fix(install): don't abort on no-input / no-TTY runs (e4f70dc)
- chore(release): v0.15.2 (ee5f330)
- feat(install): auto-select free port + real production build on first run (204d954)
OpenMES v0.15.1
Installation
Download openmmes-v0.15.1.zip below — it is self-contained (PHP dependencies in vendor/ and the built frontend in backend/public/build/ are already bundled, so no composer install or npm build is required).
Shared hosting (no terminal): unzip, upload the folder to your web host, point the document root at the package root, then open the URL — the browser-based setup wizard handles environment, database and the admin account.
Docker: unzip and run docker compose up -d from the package root (or bash install.sh).
Changes
- Merge pull request #112 from Mes-Open/develop (0276929)
- refactor(divisions,docker): address CodeRabbit review on the v0.15.1 PR (147babb)
- chore(release): v0.15.1 (47e547b)
- fix(docker,divisions): stop sidecar migration race; require division factory_id (6a2473c)
- fix(docker): clear stale route + permission caches on upgrade (8ccb08d)
OpenMES v0.15.0
Installation
Download openmmes-v0.15.0.zip below — it is self-contained (PHP dependencies in vendor/ and the built frontend in backend/public/build/ are already bundled, so no composer install or npm build is required).
Shared hosting (no terminal): unzip, upload the folder to your web host, point the document root at the package root, then open the URL — the browser-based setup wizard handles environment, database and the admin account.
Docker: unzip and run docker compose up -d from the package root (or bash install.sh).
Changes
- Merge pull request #111 from Mes-Open/develop (22ed787)
- chore(release): v0.15.0 (3b6fffb)
- fix(security): patch 17 dependency advisories (composer audit clean) (7683c6e)
- feat(access): operator screen reuses the admin sidebar (Lines on top) (fd33a4c)
- feat(access): operator screen sidebar lists granted admin tabs (c12331d)
- feat(access): operators keep line selection as home, reach panel via a link (3d3d9e3)
- fix(access): preserve matrix tab grants across reseeds (c1eff06)
- feat(access): operators granted admin tabs land in the panel after login (24ff3f4)
- test(view-templates): cover CRUD (create/update/delete + validation + authz) (fc9f7ca)
- chore(docker): pass SANCTUM_STATEFUL_DOMAINS through to the backend (7d8cadc)
- fix(custom-fields): blank page — entity config object leaked as React child (d19c25c)
- fix(perms): reset Spatie PermissionRegistrar per Octane request (598d9af)
- Merge pull request #74 from LEMD4/fix/oee-demo-seeder-kind (6c2a3b1)
- chore(demo): add a few unassigned (no line) work orders to PrintShop demo data (8e96743)
- fix(seeder): OeeAndDowntimeDemoSeeder used removed is_planned column (#73) (3445cbc)
- fix: update OEE demo seeder to use downtime kind enum (2c07222)
- feat(settings): per-role tab access matrix (Settings -> Access) (9530c7f)
- feat(process): optional & variant steps in process templates (P2) (df75cb0)
- Merge pull request #71 from Mes-Open/operator-buttons (54a4b9f)
- feat(dashboard): scrap overview widget (total scrap, 30-day) (ec602ad)
- Merge develop into operator-buttons; fix flaky RequestLog immutability test (648e8fb)
- Merge pull request #72 from Mes-Open/feature/soft-deletes-and-lot-source-container (1e7c3aa)
- fix(pr-72): address CodeRabbit review findings (b68ca32)
- ci: pre-commit hook runs the same test gate as GitHub Actions (59a9891)
- docs: hard rule — new CRUD entities must follow the soft-delete pattern (f5f7507)
- feat(core): soft deletes with deletion audit across all domain entities (0260474)
- feat(traceability): source_container_no on material lots (ea68aac)
- feat(hr): crew-level break windows (P1) (5c1afc8)
- ci: run the test gate on develop too (PRs target develop, not main) (e3f4066)
- test: convert legacy Blade assertSee/viewData to assertInertia after React migration (6ef5fab)
- fix(work-orders): admin work-order update 500 (wrong route param) (bb82163)
- test: fix PIN-login (6-digit), module-list (Packaging→core), CSV role seed (fae775a)
- test(packaging): replace removed /api/v1/packaging test with web EAN/scan test (10748f5)
- fix(custom-fields): add missing CustomFieldDefinitionController (0a693e8)
- fix: address CodeRabbit review on PR #71 (572a729)
- Merge origin/develop into operator-buttons (fd938a4)
- feat: translation, operator action buttons more space (bcd058a)
- feat(hr): worker absences / availability (P1) (24c7447)
- chore: dedupe maintenance fix from Unreleased (shipped in v0.14.5) (d12225d)
- Merge remote-tracking branch 'origin/main' into develop (bdf7a9f)
- Merge pull request #70 from Mes-Open/feature/pallets (dcb8fc6)
- fix(i18n): repair invalid JSON in en/pl/tr lang files (46d9bdd)
- fix(maintenance): null lead_time_days 23502 on schedule create/update (b3133d9)
- fix(packaging): reject print-multiple template_id of a different type (dc16f00)
- fix(pr-70): address CodeRabbit review findings (94d4334)
- Merge branch 'develop' into feature/pallets (97c2aee)
- test(packaging): end-to-end pallet lifecycle across two shifts (8d90697)
- i18n: pallet-specific status keys + shipped-quantity label fix (8b99df4)
- Merge pull request #68 from Mes-Open/custom-fields (790db39)
- merge (a9da080)
- fix(ux): pick error-page layout via usePage(), not the static .layout (21113c0)
- feat(ux): keep sidebar on in-route 404s too (re-share auth on error) (f816752)
- feat(ux): keep the app chrome on error pages (26d1729)
- fix: 500 (c482b40)
- fix: translate custom fields page (a0efea3)
- feat(packaging): pallets, pallet labels, station flow and shift handover (bfc23f2)
- feat(ui): sidebar menu search filtering all nav entries (6f5333a)
- fix: missing props (024fd8f)
- fix: missing merge data (224899b)
- merge (c3e1b67)
- feat: custom fields wip (d75d254)
OpenMES v0.14.5
Installation
Download openmmes-v0.14.5.zip below — it is self-contained (PHP dependencies in vendor/ and the built frontend in backend/public/build/ are already bundled, so no composer install or npm build is required).
Shared hosting (no terminal): unzip, upload the folder to your web host, point the document root at the package root, then open the URL — the browser-based setup wizard handles environment, database and the admin account.
Docker: unzip and run docker compose up -d from the package root (or bash install.sh).
Changes
OpenMES v0.14.4
Installation
Download openmmes-v0.14.4.zip below — it is self-contained (PHP dependencies in vendor/ and the built frontend in backend/public/build/ are already bundled, so no composer install or npm build is required).
Shared hosting (no terminal): unzip, upload the folder to your web host, point the document root at the package root, then open the URL — the browser-based setup wizard handles environment, database and the admin account.
Docker: unzip and run docker compose up -d from the package root (or bash install.sh).