Repository navigation
Prepare Waterline 2.18.0 - #304
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Security PASS at 98a63ae (CI 37 green). It's the same 11-file set as 2.17.0's #297. Outside CHANGELOG.md, every changed line is a version substitution: The CHANGELOG describes what ships: #301 pause, #302 refusals with namespace names hidden from unauthorized or open viewers, #303 SDK 3.16.0 and #300. All four passed Security review. After tagging, I'll verify the annotated tag, check the merge tree against this head, then check the service-image build, publication and qualification identities as you send them. |
|
Security: Waterline 2.18.0 is independently verified.
OK to announce. |
|
Release follow-through: the daily scan policy still targets the accepted2.15.0 index I independently fetched the current raw immutable2.18.0 index and verified its full SHA256
Both attached manifests pass the repository's exact per-platform BuildKit provenance/SBOM checks. Both SLSA build arguments bind version2.18.0 and source Next actions: open a one-field draft PR, obtain independent exact-head Security review and General's merge decision, then dispatch the existing daily-scan workflow from the merged main and retain fresh summaries for both exact platform images. Completion requires both results to be classified under the existing fresh HIGH/CRITICAL policy. No package/image publication or deployment is involved. |
|
The post-merge daily scan43413768745 passed from exact main
Both summaries use Trivy0.76.1/index Classification: the current accepted Waterline2.18.0 image passes the configured fresh HIGH/CRITICAL policy on both architectures. The stale scan-selector correction, independent exact-head review, merge/head cleanup and post-merge scan acceptance are complete in #308. This is release monitoring follow-through for #304; no image publication or production change occurred. |



Release prep for Waterline 2.18.0, following the 2.17.0 prep (#297, cc2ea80):
composer.json: dev-main2.18.x-dev, product-train2.18.0;docs/image-publication.mdmove to the fixed2.18.0candidate. These are the same 10 files and the same lines as Prepare Waterline 2.17.0 #297;Contents since 2.17.0:
#300 had no CHANGELOG line, so the 2.18.0 section adds one. The current product tuple (
release/current-product-tuple.json, still 2.14.0) is left alone, as in #297.Local checks:
test-oci-release.py,test-waterline-release-identity.py,test-qualification-policy.pyandrelease_example_contract.pypass.waterline_release_identity.pycheck passes: it reports candidate 2.18.0 with Workflow 2.27.0 and SDK 3.16.0.ServiceImageReleaseContractTest,InstallationContractTestandServerIntegrationTestpass, except the one build-timing test that needs Node.Draft GitHub release body (2.18.0)
page when the Server reports it (Show and control task-queue activity dispatch pause (Server 3.8.0) #299, Show and control task-queue activity dispatch pause (#299) #301): a paused badge, the reason,
who paused it and when, and the last resume. Pause activities (with an
optional reason of at most 1000 characters) and Resume activities are
offered in operator access mode when the Server advertises
task_queue_activity_dispatch_pause. This needs native Server 3.8.0 or laterand PHP SDK 3.16.0 or later, which the service image now bundles (Bundle and develop against PHP SDK 3.16.0 (activity dispatch pause) #303). A
pause stops new activity leases on that queue only: ready tasks keep their
attempt count, deadlines keep running, and workflow tasks, signals, queries
and updates are delivered as before.
already_pausedandnot_pausedareshown as information; a 403 from the Server, a 422 and a missing capability
each get their own message. Published PHP Server 2.x, older native servers,
older SDKs and embedded mode show the queues as before, and the card says
why the actions are unavailable where the Server reports the state.
path (Show namespace-scope refusals by namespace and path on the worker health page #298, Show namespace-scope refusals on the worker health page (#298) #302). With Workflow 2.27.0 or later, when the
namespace_scope_refusalscheck warns, it shows the refused work bynamespace and path (queued job, repair, timeout or schedule tick) with counts
and when each was last seen, next to the namespaces the app serves. Add a
namespace the app should serve to
DW_V2_NAMESPACES. The names appear onlyto a viewer the host's
Waterline::authgate admits, and are always hiddenwhen
WATERLINE_ALLOW_UNAUTHENTICATED=true; the counts by path remain. AWaterline scoped to one namespace only sees refusals of that namespace.
command Waterline suggests when service mode starts without an SDK now asks
for
^3.16(Bundle and develop against PHP SDK 3.16.0 (activity dispatch pause) #303). Waterline still accepts installed SDKs matching^2.0 || ^3.0.(Show namespace-scope refusals on the worker health page (#298) #302, Bundle and develop against PHP SDK 3.16.0 (activity dispatch pause) #303). Workflow 2.21.0 and later, and the SDK's Laravel bridge from
3.10.0, need Laravel 12.69 or later, so the Laravel 9, 10 and 11 cells keep
Workflow 2.16.0 or 2.20.3 and SDK 3.9.4. The Laravel matrix pins both per
cell.
installing skopeo on hosted runners (Disable APT retries before installing skopeo on hosted runners #300, CVE-2026-109518). The published
service image is unchanged by this.
The service image
durableworkflow/waterline:2.18.0is published separately after native acceptance.After merge
Do not tag from this PR. The order is in the agent report and follows
docs/image-publication.md: tag, GitHub Release, Packagist, native build, review, protected publish with acceptance, then the optional catalog inspection.🤖 Generated with Claude Code