fix: bind gate consumers to artifact path authority#487
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5e0955acfa
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ledger_path = ( | ||
| _resolve_path(ws, ledger, "") | ||
| if ledger is not None | ||
| else resolved_artifact_paths["claim_ledger"] | ||
| ) |
There was a problem hiding this comment.
Use the same ledger binding for finalize completion
When stage_id='finalize' and the artifact contract customizes claim_ledger, this now records the generated gate report's metadata.ledger from the contract-resolved path, but _finalize_quality_gate_pass_reasons still requires output/intermediate/claim_ledger.json. In that custom-path workspace, a finalize quality report produced by this function will be rejected by complete_stage_transaction(..., stage_id='finalize') for mismatched ledger metadata, so the finalize stage cannot complete after a successful gate run.
Useful? React with 👍 / 👎.
Merge Unit
Blocking predecessor for #484. This PR contains only the shared artifact path authority and gate-impacting consumers. #484 remains frozen until this merges.
Opening Contract
Semantic checked-input/custom-path lifecycle is explicitly outside this PR. This PR only fail-closes missing semantic dependency path bindings already handled by the shared validator.
State x Path Matrix
Scope
Final head:
5e0955ac.Complete PR diff: 10 files, +1121/-49.
Production modules: 7.
artifact_paths.pycontracts_loader.pyartifact_registry.pycompletion_gates.pyclaim_support_matrix.pyatomic_reader_projection.pyquality_gates/state.pyTests: 3.
test_runtime_state.pytest_quality_gates_commands.pytest_atomic_reader_projection.pyNo #484 intake code is imported or required.
_validate_artifacthas exactly two production callers; both must pass the complete path context.Validation
431 passed2872 passedgit diff --check: passedDependency
After this predecessor merges, #484 must rebase onto new main and remove its duplicate path-authority implementation before review resumes. MU-4 remains blocked.