• v2.2.4 71de269ecf

    Ghost released this 2026-07-26 22:11:57 +03:00 | 22 commits to main since this release

    Installing a new module generation left the service unable to start at all.
    zapret-start.sh refused every launch with "compiled preset source binding
    changed before launch", and no amount of restarting or re-applying the preset
    cleared it — the cache had to be deleted by hand.

    compiled_cache_restore adopts a cached slot as the launch artifact, so it must
    apply exactly the binding the launcher re-checks. It screened on three of the
    four dimensions instead: logical name, source digest and config signature, but
    not the installation generation that compiled_artifact_binding_current also
    requires. The cache is keyed by the preset's source digest, so after an update
    the previous generation's slot kept being restored and kept being refused, and
    every later start reproduced it identically.

    The two checks are one check now: whatever restore adopts, the launcher
    accepts, because it is the same artifact and the same question one moment
    apart. A slot compiled by an earlier generation is refused here, and the
    compiler rewrites it.

    tests/shell/compiled-argv-cache.sh pins all three properties: the installed
    generation's slot is reusable, a previous generation's slot is not, and the
    two binding checks never diverge. It fails on the old screening.

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

    Downloads