Release Notes

Release notes for the v3.0.x line, newest release first. Every patch in this line is on this page.

v3.0.0 introduces breaking changes. Existing integrations must be reviewed and updated. V2 endpoints are removed, ViPaq strings from earlier versions no longer decode, and health check IP restrictions are matched differently. See the Migration Guide.

🛡️ The Service Module has no public documentation. Changes to it are listed on this page like anything else, but no migration steps are given for them. A breaking change to it does not force a major version: a minor release can break it, a patch will not. If you self-host with the Service Module enabled, read every minor release before upgrading. See the Service Module page.


v3.0.0

Released 1 September 2026 - release on GitHub

🔎 Overview

⚙️ Core Changes

🧪 Diagnostics Module

🔌 Service Module

🎨 UI Module

📈 Algorithms

🏗️ Internal Work

Everything below is work on the repository. None of it reaches the image.

📚 Versioned Docs

🛠️ Migration Guide

To upgrade to v3.0.0, follow these steps:

  1. Remove all V2 usage
    • Any calls to V2 endpoints must be removed or migrated.
    • Replace /api/v2/presets, /api/v2/fit/by-custom, /api/v2/fit/by-preset/{preset}, /api/v2/pack/by-custom, and /api/v2/pack/by-preset/{preset} with their V3 equivalents.
  2. Switch to V3 endpoints
    • V3 requires an algorithm to be selected, where V2 used a fixed one, and drops V2’s other parameters.
    • See the v2.1.x documentation for the old contract, and Version 3 for the new one.
  3. Regenerate all ViPaq strings
    • The format was rebuilt and is not backwards compatible.
    • Strings from earlier versions no longer decode, and there is no fallback reader.
    • Re-run the packing request to get a new one. Any stored string - a saved link or a bookmarked result - is stale.
    • This applies to V3 responses as well, even though V3 is otherwise unchanged.
  4. Do not mix versions
    • Images before v3.0.0 produce the old ViPaq format; v3.0.0 onward produces and reads only the new one.
    • An encoder and a decoder on different sides of this release will not interoperate.
  5. Update Packing Logs configuration
    • Move Path, FileName, DateFormat, and ChannelLimit out of the nested Packing block, directly under PackingLogs, and delete the Fitting block.
    • Left in the old shape with Enabled: true, startup validation now fails.
    • Repoint log collection from data/pack-logs/packing/ to data/pack-logs/. The old packing/ and fitting/ directories are safe to remove.
  6. Review health check RestrictedIPs
    • Replace any start-end entries with CIDR - 192.168.1.0-192.168.1.255 becomes 192.168.1.0/24. Left as they are, startup validation now fails.
    • Re-check any CIDR entry. It now covers what it says, which is far less than before - confirm the addresses you expect are still inside it, or you will lock yourself out.
    • A range that does not line up with a CIDR boundary must be split into several entries, or widened to the enclosing subnet.
    • Drop any leading zeros - 010.10.10.10 becomes 10.10.10.10, and note it used to admit 8.10.10.10, so check that host was not the one you meant. Write IPv6 entries in the short lowercase form: 2001:0DB8::1 becomes 2001:db8::1.
    • If Binacle.Net runs behind a proxy, load balancer or CDN, enable Forwarded Headers as well. Without it the list is compared against the proxy’s address and can never match your monitoring system.
  7. Drop BINACLEAPI_CONNECTION_STRING
    • Delete it from any compose file, Kubernetes manifest or environment file. It is ignored, not rejected, so nothing fails to start and nothing warns.
    • Only affects you if you set it. Pointing the shipped demo at a different API host is no longer possible; the demo calls the API it is served from.
    • Any Config_Files/UiModule/ directory you mounted or edited can be removed. The image no longer reads it.
    • Bookmarks to /PackingDemo or /ProtocolDecoder need updating to /packing and /vipaq.
  8. Update any pinned cosign verify command
    • The repository moved to the binacle-labs organization and the certificate identity moved with it. Replace ChrisMavrommatis with binacle-labs in --certificate-identity-regexp.
    • Only affects you if you verify signatures in a script or a pipeline. A stale identity fails the check, it does not warn - so it reads as a tampered image rather than an out-of-date command.
    • See Verifying a Release for the full command.