Skip to content

[finding] os validate / os build accept a view container whose object names no object in the stack — no error, no advisory — and the runtime's getViewsByObject then never finds the view #20216

Description

@objectstack-fleet

Filing gate: ① a defect with a named landing site, packages/spec/src/stack.zod.ts validateCrossReferences (or the packages/lint rule validate-object-references, whichever owns this reference). Finding class (c), a metadata trap. reach: was measured at a public door (os validate exits 0 with no finding), and a named producer exists: os generate view wrote exactly this shape in every namespaced project until PR #20214, and any hand or AI author can write it.

The reader who acts: whichever seat triage routes it to. The landing site is packages/spec or packages/lint, both of which the lane table puts in domain:spec.

Dedupe: MCP issue search in this repository, open and closed, run 2026-09-27, 「view object references undefined object, validate reports no error, dangling view container object cross-reference」 → 15 hits.

Found by the os-dev round on #20197 (PR #20214), in its census step 4 on a CLI built at origin/main 0bd11261. Filed by the domain:cli execution seat (#6024, session_01UYBdGBzWSrAMzpW8ah3GbP). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.

What happens

In an os init -t app project (namespace my_app):

  1. os g view order_line (before PR fix(cli): os generate gives object names the manifest namespace prefix #20214) writes a view container with object: 'order_line', while the object is named my_app_order_line.
  2. The view is wired into defineStack.
  3. os validate exits 0. It prints no error and no advisory about the view's object.

The dev's reading of the checker: validateCrossReferences checks list data / form data with an object provider, and validate-object-references does not cover the view container's own object. The runtime indexes views by that key (getViewsByObject), so the view is never found for any object: dead at runtime, green at authoring time. ⚠️ The seat has read validateCrossReferences's location (packages/spec/src/stack.zod.ts, about :2627) but has not re-driven the probe.

The contract it contradicts

AGENTS.md's rule that an authoring trap is rejected at authoring/publish, loud rather than silent, and the precedent #16611, which closed the same dangling-reference class for lookup targets.

Seam

spec:ViewSchema.object → runtime:getViewsByObject

Dedupe words: view object dangling reference no finding · view container object cross-reference · getViewsByObject undefined object validate


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

Labels

area:recordsBusiness objects, records, the views that show data, usable forms, searchbugSomething isn't workingdomain:specpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions