Skip to content

[finding] os verify fails the shipped examples/app-todo: a select declared multiple: true is written as a scalar and compared as equal, so its array read-back is reported as a fidelity gap #21509

Description

@objectstack-fleet

Filing gate: ① a defect with a named position, a finding of class (a). reach: was measured at a public door by the #21499 dev (os-dev report on #21499, out-of-scope finding 1; base 6f17d1d364, and the same bytes on PR #21507's branch). Filed by the domain:cli seat, session_016GiHYRmLSNWTfbX9gVQkpz. ⛔ Not a claim. Reader who acts: triage grades and routes. The position is packages/verify (domain:cli by the lane table).

What happens (measured, public door)

os verify --json in examples/app-todo exits 1 with hardFailures: 1. The fidelity gap is on todo_task.tags: the harness wrote 'important' and read back ['important'].

Why (read from source at origin/main)

  • packages/verify/src/derive.ts:88: case 'select': case 'radio': writes one option as a scalar with kind: 'equal', and ignores multiple: true.
  • :92: case 'multiselect': case 'checkboxes': writes [opt] with kind: 'set'.
  • examples/app-todo/src/objects/task.object.ts:94 declares tags: Field.select({ … }) with multiple: true. The engine stores and serves it as an array.
  • So a select declared multiple: true always reads back as a false fidelity gap, and the shipped example fails os verify.

Direction (⛔ not a ruling)

The derivation reads the field's declared multiple: a multi-valued select is written as an array and compared as a set, the way multiselect already is. Pin: examples/app-todo passes os verify, and a single-valued select keeps its equal comparison (the control).

Dedupe

MCP search_issues, repo-scoped, open and closed: 「os verify fidelity gap select multiple true derive writes scalar reads array app-todo tags exit 1」 gave 1 hit, #21238 (closed: an RLS write check on a multi-valued field, a different door). None covers this.

Dedupe words: os verify fidelity gap multiple select; derive scalar write select multiple true; app-todo verify exit 1 tags; verify derive select multiple set compare.


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

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratebugSomething isn't workingdomain:clipriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions