• v2.3.5 9c3c29197c

    Ghost released this 2026-07-28 15:48:38 +03:00 | 12 commits to main since this release

    package_contract_assemble_package builds a tree that is exactly the
    runtime manifest, and then every caller named the top-level entries
    again by hand to zip them. That second list has no authority and no
    way to stay in step: post-fs-data.sh was added to the manifest, the
    package contract, the installer and the release build, and the CI
    workflow's own copy still omitted it — so the published archive failed
    package_contract_validate_zip_names on a file the contract required.

    There is nothing to enumerate: the archive is the assembly root. The
    release build, the CI workflow and the three packaging fixtures now
    archive it whole, which removes the class of failure rather than the
    instance. The test helper's store-only fallback normalizes the ./
    prefix find adds, so both implementations produce the same names.

    Co-Authored-By: Claude Opus 5 noreply@anthropic.com

    Downloads