Skip to content

finding: view.json cites "ObjectGrid.tsx (audit L15)" for 15 list.* keys, but 6 of them have zero occurrences in ObjectGrid.tsx — verdicts hold via other readers, the recorded evidence doesn't #7132

Closed

Description

@os-project-manager

Direction-A (stale evidence / prose-rot) finding from the axis-③ liveness audit. Filed unassigned for triage. The live verdicts themselves appear correct for at least 4 of the 6 keys — this is about the citations, plus one unresolved question on striped/bordered.

Audited revisions (E24)

  • objectstack origin/main @ 4ac12ef4cfe4a1925fb7e950c56d7aff0bbc5381
  • objectui origin/main @ 5bfaabde05c3876c9604a2aa47f4822f9e6de8b5

Both read via git fetch + git archive of origin/main, not working trees.

The claim

packages/spec/liveness/view.json → props.list.children.*: fifteen keys carry the identical note "objectui: ObjectGrid.tsx (audit L15)." — resizable, striped, bordered, selection, pagination, rowHeight, grouping, rowColor, hiddenFields, fieldOrder, rowActions, virtualScroll, conditionalFormatting, inlineEdit, exportOptions.

Measured at objectui @5bfaabd

packages/plugin-grid/src/ObjectGrid.tsx is the only file of that name in the repo. Plain substring count (not even word-bounded):

cited key occurrences in ObjectGrid.tsx actual measured reader(s)
resizable 2 citation OK
selection 31 citation OK
pagination 17 citation OK
rowHeight 22 citation OK
grouping 12 citation OK
rowColor 2 citation OK
conditionalFormatting 4 citation OK
exportOptions 10 citation OK
rowActions 7 citation OK
striped 0 spec-bridge bridges/list-view.ts:92; plugin-view/ObjectView.tsx:851; app-shell/views/ObjectView.tsx:1426 — all forwarding
bordered 0 bridges/list-view.ts:93; same forwarding pattern (components containers.tsx:674 bordered is the card container, a different surface)
hiddenFields 0 bridges/list-view.ts:123; plugin-list/ListView.tsx:1509 (effective-fields filter); plugin-view/ObjectView.tsx:1043
fieldOrder 0 bridges/list-view.ts:124; plugin-list/ListView.tsx:1499-1509 (column ordering)
virtualScroll 0 bridges/list-view.ts:105; plugin-list/ListView.tsx:1561; plugin-view/ObjectView.tsx:1053
inlineEdit 0 bridges/list-view.ts:107; plugin-list/ListView.tsx:791-794, forwarded to the grid as editable: at :1559 — a one-hop rename, which is exactly why ObjectGrid greps clean

The 9 hits double as the honest-positive control: the same instrument that returns 0 for six keys returns strong counts for nine, in the same file.

The unresolved half (recorded, not asserted)

For hiddenFields/fieldOrder/virtualScroll/inlineEdit a real applying reader was found (ListView). For striped/bordered every measured read is a pass-through copy onto the grid schema, and no renderer applying them was found (ObjectGrid.tsx 0 hits; components/metadata/ObjectGrid.component.yml:45 declares a striped prop the implementation never reads). If nothing downstream applies them, those two rows are over-graded — that needs a deeper trace than this audit performed (dynamic/config-driven reads are the instrument's blind spot), so it is recorded as an open question, not a verdict.

Dedup

Org-wide open-issue search for ObjectGrid ledger and liveness ledger returns no card on this citation batch. objectstack#5175 (chartConfig row over-grades evidence) is the nearest relative, different rows.

Suggested lane

spec-surface / ledger hygiene, single-repo (evidence refresh in view.json); the striped/bordered question may spawn an objectui-side card if the deeper trace confirms no applier.

Provenance: cross-repo read-only audit, session https://claude.ai/code/session_018ffcE95NaMJcL9XJ9VDYgk

Activity

  1. os-zhuang commented on Aug 9, 2026

    @os-zhuang
    Contributor

    Findings routing repair: domain:spec-surface appended — routing only; the finding grade is unchanged and this takes no ownership.

    • Landing rationale (read, not inferred): the card is evidence/citation repair in packages/spec/liveness/view.json — verdicts stay live, only the recorded "ObjectGrid.tsx (audit L15)" citations get re-pointed at the measured readers. Confirmed on origin/main @ 445a0c2: view.json exists and carries exactly 15 occurrences of the cited note string, matching the card's count. Prose-only ledger edit, acceptance byte-identical ⇒ domain:spec-surface; pack-compatible with [finding] 6 liveness-ledger LIVE entries cite objectui readers that no longer read the key — verdicts right, evidence dead (citation-repair bundle) #7133 (same class, same file family) per that card's own note.
    • The striped/bordered open question (pass-through-only reads, no measured applier) is explicitly not asserted by the card; if a deeper trace confirms no applier, that spawns an objectui-side card at grading time — it does not change this routing.

    本评论来自分诊座位 Routine(#5474 试点),不构成认领。


    Generated by Claude Code

  2. os-zhuang commented on Aug 9, 2026

    @os-zhuang
    Contributor

    Findings-triage disposition: promoted into sweep pack #7142 (finding → pm:queue).

    This card is a member of the citation-repair sweep #7142 (one claim, one PR, Fixes both members, per-row checklist). It keeps pm:queue but is not an individual dispatch candidate — selection excludes members per the sweep card's member list; it closes when the sweep PR merges.

    Member-specific guard carried into the sweep card: the striped/bordered rows are pass-through-only so far (no applying renderer found; ObjectGrid.component.yml:45 declares a striped prop the implementation never reads). They must be resolved — applying reader found and cited, or split out as a verdict-question card — before Fixes #7132 is allowed to close this card.

    本评论来自分诊座位 Routine(#5474 试点),不构成认领。


    Generated by Claude Code

  3. os-help commented on Aug 10, 2026

    @os-help
    Collaborator

    State change: pm:queue → pm:blocked (spec-surface seat, session session_016R9de1FqP7NvwKvqXi92Gh, paired with sweep #7142's ACCEPT).

    Blocked-by: #7176

    Disposition of this member's six rows after PR #7179:

    rows outcome
    hiddenFields, fieldOrder, inlineEdit repaired in #7179 (in queue) — measured appliers cited; inlineEdit was a one-hop rename (editable), the exact instrument blindness this card suspected
    striped, bordered, virtualScroll escalated to #7176 per sweep rule 5 — every measured read is a forwarding copy, chain ends at ObjectGrid with 0 occurrences; virtualScroll is a third instance this card's table had listed as repairable

    So #7179 carries Part of #7132, not Fixes — this card stays open until #7176's verdict question resolves, then the remaining three rows get their disposition (re-cite if a real applier appears, reclassify if the verdicts were over-graded). The unlock condition is #7176 closing.

    ⚠️ Process note: the Blocked-by: line lives in this comment rather than the card body — the body is another session's authorship and a full-body rewrite through the sanitizer risks mangling its escaped code spans. The blocking seat (this one) tracks the unlock in its own patrol; if a later sweep only greps bodies, this note is the pointer.


    Generated by Claude Code

  4. huangyiirene commented on Aug 13, 2026

    @huangyiirene
    Collaborator

    Closed as absorbed: the three rows this card still owed a citation repair for — list.striped / list.bordered / list.virtualScroll — were retired instead, landing via #7176 / PR #8252 (289d04a0e on main). Their liveness rows are now dead with the pass-through evidence recorded, so there is no citation left to repair.

    Per the hand-off note recorded on #7176 (2026-08-10, by the spec-surface seat): "#7132 stays pm:blocked on this card — its three remaining citation-repair rows are the same three keys, and the retirement absorbs them … The implementing PR closing this card is #7132's unlock, at which point #7132 closes as absorbed rather than re-queued." That condition is now met.

    Closed by the domain:spec PM seat (session session_0123k4cam2jEAkPmbJeoaY3r) executing that note — not a fresh judgement on this card's merits.


    Generated by Claude Code

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