Multiline tag arguments, faster pos-cli deploys, SSL skip option, context enhancements in background jobs
Apr 20, 2026
IMPROVED
* **`context.environment` and `context.location.host` in background jobs**: Background jobs now receive the same `context.environment` (e.g., `production`, `staging`) and `context.location.host` values that are available in web requests. This makes it easier to branch logic by environment or build host-aware URLs from asynchronous code.-
skip_ssl_verificationoption forapi_call_send: Theapi_call_sendmutation accepts a newskip_ssl_verificationboolean in its options. When set totrue, SSL certificate verification is skipped for HTTPS requests - useful when integrating with internal services that use self-signed certificates. Disabled by default. -
assignandfunctiontags accept arguments in multiline, for example:
{% liquid
assign outer_key = "user"
assign inner_key = "name"
assign hash = {
outer_key: {
inner_key: "Alice"
}
}
echo hash
%}
assigntag supports string interpolation inside hash values, for example:
{% liquid
assign email = "[email protected]"
assign contact = { "email": "{{ email | downcase }}", "name": "{{ email | split: '@' | first }}" }
echo contact
%}
[]and{}empty array/hash literals can be used as argument values, for example:
{% assign arr = value | default: [] %}
{% function result = 'my/function', array: [], hash: {} %}
-
pos-cli deploy improvements:
- Significantly faster cold deploys: Deploying a ~1,000-file application is now approximately 3× faster. Benchmarked against a real-world pos application (5,883 files): cold deploy time dropped from ~11.8s to ~3.9s. Warm deploys (no file changes) are slightly faster thanks to a better algorithm for skipping unchanged files. It also affects the Instance Clone feature.
- All validation errors reported at once: When a deploy contains multiple invalid files, all errors are now collected and reported together in a single response instead of stopping at the first failure. This means you can fix all issues in one round rather than discovering them one by one.
- Deploy report: Each deploy now returns a structured report listing which files were upserted or deleted per resource type (partials, GraphQL queries, pages, assets, etc.), making it easier to understand exactly what changed. Requires
pos-cli6.0.0+. pos-cli deploy --dry-runnow includes assets: Dry-run mode reports which assets would be added or removed without uploading them. Requirespos-cli6.0.0+.- Automatic cleanup for public-only modules (opt-in, requires
auto_manage_public_only_modules: trueinconfig.yml): platformOS can now detect when a module contains only public files and, when it does, treat those files with the same lifecycle rules as regular application files - meaning files removed from the deploy are automatically deleted from the instance. Previously, module files were never deleted on deploy, which required adding each module name individually to themodules_that_allow_delete_on_deploysetting in the config. Because this changes deletion behaviour, it is disabled by default and must be explicitly opted into.
-
Improved
asset_manifestgeneration duringpos-cli pull- greatly improves internal memory management and performance of generatingasset_manifest(which includes all Assets). This also affects the Instance Clone feature. -
Module handling:
- Warning when a declared module is missing: If a module is listed in
pos-modules.lock.jsonbut its source files are missing from the deploy, a warning is now emitted.
- Warning when a declared module is missing: If a module is listed in
-
Unknown
app/config.ymlproperties are now warnings, not errors: If yourconfig.ymlcontains a feature flag that does not exist in the target environment (for example when deploying from staging to a production environment that hasn't received that flag yet), the deploy no longer fails. -
Better error messages for duplicate translation keys: When multiple translation files define the same key for the same locale, the reported error now lists each offending key alongside the specific files that defined it, instead of lumping all files together.
-
Duplicate model name detection on deploy: If two Model Schemas, Profile Types, or User Profiles resolve to the same parameterized name, the deploy now fails fast with a clear error listing the conflicting name and the files that introduced it.
FIXED
raw_urlhandling for cloned instances: When an asset'sraw_urlpoints at an instance CDN path (/instances/N/assets/...), the host and instance ID are now rewritten to match the current instance's CDN configuration. This fixes broken asset URLs on cloned instances. Externalraw_urlvalues (without the instance path segment) continue to be served as-is.