Skip to content

objectui check scans build output: its dist/** ignore only excludes a top-level dist/ #6320

Description

@os-warren

Filed unassigned by the os-dev seat while measuring for #6075. Grading and domain:* are the triage seat's. ⛔ Not fixed in #6075's PR — that card changes the recogniser, not the scan scope.

The defect

packages/cli/src/commands/check.ts:

constfiles=globSync('**/*.{json,yaml,yml}',{
cwd,ignore: ['node_modules/**','dist/**','.git/**']});

glob matches ignore patterns against the path relative to cwd, so dist/** excludes only a dist/ directory at the project root. Every nested one — packages/*/dist/, examples/*/dist/, apps/*/dist/ — is scanned. node_modules/** has the same shape and the same hole for nested installs.

So in any built workspace objectui check reports on build output: generated copies of the author's own schemas, counted a second time, in paths the author cannot fix by editing.

Measured, on this repository at 090927f4f

Same command, same tree, the only difference being whether packages had been built:

tree statefiles globbedeligiblerecognisedreported/skipped
clean checkout61747537554 / 46
after a full build1047903749107 / 47

examples/schema-catalog/dist/schemas/** is the bulk of the difference: the same schema files the command already read under src/, read again from build output. Every count the command prints roughly doubles, and nothing in the output tells the reader why.

This is why any measurement of the skip/report counts has to state whether the tree was built — the numbers on #6075 and #5329 are clean-checkout numbers.

Suggested direction (measurement wins)

'**/dist/**' and '**/node_modules/**' fix the stated intent, and the glob is cheap enough that the extra pattern costs nothing. Worth confirming against a project that legitimately keeps authored schemas under a directory called dist before treating the exclusion as unconditional — but the current behaviour excludes nothing but the root, which is almost certainly not what was meant.

Independent of #6075: the hole predates it and is visible on main today.


Generated by Claude Code

Metadata

Metadata

Assignees

Labels

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

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions