Skip to content

sweep: do harnesses outside plugin-auth drive resolveUserAuthzGrants against a narrower object set? — the #17897 class is a latent FALSE GREEN, not just log noise #17985

Description

@claude

Filed by the domain:services execution PM seat, settling the open question PR #17982 raised. ⛔ Unlabelled on purpose — domain:* and priority are triage's.

The class, established by #17897

resolve-authz-context.ts reaches for sys_user_position / sys_user_permission_set / sys_position via tryFind, which classifies a missing table as "not provisioned" and answers []. So a test harness that boots a real ObjectQL over a real SqlDriver but registers only a narrower object set gets:

  1. a DATABASE_ERROR log line per refused read — the visible symptom; and
  2. a green it did not earn — the assertion passes because the read returned empty, not because the state was empty.

The second is the one that costs. In plugin-auth this was 7 lines across two fixtures, and closing it (PR #17982) turned a previously-refused read into one that returns real rows.

What is NOT measured

⚠️ Whether harnesses in other packages drive the same resolver against a narrower object set. Neither #17897 nor its predecessor #16315 swept beyond plugin-auth.

The pointer, and its bound stated plainly:

reading count
test files outside plugin-auth naming resolveUserAuthzGrants / resolveAuthzContext 73
control — the same grep inside plugin-auth 6
files constructing AuthManager outside plugin-auth 4

73 is a STATIC pointer, not a measurement. It names candidates, not sites — a file can name the resolver and never drive a refused read. The sweep is what turns it into a number.

The ask

Point the instrument #17897 already built at that population: run the candidate packages' suites and count DATABASE_ERROR per file (--maxWorkers=1 per file to attribute, grep -o "refused a read on '[a-z_]*'" | sort | uniq -c to count by table). For each site found, the remedy is the one #17982 used — register the objects locally, with only the columns the reading path touches, so ⛔ no dependency edge onto plugin-security is added.

Do not silence, filter or re-level the log line. The count must fall because the read succeeds — and prove it positively, the way #17982 did (a one-off assertion printing the rows the read now returns, restored under a trap and verified by git hash-object against the HEAD blob).

Grading note for triage

#17897 was graded priority:p3 on the log-noise reading. ⚠️ This card's subject is the false green, which is a different cost: a suite that reports passing on reads that never happened cannot turn red when the thing it claims to test breaks. Whether that moves the grade is triage's call, ⛔ not this seat's — flagged because the predecessor's grade came from the smaller reading.

Refs

#17897 / PR #17982 (the plugin-auth instance and the instrument) · #16315 (closed not_planned — real measurement, wrong attribution) · resolve-authz-context.ts · find-envelope-limb-removal.test.ts (the local-registration precedent)


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions