lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

pull_target_evidence.v1.json (2148B)


      1 {
      2   "schema": "radroots.pull-target-evidence.v1",
      3   "owner": "radroots_sync",
      4   "status": "implemented",
      5   "scope": "One explicit bounded Engine::pull call with its exact target set, selector, initial cursor and deadline.",
      6   "max_targets": 64,
      7   "max_pages": 1000,
      8   "target_order": "Stable validated request order; every requested target is represented in a newly measured receipt, including when no page returns.",
      9   "summary_fields": [
     10     "target",
     11     "pages_observed",
     12     "incomplete_pages",
     13     "missing_outcome_pages",
     14     "last_incomplete"
     15   ],
     16   "counting": "Every returned validated page increments pages_observed for every requested target. A present non-complete typed outcome increments incomplete_pages and replaces last_incomplete. An absent outcome increments missing_outcome_pages without fabricating a transport state.",
     17   "bounds": "Use the existing target-set and pull-page constants. Retain no additional messages, event bodies or per-page list. Reject an oversized serialized summary sequence before retaining its extra item; reject duplicate targets and invalid or inconsistent summary counters.",
     18   "complete_evidence": "A summary reports all_pages_complete only for positive pages_observed with zero incomplete_pages and zero missing_outcome_pages. Callers must independently require appropriate pull termination and inspect the request scope; no global history is proved.",
     19   "compatibility": "Keep target_outcomes as the last available outcome for each target. Add optional target_summaries. Missing or null summaries in legacy deserialization remain unknown; newly measured receipts always contain summaries. Existing source-page and transport behavior is unchanged.",
     20   "source_failure": "No returned page means no new target observation. Preserve earlier summaries and the existing SourceFailed termination; never infer a target-specific failure or successful completion from a missing source response.",
     21   "non_goals": [
     22     "new scheduler, clock or transport policy",
     23     "global-history completeness",
     24     "per-page history or unbounded diagnostics",
     25     "release, Nix, device or deployment qualification"
     26   ]
     27 }