# ITWorx ModelForge v1.2.2 A security and public-packaging patch over v1.2.1. The API contract and agent protocol remain unchanged. Runtime Worker dependency versions change and therefore require fresh LAB compatibility evidence before promotion; no production capability is changed automatically. ## Security - The Runtime Worker now upgrades its digest-pinned Ubuntu base during the image build. - Build-only Linux kernel headers are removed after dependency installation instead of remaining in the running Runtime Worker image. - Pillow, protobuf, SentencePiece, Sentence Transformers, Transformers and inherited Python security dependencies are pinned to reviewed fixed versions. - The public-candidate acceptance gate builds and scans all four images, binds each Trivy report to its exact image ID and fails on every fixable or newly observed HIGH/CRITICAL vulnerability. - The Node Agent's upstream-unfixed Debian findings are non-blocking only through an exact reviewed CVE/package/version/severity baseline. Any drift requires a new review. - PostgreSQL provisioning revokes the default public temporary-table privilege before granting the separate migration-owner and runtime roles; the runtime startup attestation fails closed if that boundary is weakened. ## Reliability - Schema `20260830_0024` now passes PostgreSQL percent syntax through Psycopg without interpreting `%rowtype` or `%I` as client placeholders. - Server acceptance supports a sibling Docker daemon without weakening production Compose: the exact bootstrap SQL and reviewed configuration are transferred through the Docker API, and HTTP contracts are probed inside the isolated candidate network. ## Compatibility | Contract | v1.2.2 | | --- | --- | | Version | `1.2.2` | | Channel | `stable` | | Database schema | `20260830_0024` | | Agent protocol | `1`, accepts `1` | | Minimum direct upgrade | `v1.0.0` | | Minimum PostgreSQL major | `16` | ## Upgrade classification The control plane and Node Agent change is `transparent`. The Runtime Worker inference dependency update is `behavioral`: exact LAB probes, output-shape checks and unload/reclaim evidence are required before an existing runtime profile can be promoted. Embedding-space identities and project indexes are not reused or changed automatically.