{"version":"2.1.269","anchor":"permission-pattern-matching-reworked-to-support-real-negatio","canonical_anchor":"permission-pattern-matching-reworked-to-support-real-negatio","heading":"Permission pattern matching reworked to support real negation and per-source layering","tier":"use","area":"Permissions","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.269\/e\/permission-pattern-matching-reworked-to-support-real-negatio","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.269","markdown":"### Permission pattern matching reworked to support real negation and per-source layering\n\nPermission rules now support real negation patterns layered per source, including a bare `!` that negates every path.\n\n**What**\n\nThe matcher that decides whether a file path matches a read or write permission rule has been restructured. Rules are now grouped by their root path and by which \"source\" (layer) they came from, and a negated pattern (one starting with `!`) is now tracked and removed from earlier layers rather than just being another pattern. A bare `!` pattern on its own is now specifically recognized and logged as \"a negation of every path.\" Path lookups also gained an option to match targets case-insensitively.\n\n**Why**\n\nThis makes it possible to actually negate a previously granted permission pattern, including blanket-negating everything with `!`, and layers rules by where they came from so negations apply correctly across sources.\n\n- Area: Permissions\n- Tier: Use it now\n- Useful: 4\/5\n- Signal: 3\/5"}