Module: Ecoportal::API::GraphQL::Diff

Defined in:
lib/ecoportal/api/graphql/diff.rb,
lib/ecoportal/api/graphql/diff/change.rb,
lib/ecoportal/api/graphql/diff/deploy.rb,
lib/ecoportal/api/graphql/diff/strategy.rb,
lib/ecoportal/api/graphql/diff/id_resolver.rb,
lib/ecoportal/api/graphql/diff/version_diff.rb,
lib/ecoportal/api/graphql/diff/pairing/engine.rb,
lib/ecoportal/api/graphql/diff/pairing/ledger.rb,
lib/ecoportal/api/graphql/diff/pairing/signals.rb,
lib/ecoportal/api/graphql/diff/cross_object_diff.rb,
lib/ecoportal/api/graphql/diff/pairing/candidate.rb,
lib/ecoportal/api/graphql/diff/command_synthesizer.rb

Overview

Diff engines over the page/template model.

VersionDiff handles the EASY, exact case — two snapshots of the SAME object (same ids), e.g. a UAT template at version N vs N+1 ("what did this ticket change"). The HARD case — pairing two DIFFERENT objects with different ids (UAT<->PROD, page<->template) — is an equivalence-matching problem handled by Diff::Pairing (multi-signal + learning ledger).

CommandSynthesizer turns a change-set into an ordered WorkflowCommand batch (the replayable "commit"); IdResolver fills in move-target ids from a target doc; Deploy orchestrates diff -> commands -> apply, gating on the honest unsupported list.

Strategy makes diffing a COMPOSABLE family (pairing x scope x move-sensitivity x intent); CrossObjectDiff is the cross-object front-end (pairs fields via Pairing::Engine, then emits the same Change output against the pairing map).

Defined Under Namespace

Modules: Pairing Classes: Change, CommandSynthesizer, CrossObjectDiff, Deploy, IdResolver, Strategy, VersionDiff