- Ya
- 27 Agosti 2026, 20:39 UTC
- Mwandishi
- Kamo
- Ahadi ya
- 5210fe6
Task 8, mirror 1 of 6 (the Java enum) and mirror 2 (the parent(...) line). Id 277 was re-derived from origin/main immediately before allocating it, NOT taken from the plan: git show **************** | grep -oE '\(\s*[0-9]+\s*,' ... count: 267 max: 276 missing up to max: [1, 2, 19, 64, 72, 73, 74, 75, 76] Every gap below the maximum is one of the nine already-burned ids, so 277 is the first free one. MANAGE_PRICING(276) is the previous last constant. This matters more than it looks: RoleRightsSyncService seeds at boot and its Collectors.toMap throws on a duplicate id, which stops EVERY service booting. Parent is MANAGE_SUBSCRIPTION_SETTINGS, mirroring MANAGE_PAYROLL_PROVIDER under MANAGE_HRS_SETTINGS. Deciding WHERE an organization's invoices and payments are transmitted is a commerce-settings act. Not a child of an invoice VIEW right — anybody who can read invoices must not be able to redirect them. Not a root — a role that loses commerce settings would keep the redirect grant live. ServiceType.POS because the permission editors filter with right.serviceType === section.serviceType and there is exactly one commerce section. A right whose serviceType matches no section cannot be granted at all, and nothing says so. Counts move by exactly two, as the shape predicts: total 267 -> 268 and children 193 -> 194. Neither root bucket moves, because MANAGE_SUBSCRIPTION_SETTINGS is itself a child of ACCESS_COMMERCE and so never appears in getRoots(). RED (test edited first — counts bumped and the placement case added, before the enum constant existed): [ERROR] **************** cannot find symbol symbol: variable MANAGE_BILLING_PROVIDER location: class **************** [ERROR] **************** cannot find symbol [ERROR] **************** cannot find symbol GREEN: Tests run: 13, Failures: 0, Errors: 0 (RoleRightHierarchyTest) Tests run: 17, Failures: 0, Errors: 0 (with RoleRightTypeHrTabRightsTest) Full library suite: Tests run: 2289, Failures: 0, Errors: 0, Skipped: 0 Both tests proven able to fail, by mutation, observed verbatim: A. **************** ...) -> **************** ...): **************** expected: MANAGE_SUBSCRIPTION_SETTINGS but was: VIEW_SUBSCRIPTION_INVOICES B. parent(...) line deleted entirely — three tests red at once, which is the whole point of pinning counts as well as placement: **************** expected: MANAGE_SUBSCRIPTION_SETTINGS but was: null **************** expected: 194L but was: 193L rootsAreASensibleSubset Expected size: 74 but was: 75 Both reverted. Built and tested in an ISOLATED tree (git archive of origin/main + these two files, own target/, own -Dmaven.repo.local). This checkout is shared with other sessions and currently carries ~7 dirty files that are not mine; a red suite run here would have been someone else's TDD red phase, not a regression. Those files were left untouched.