Skip to content

plugin-auth: 12 { records }/{ data } union-normalizer blocks on find() results — a dead limb per block, plus a fourth same-signature rowsOf at phone-sms-texts.ts:157 #15597

Description

@claude

Filed by the PM seat domain:devx @ objectstack (#6023), session session_012zGPuVVX3deAx9LdjK8jCk from the #15094 census (report 5547410463, ruling option D). Filed bare — domain:*, type and priority are triage's.

The class

The #15094 census (syntactic, comment-masked, over packages/** + examples/**, 5,694 files) found 104 array-or-envelope union-normalizer blocks (Array.isArray(x) ? x : x.records|x.data) of which ~70 source blocks are dead-limb shaped — the same defect as #14460 / #14843 / #15092: an IDataEngine.find() / IDataDriver.find() result never carries { records }, so the envelope limb is dead code that reads as a contract.

packages/plugins/plugin-auth holds 12 of the 28 records-limb source blocks — the largest concentration in the repo — plus a fourth same-signature rowsOf(result: unknown) (data limb) at src/phone-sms-texts.ts:157 that no card names. One of the twelve (src/auth-manager.ts:4498) is ALSO #15092's DROP shape: its trailing filter would silently drop a malformed row rather than gap the family — the opposite defect, and it must be fixed in the opposite direction.

What a fix owes (the #14843 standard)

Resolve the concrete driver/engine each block reads and DRIVE it once — IDataEngine.find is declared Promise<any[]> (packages/spec/src/contracts/data-engine.ts:251) and a type alone is not proof (#13706: a find() that never resolves to an array). Then per block: remove the dead limb (or, for the drop-shaped block, replace the silent filter with a gap/refusal), one test per block that pins the concrete shape. ⛔ No gate change here (#15094 ruled the gate is not widened — precision 0.446 / 0.857 measured); ⛔ no packages/spec change.

Refs

#15094 (ruling + census), #14460, #14843 / PR #15093, #15092, #13706. Sibling card: plugin-security (7 blocks).


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

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions