You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As a lead, I want to be told when two component sets resolve on my account, so that I learn about a collision the harness resolves by no contract and warns nobody about.
Acceptance Criteria
Given a repository-local Nexus component set and an installed one both resolve on the account, when any verb runs, then a diagnostic naming both locations is written once to standard error.
Given the install location points at a checkout's authored tree, when the check runs, then no duplicate is reported, because the comparison is over resolved real paths.
Given two accounts on one machine each hold a component set, when the check runs for either, then no duplicate is reported — the scope is the user account, not the machine.
Given a duplicate is detected, when the verb finishes, then its exit code and its standard output are unchanged by the diagnostic.
Notes
Two copies of one component on one account is a defect rather than a supported configuration, and a component cannot fix the collision, so the toolkit must report it.
This story depends on the verbs above existing, because its diagnostic fires when one runs.
Detection is the safety net, not the mechanism. The dangerous case — an old command body succeeding because its copy is right there, then running old code against a new store layout — never reaches this guard at all. That is why deletion in Story 3 is load-bearing and this story is not.
As a lead, I want to be told when two component sets resolve on my account, so that I learn about a collision the harness resolves by no contract and warns nobody about.
Acceptance Criteria
Notes
Two copies of one component on one account is a defect rather than a supported configuration, and a component cannot fix the collision, so the toolkit must report it.
This story depends on the verbs above existing, because its diagnostic fires when one runs.
Detection is the safety net, not the mechanism. The dangerous case — an old command body succeeding because its copy is right there, then running old code against a new store layout — never reaches this guard at all. That is why deletion in Story 3 is load-bearing and this story is not.