Skip to content

fix(data-integrity): reject coercible non-binary converter inputs #308

Description

@seonghobae

Current canonical ownership

Draft PR #160 / branch fix/blob-size-preflight-20260811 is the sole active Inkspan writer for this converter binary-input trust boundary. Do not treat exact head/check snapshots in this issue as lifecycle authority; refetch PR #160, protected main, formal reviews/threads, live governance, and every applicable exact-head workflow immediately before any action. Active-PR source/tests and the PR body are higher-authority than this planning issue; protected main remains shipped truth until integration.

Acceptance contract

toUint8Array() accepts only the declared runtime binary categories: a genuine platform ArrayBuffer or an actual ArrayBufferView. Views use intrinsic typed-array/DataView capabilities; genuine Uint8Array inputs preserve their byte range after slot validation. Arbitrary runtime objects fail closed with TypeError('converter binary input is invalid.') before construction/coercion can evaluate caller-controlled length, iterators, accessors, or conversion hooks. Valid ArrayBuffer/view ranges, Node Buffer, zero-length input, browser/package behavior, and standalone no-service operation remain intact.

The canonical #160 regression corpus must machine-check this category and caller-interposition boundary. No network, persistence, authorization, tenancy, credentials, model/provider, deployment, migration, retention, or durable-audit authority moves into Inkspan.

Evidence rule

Predecessor workflow/review results are historical only. Pending, queued, skipped, cancelled, absent, stale, predecessor, status-only, or model-only evidence is non-passing. Exact-current-head technical success does not substitute for qualifying independent approval or then-live governance.

Integration boundary

Keep this issue open until #160 integrates under then-live governance. Keep #160 Draft/unmerged while #118 owns the frozen protected v0.6.0 publication/provenance boundary and exact-current-head gates plus qualifying independent approval remain incomplete. Do not create a competing converter writer, transfer predecessor evidence, self-approve, weaken gates, force-push/destructively rebase, move protected main, or fabricate release identity.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: apiAPI, protocol, event, or external contractarea: authAuthentication, authorization, identity, or tenant isolationarea: ci-cdCI, GitHub Actions, checks, release, or supply chainarea: dataDatabase, schema, migration, ETL, or lineagepriority: mediumNormal-priority or P2 workstatus: triagedOpen issue has an organization taxonomy assignmenttype: bugDefect or incorrect behavior

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions