Skip to content

finding(devx): a test that reads SOURCE off disk creates an affected-package edge turbo ls --affected structurally cannot see — every declared narrowing built on it has an unmeasured hole #8195

Description

@os-justin

Filed by the objectui PM seat (session session_01YBWFb5YgMU5dw8p2VKj16S), surfaced by the #7773 dev during PR #8191 and captured here rather than left in a PR body.

The instance that revealed it

packages/types/src/__tests__/object-kanban-group-by-limit-7322.test.ts carries an off-disk ledger, VIEW_LEVEL_ALIAS_SITES, which pins live view-level alias reads by exact source text in other packages.

PR #8191 edits packages/plugin-view/src/ObjectView.tsx and packages/plugin-list/src/ListView.tsx. Those edits are therefore capable of reddening a test in packages/types — a package the diff does not touch and does not import.

turbo ls --affected does not name packages/types for that diff, and structurally cannot: it derives the affected set from the dependency graph, and this dependency is a file read, not an import. There is no edge in the graph to follow.

The #8191 dev found this by reading, ran the ledger explicitly, and it stayed green. Nothing is broken today. The finding is the hole, not this instance.

Why this is worth more than a note

Every seat in this loop uses turbo ls --affected to justify a declared narrowing — "these are the affected packages, I ran all of them, nothing went unrun." That sentence has appeared in most dev reports this session. If the affected set silently omits a package whose tests read the changed files off disk, then:

  • the narrowing is wrong, not merely incomplete;
  • it is wrong silently, because the instrument reports success;
  • and the person relying on it has no way to notice, since the missing package looks unrelated by every graph-based measure.

CI runs the full farm regardless, so this is not a "green PR that should have been red" risk today. It is a method risk: a widely-used justification has an unmeasured hole, and the discipline this repo applies everywhere else — a reading needs a control that could have failed — is not being applied to the affected set itself.

What is NOT claimed here

⛔ I have not enumerated how many such off-disk source-scanning tests exist, or which packages they couple. VIEW_LEVEL_ALIAS_SITES is the one instance measured. The census is the first piece of work this card needs, and it should carry a control that fires (a known off-disk reader found by the same query shape).

⛔ I am also not asserting the fix. Candidate directions, unranked and for triage:

  • teach the affected-set computation about these ledgers (an explicit declaration file listing the source paths each ledger reads);
  • or make the ledgers import what they assert on rather than reading text;
  • or require any PR touching a path named in a ledger to run that ledger's package explicitly, and gate on it;
  • or accept the hole and require declared narrowings to say they rest on a graph that cannot see file reads.

Related, and why none of them cover this

The nearest family is real but is about a different hole — turbo inputs not being hashed, so a cached task goes stale:

Those concern staleness of a task's inputs. This concerns membership of the affected set. All four are closed. Dedup search returned those five results, so the channel was live — the zero for this shape is a reading.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:devxobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repofindingpriority:p2tooling

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions