config.mjs set accepts a repo-scoped key at the global layer without complaint #249
Labels
No labels
already-shipped
bug
documentation
duplicate
enhancement
external-review
good first issue
help wanted
in progress
invalid
needs-decision
proposal
question
security
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: crenshawdev/cadence-archived#249
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
config.mjs setapplies whatever it is passed, at whatever layer, with no scope validation. A user who writes a repo-scoped key into the user-global layer gets no complaint at write time.git.auto_closeis the sharp case: written globally, it produces no error, and the user only learns the repository never opted in when the close refuses at land time. The refusal is correct; the silence at write time is the defect.Where
cadence-core/bin/config.mjs:151-172(checkPairs) validates retired / unknown / type, and nothing about layer scope.:216-234(set) applies whatever passed.repoScoped*symbol exists anywhere undercadence-core/bin/.Why it is a general rule and not a special case
32 keys carry the schema
"src": "repo"marker. The fix reads that marker rather than hard-coding one key - which is also why it is its own piece of work: it changes write behaviour for 31 keys beyond the one that surfaced it.Moved to GitHub: https://github.com/crenshawdev/cadence/issues/98
This project's tracker is now GitHub; this repository remains the public archive. Closed here as migrated, not as resolved.
Scheduled onto v3.7.0 as a rider on #238 rather than on its own.
config.mjsmeasures 3reason:sites and 0 hints today, so it is already inside #238's counted set. This issue's whole effect is to add a fourth refusal to that same file. Done during v3.7.0, the new refusal ships with a hint by construction and the self-verify check #238 introduces polices it the moment it lands. Done after, it ships a hint-less refusal into a repo that has just made that a reported problem.