Skip to content

resume scope: decide the source-side identity (endpoint field vs config fingerprint) #1583

Description

@hugocorreia90

The resume scope (#1573, #1582) covers pipeline name, --filter, and TARGET routing. It records nothing about the source. A [source] edit between runs still skips silently.

Reproduce

  1. Run a replication pipeline to success.
  2. Edit its [source] block — point source.discovery.adapter at another adapter, or change schema_pattern so discovery maps different source tables onto the same target names.
  3. rocky run --resume-latest after a failure. completed_keys matches the checkpoint's Success entries by TARGET key, so tables never copied from the new source are skipped and the run exits 0.

Same code path as the endpoint hole #1582 closes, one field short.

The decision

What defines "the same run"? Two candidate shapes:

Refusing more is fail-closed; refusing everything makes --resume-latest useless after any tweak. This is a contract call, not a patch.

Found by independent adversarial review (Codex) of #1582's branch; the reproduction was verified against the real code path before filing.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions