Skip to content

VSAM lineage: a CALL through a data item with one provable value takes its caller step DDs (Part of #5072) - #5419

Merged
squid-protocol merged 1 commit into
mainfrom
churn/5072-20261018T0653Z
Oct 18, 2026
Merged

squid-protocol merged 1 commit into
mainfrom
churn/5072-20261018T0653Z

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Part of #5072.

What

GalaxyIR.dataset_lineage follows a CALL through a data item (CALL WS-TARGET) into the caller's step DDs, only where the item has one provable value: a single candidate from dynamic_call_targets() (VALUE or one MOVE literal), no MOVE from an unknown item, and the program is in the repo. Several values, a table, an unknown source or an unresolved program stay unfollowed (refused, as before).

Step-level DD scoping, the other unchecked item, had already landed in #5348 (the checkbox was stale).

Same-mechanism fix in this PR: the static path used to follow any CALL the resolver bound through a VALUE even when a MOVE put another value in the item (over-binding). Identifier CALLs now go through the one-provable-value check only.

Class table (callee propagation of DD bindings)

Member Status
static CALL #5068
step scoping #5348
CALL via data item, one provable value this PR
CALL via data item, VALUE overridden by a MOVE this PR (no longer followed)
CALL via table / several values refused; no burned program needs it
dynamic LINK / XCTL CICS, no JCL DD; out of scope

Burned estates: no program needs this (DBB epscsmrt has no JCL runner and its target is a table; CardDemo CSDB2RPY calls external DSNTIAC). Sweep scope; no proof moves.

Evidence

test_vsam_repositories.py: 34 pass (7 parametrized value classes, step scoping, cycle). pr_gates --fast 6/6, --ratchets 8/8 (no re-bless needed), time ratchet clean.

Cross-repo: none.

🤖 Generated with Claude Code

…s its caller's step DDs (Part of #5072)

A data-item CALL is followed only when the item has a single candidate (VALUE or one MOVE literal) and no MOVE
from an unknown item. A VALUE the resolver bound but a MOVE overrides is no longer followed (it over-bound).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@squid-protocol squid-protocol added the shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md label Oct 18, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol marked this pull request as ready for review October 18, 2026 07:05
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol enabled auto-merge (squash) October 18, 2026 07:07
@github-actions

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

@squid-protocol
squid-protocol merged commit 882b881 into main Oct 18, 2026
76 checks passed
@squid-protocol
squid-protocol deleted the churn/5072-20261018T0653Z branch October 18, 2026 07:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant