Skip to content

docs(protocol): document the content-miss wire contract (-32008 capped / -32003 / proxy:) (#2192) - #70

Merged
MichaelTaylor3d merged 2 commits into
mainfrom
docs/2192-miss-wire-contract
Aug 6, 2026
Merged

docs(protocol): document the content-miss wire contract (-32008 capped / -32003 / proxy:) (#2192)#70
MichaelTaylor3d merged 2 commits into
mainfrom
docs/2192-miss-wire-contract

Conversation

@MichaelTaylor3d

Copy link
Copy Markdown
Contributor

What

Documents the dig-node content-miss wire contract so integrating developers can handle a miss without reading source — the ecosystem-docs half of DIG-Network/dig_ecosystem#2192 (the SYSTEM.md half is committed on the superproject).

  • -32008 CONTENT_REDIRECT — now documents the CAPPED candidate set (MAX_REDIRECT_PROVIDERS), the "node names holders but never dials/probes them" rule, and the proxy: true fallback cross-reference.
  • proxy: (default off) — the explicit fetch-on-miss field on dig.getContent/dig.fetchRange, added to the peer-network spec (distinct from the operator-level fetch-through).
  • -32003 CONTENT_MISS_RATE_LIMITED — the new per-requestor miss-lookup rate-limit error (transient; back off and retry), catalogued with its token-bucket semantics.
  • -32009 RANGE_METADATA_UNREPRESENTABLE — left as-is (holder-fatal); the docs already had it correct.

Why the -32003/-32009 split

-32009 was briefly double-assigned (dig-node minted a local CONTENT_MISS_RATE_LIMITED there, colliding with RangeMetadataUnrepresentable). DIG-Network/dig_ecosystem#2247 moved CONTENT_MISS_RATE_LIMITED to -32003 (canonical in dig-rpc-protocol 0.7.0; adopted in dig-node). So -32003 is transient (retry the same request) and -32009 is holder-fatal (abandon that holder) — a client must distinguish them.

Machine-spec drift gate

The catalog (scripts/dig-spec.mjs), the prose table (docs/support/error-codes.md), and the regenerated static/*.json move together in the same commit — npm run gen passes (drift gate green, 65 codes across 4 surfaces). Full 14-locale npm run build succeeds (no broken links).

Version

0.15.0 (MINOR — new documented capability; bumped with the first commit on this branch).

Closes DIG-Network/dig_ecosystem#2192. Refs DIG-Network/dig_ecosystem#2247.


Generated by Claude Code

claude added 2 commits August 6, 2026 12:34
…k (WIP #2192)

Salvage anchor. The -32008 (capped redirect set + proxy: fetch-on-miss)
half is complete. The -32009 CONTENT_MISS_RATE_LIMITED row is intentionally
NOT added yet: it collides with dig-rpc-protocol's -32009
RangeMetadataUnrepresentable (already documented here), so the code must be
disambiguated first. Version bump held with this WIP.

Co-Authored-By: Claude <noreply@anthropic.com>
…247)

The per-requestor miss-lookup rate-limit error, split off the former
-32009 collision. -32009 stays RANGE_METADATA_UNREPRESENTABLE (holder-fatal);
-32003 is the transient back-off signal. Machine catalog + prose + regenerated
static specs move together (drift gate green, 65 codes).

Refs #2192, #2247.

Co-Authored-By: Claude <noreply@anthropic.com>
@MichaelTaylor3d
MichaelTaylor3d merged commit 1ffb941 into main Aug 6, 2026
7 checks passed
@MichaelTaylor3d
MichaelTaylor3d deleted the docs/2192-miss-wire-contract branch August 6, 2026 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants