What's Changed
- fix(antd): public uploads count the DataMap chunk; core not-found is 404 by @Nic-dorman in #270
- feat(antd): gRPC prepare-upload carries the already-stored preflight; mapped in all 11 gRPC SDKs by @Nic-dorman in #271
- feat(ffi): resumable external-signer finalize — retain the paid attempt on a partial store by @Nic-dorman in #272
- feat(antd-dart): publish as antd_client on pub.dev — package metadata, OIDC publish workflow, Dart CI by @Nic-dorman in #274
- feat(antd, antd-go, antd-rust): signed-quote wrapper parity on gRPC + VerifyQuotes cap hardening by @Nic-dorman in #273
- feat(antd): resumable external-signer finalize — retain the paid attempt on a partial store by @Nic-dorman in #275
- feat(antd-go): surface the daemon's retryable partial-upload contract; bounded same-payment retry in the external-signer example by @Nic-dorman in #277
- feat(antd-swift): typed partial-upload error with counts + retryable; bounded finalize retry in the external-signer example by @Nic-dorman in #284
- feat(antd-zig): typed partial-upload error with counts + retryable; bounded finalize retry in the external-signer example by @Nic-dorman in #291
- fix(antd-zig): finalizeUpload builds the request from upload_id and the tx-hash map instead of posting the caller's JSON verbatim by @Nic-dorman in #293
- feat(antd-py, antd-mcp): typed PartialUploadError with counts + retryable; MCP finalize errors carry the counts; bounded finalize retry in the external-signer example by @Nic-dorman in #289
- feat(antd-rust): typed PartialUpload error with counts + retryable; bounded finalize retry in the external-signer example by @Nic-dorman in #290
- fix(antd): read the ADR-0005 bootstrap_peers.toml shape; repin ant-core 0.10.0 (ant-cli-v0.3.8) by @Nic-dorman in #294
- ci: proto-drift guard for antd-swift stubs and antd-kotlin proto copy; regenerate Swift stubs by @Nic-dorman in #276
- feat(antd-php): typed PartialUploadError with counts + retryable; bounded finalize retry in the external-signer example by @Nic-dorman in #280
- feat(antd-js): typed PartialUploadError with counts + retryable; bounded finalize retry in the external-signer example by @Nic-dorman in #282
- feat(antd-lua): typed partial-upload error with counts + retryable; bounded finalize retry in the external-signer example by @Nic-dorman in #283
- feat(antd-ruby): typed PartialUploadError with counts + retryable; bounded finalize retry in the external-signer example by @Nic-dorman in #288
- feat(antd-java): typed PartialUploadException with counts + retryable; bounded finalize retry in the external-signer example by @Nic-dorman in #279
- feat(antd-csharp): typed PartialUploadException with counts + retryable; bounded finalize retry in the external-signer example by @Nic-dorman in #286
- fix(antd-php): typed PARTIAL_UPLOAD counts; a non-string error field no longer throws TypeError by @Nic-dorman in #295
- fix(antd-lua): PARTIAL_UPLOAD counts must be JSON numbers, not coerced strings by @Nic-dorman in #296
- fix(antd-zig): a float or out-of-range PARTIAL_UPLOAD count no longer panics by @Nic-dorman in #298
- fix(antd-lua): external-signer example no longer passes daemon values to the shell unescaped by @Nic-dorman in #305
- feat(antd-kotlin): typed PartialUploadException with counts + retryable; bounded finalize retry in the external-signer example by @Nic-dorman in #285
- fix(antd-kotlin): map gRPC StatusException to typed AntdException on every method, not just wallet and finalize by @Nic-dorman in #292
- feat(antd-elixir): typed partial-upload error with counts + retryable; bounded finalize retry in the external-signer example by @Nic-dorman in #278
- feat(antd-dart): typed PartialUploadError with counts + retryable; bounded finalize retry in the external-signer example by @Nic-dorman in #281
- feat(antd-cpp): typed PartialUploadError with counts + retryable; bounded finalize retry in the external-signer example by @Nic-dorman in #287
- fix(antd-rust): gRPC PARTIAL_UPLOAD is retryable only when the counts parse by @Nic-dorman in #297
- fix(antd-go): retryable only when gRPC counts parse, anchored gRPC gate, range-checked REST counts by @Nic-dorman in #299
- fix(antd-swift): retryable only when gRPC counts parse; anchor the gRPC PARTIAL_UPLOAD gate by @Nic-dorman in #300
- fix(antd-py, antd-mcp): typed PARTIAL_UPLOAD fields, retryable only when gRPC counts parse, anchored gRPC gate by @Nic-dorman in #301
- feat(antd-zig): retention_known distinguishes unknown from confirmed non-retention; document error.PartialUpload by @Nic-dorman in #302
- feat(antd-php): retentionKnown distinguishes unknown from confirmed non-retention; retry helper keeps the typed error by @Nic-dorman in #303
- feat(antd-ruby): retention_known distinguishes unknown from confirmed non-retention by @Nic-dorman in #304
- feat(antd-csharp): RetentionKnown distinguishes unknown from confirmed non-retention; retry helper keeps the typed exception by @Nic-dorman in #306
- feat(antd-java): retentionKnown distinguishes unknown from confirmed non-retention; retry helper keeps the typed error by @Nic-dorman in #307
- feat(antd-js): retentionKnown distinguishes unknown from confirmed non-retention; retry helper keeps the typed error; external-signer-flow §6 recovery guidance by @Nic-dorman in #308
- feat(antd-lua): retention_known distinguishes unknown from confirmed non-retention; document the partial_upload error type by @Nic-dorman in #309
- chore(antd): bump version to 0.14.0 by @Nic-dorman in #310
Full Changelog: v0.13.0...v0.14.0