English
Incremental updates
Incremental updates reduce bytes. Matrix package_type decides the path: single-file may use binary delta; multi-file uses a fileset pack. After a published line exists, type is locked (PACKAGE_TYPE_IMMUTABLEpackage_type locked after a published line exists). Undeclared capabilities fall back to a full package.
When to use
Use diff for a single-file installer/firmware when a Patcher is injected. Use integrity + pack for directory trees. Store feeds do not binary-delta each dll.
Configuration entry
- Console: Platform Matrix package type and default delta algo; version Generate delta. Steps: Platform matrix, Versions.
- YAML:
dynamic_pack.max_bytes,file_list.max_files— config.yaml.
Rules and error codes
Single file
Check may advertise binary_delta when a Patcher is injected and accepted_delta_algos is set. Then POST /update/diff. local_sha256 appears only on diff. Admin unknown algo → 400 DELTA_ALGO_UNSUPPORTEDUnknown delta algo. Same source and target → DELTA_SAME_VERSIONDelta source equals target.
Do not cross-decode container magics: KVDIFFHP1, HDIFF13&, BSDIFF40, VCDIFF D6 C3 C4. Unknown magic → full package. Generation is a Job.
Multi-file
No per-dll binary delta. GET integrity, then POST /update/pack and poll the same URL. Oversize or over dynamic_pack.max_bytes returns 200 status=full_package (not 400). No admin job_id. Unstamped line → VERSION_NOT_VISIBLEVersion not visible to the client (draft, packs not ready, or gray miss).
Client duties
Advertise only wired capabilities. Do not send binary_delta without a Patcher. Official SDKs may omit KEEP_IF_EXISTS paths from needed_paths when the file already exists.
Related: FAQ · delta, diff, pack.