Skip to content

fix(workflows): reject mismatched run state IDs - #3899

Open
marcelsafin wants to merge 1 commit into
github:mainfrom
marcelsafin:fix/run-state-identity
Open

fix(workflows): reject mismatched run state IDs#3899
marcelsafin wants to merge 1 commit into
github:mainfrom
marcelsafin:fix/run-state-identity

Conversation

@marcelsafin

Copy link
Copy Markdown
Contributor

Summary

  • reject persisted run state whose run_id differs from the requested run directory
  • prevent a corrupt state file from redirecting later saves into another run
  • add regression coverage for mismatched stored identities

Testing

  • uvx ruff@0.15.0 check src tests
  • .venv/bin/pytest tests/test_workflows.py -q (873 passed)
  • .venv/bin/pytest -q (6106 passed, 176 skipped)

AI disclosure

GitHub Copilot helped identify the inconsistent identity boundary and review the implementation. I reproduced the failure and validated the final change with targeted and full test suites.

Assisted-by: GitHub Copilot (model: GPT-5.6 Sol, autonomous)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 31, 2026 08:27
@marcelsafin
marcelsafin requested a review from mnriem as a code owner July 31, 2026 08:27

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Rejects corrupt persisted workflow state when its run_id differs from the requested run directory.

Changes:

  • Validates stored and requested run IDs match before constructing RunState.
  • Adds regression coverage for mismatched identities.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
src/specify_cli/workflows/engine.py Rejects mismatched persisted run IDs.
tests/test_workflows.py Tests mismatched run ID rejection.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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