Expand and harden the correspondence engine#132
Merged
Conversation
Three accepted ADRs seed this round of foreman-organized work: - Unified per-path dataset config model (selector + facets; dispatch override resolved before the tabular gate) - Inference disclosed + overridable; high-churn guardrail as backstop - Renderers are ecosystem-ignorant; ugly output from an unknown rule is an upstream bug
jcushman
marked this pull request as ready for review
July 10, 2026 15:09
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR advances binoc's correspondence-first engine with a coordinated set of dataset configuration, tabular analysis, rendering, performance, plugin catalog, and test-infrastructure changes.
dataset.pathsthe sole per-path and per-table configuration surface, with descriptor-derived dispatch,content_typeand forced-rule overrides, CSV dialect and shape facets, nested JSONrecords_path, row identity, structured-document node identity, and explicit validation for invalid facet/rule combinations.dataset.defaults.row_identityas the global default and uses presence-awarepaths[].row_identitypatches so named and positional selectors and null/duplicate policies override correctly. Removed the obsoletedataset.tablesmodel, flat row-identity aliases, selector merge/fallback code, and coexistence tests.content_summaryfacts for modified moves, bounded and round-robin examples, configurable verbosity/grouping, deduplicated details, humanized counts, and renderer-ignorance invariants. Removed the deadtabular_summaryrenderer channel.binoc[all]extra and the ignoredregistry=argument frombinoc.diff.Validation:
just fmtjust checkjust testjust lintUV_NO_CACHE=1 just docsgit diff --check main...correspondence-hardening(Auto generated pull request)