fix(actions): unshadow the per-run artifact listing as run-artifacts; guard sibling name collisions #302
No reviewers
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea!302
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "issue-291-duplicate-artifacts-command"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Fixes #291: two cobra commands named
artifactswere registered on theactionsparent - the repository-wide group (list/get/delete/download) and the per-run listing. Cobra's Find returns the first match, so the per-run listing was unreachable andactions --helplistedartifactstwice.actions run-artifacts <run-id>- which is where the naming was always headed: the MCP action is alreadyrun_artifacts, and a parity alias (actions/artifacts->actions/run-artifacts) had been papering over the CLI's colliding name. The rename lets CLI and MCP meet on one canonical key, and the now-dead alias is removed. The repo-wideactions artifactsgroup is unchanged (it was only ever shadowing, not shadowed).TestNoSiblingCommandNameCollisions(internal/parity): walks the whole cobra tree and fails if any parent's direct children collide on Name() or Aliases - proven RED on the pre-fix tree (caught exactly the twoartifactschildren) and GREEN after. The class can't ship silently again.artifactslisted exactly once,run-artifactsinvocable, both operations live. COMPARISON.md row distinguishes repo-scope from run-scope; reference docs regenerated as-emitted.Full gate green in the worktree (all cheap checks + test-race, staticcheck, govulncheck, gosec, modernize, docs-verify, cross-compile, mcp-conformance: PASS).
Closes #291