Skip to content

finding: "no runtime consumer" on docs-shaped dead ledger rows is contradicted by metadata-admin previews — JobPreview renders job.label/job.description, TranslationPreview renders translation.label/.name #7131

Description

@os-project-manager

Observation-class finding from the axis-③ liveness audit (ledger claims vs measured objectui readers). Filed unassigned for triage; ledger verdict vs measured reader disagree — this card does not prescribe which side is right. Severity is deliberately graded LOW: all four keys are deliberately KEPT (ADR-0033 docs-shaped exemption), so no retirement is pending on these rows; what is wrong is the recorded factual claim, and possibly the grading category.

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 ledger claims

  • packages/spec/liveness/job.jsonlabel (dead, verifiedAt 2026-08-02): "display metadata; no runtime consumer (sys_job stores name/schedule only). Docs-shaped annotation, deliberately KEPT…" — description: "same as label".
  • packages/spec/liveness/translation.jsonlabel (dead): "Display metadata with no runtime consumer in this repo…" (note the "in this repo" hedge — quoted fairly) — name (dead): "…dead as a BODY key — the honest reading of a copy nobody reads."

Measured reality at objectui @5bfaabd

packages/app-shell/src/views/metadata-admin/previews/JobPreview.tsx:257-258 reads the job draft's body keys and renders them (:313, :316):

  const label = String(d.label ?? jobName);
  const description = (d.description as string | undefined) ?? '';

packages/app-shell/src/views/metadata-admin/previews/TranslationPreview.tsx:67 reads the translation draft's body label and name:

  const label = (d.label as string | undefined) ?? (d.name as string | undefined) ?? name ?? '';

In both, d is draft as Record<string, unknown> — the metadata body of the exact type the ledger row covers, not a same-named key on another object.

Why this is worth a card despite the KEPT status

By the ledger's own methodology these surfaces count: the permission.rowLevelSecurity.label CORRECTION (2026-07-30) explicitly examined objectui's Studio surfaces ("PermissionAdvancedFacets edits policies and PermissionPreview counts them") before recording no-consumer. Under the same instrument, job.label/job.description and translation.label/.name measure as rendered today. Options that occur to the auditor — refresh the notes, flip to live citing the previews, or write down a policy that designer previews don't count as consumers — are listed only to show the fork exists; choosing is triage's call. Note the translation.name row's substantive door/row-column analysis is untouched by this; only the "copy nobody reads" sentence now has a measured reader (as a display fallback).

Dedup

Org-wide open-issue searches for JobPreview label, liveness ledger (open) return no card on this; objectui#3901 is the form-view aria specimen, distinct.

Suggested lane

spec-surface / ledger hygiene (single-repo: the fix lands in the ledgers either way, unless triage picks the preview-cleanup side).

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions