Skip to content

v0.107.0 ​

v0.107.0 is a non-breaking reliability release that makes acquisition connector execution auditable and retry-aware.

What Changed ​

AreaChangeWhy it matters
Connector attemptsmax_attempts / MaxAttemptsLets callers opt into retrying transient connector failures without changing existing single-attempt behavior
IdempotencyX-ContextDB-Acquisition-Idempotency-KeyGives connector services a stable key for task, connector, and payload identity across retries
ReceiptsAcquisitionExecutionReceipts and REST /acquisition/receiptsRecords append-only audit evidence for every executed connector attempt
Retry candidatesAcquisitionRetryCandidates and REST /acquisition/retry-candidatesGroups unresolved failed connector attempts without sending retries
Retry guidanceAcquisitionRetryRecommendations and REST /acquisition/retry-recommendationsAdds read-only backoff timing and retryability reasons for operators and dashboards
Feature metadataacquisition-connector-retry-receiptsLets live services advertise connector durability support

Flow ​

Dry runs remain non-mutating. Executed runs now send payload SHA and idempotency headers to connectors, classify retryable failures such as 429, 502, 503, and 504, record a receipt for each attempt, and only write returned items after source allow-list filtering.

json
{
  "budget": 2,
  "max_results": 3,
  "max_attempts": 2,
  "execute": true,
  "connectors": [
    {
      "id": "openai-web",
      "type": "search",
      "endpoint": "http://localhost:7780/openai/search",
      "allowed_source_ids": ["openai:web"]
    }
  ]
}

After execution, inspect receipts and retry state:

bash
curl "http://localhost:7701/v1/namespaces/my-app/acquisition/receipts"
curl "http://localhost:7701/v1/namespaces/my-app/acquisition/retry-candidates"
curl "http://localhost:7701/v1/namespaces/my-app/acquisition/retry-recommendations"

Compatibility ​

This release is additive. Existing dry-run previews, custom connectors, provider adapters, SDK calls, and source-constrained writes continue to work unchanged. Automatic retries happen only when callers set max_attempts greater than 1.

Verification ​

The release adds SDK tests for successful execution receipts, retryable 429 recovery with stable idempotency keys, unresolved 503 retry candidates, and retry recommendation readiness.

Released under the MIT License.