Skip to content

fix(lint): validate compound recipe slots together - #10

Merged
pathscale merged 3 commits into
masterfrom
fix/solid-2-boundary-validation
Aug 30, 2026
Merged

fix(lint): validate compound recipe slots together#10
pathscale merged 3 commits into
masterfrom
fix/solid-2-boundary-validation

Conversation

@pathscale

Copy link
Copy Markdown
Owner

Summary

  • validate recipe slot coverage across the complete compound Layout family
  • stop reporting each sibling Layout as missing slots rendered by another sibling
  • keep legacy manual-class Layout warnings without inventing slot-unused failures
  • bump solid-layouts-oxc to 0.2.2

Verification

  • Rust linter tests: 8/8 pass
  • Bun library tests: 8/8 pass
  • UI contract validation and production build pass against the updated linter

meh added 3 commits August 20, 2026 15:46
`boundaryFor()` maps Solid 1 to `solid-layouts/application-boundary` and Solid 2
to `solid-layouts/solid-2/application-boundary`, and the library generator uses
it, so a `solid: 2` build writes the solid-2 spelling into its entry.

`validateComponent()` did not ask. It greped for the hardcoded 1.9 specifier,
which made the pairing this package generates the pairing it rejects: a correct
Solid 2 bundle failed with

    <pkg>: <Name> entry has no application compiler boundary

naming a file that was exactly right. Neither specifier contains the other as
written, so `includes` cannot accidentally accept the wrong one either way round.

Thread the major from `compileApplication` through `resolveLayoutSource` to
`validateComponent` and ask `boundaryFor()`, which is what the plugin two
functions away already does. `boundaryFor(undefined)` still returns the 1.9
boundary, so nothing changes for a consumer that never sets `solid`.

Found from the consumer side: a Chuzz build on Solid 2 could not get a library
past validation with either arm. Generating for 1.9 emits `solid-js/web`
imports, a subpath Solid 2 does not export; generating for 2 failed the check
above. There was no combination that worked.

Two tests, both of which fail without the change: a solid-2 entry is accepted
under `solid: 2`, and a 1.9 entry is rejected under it. The boundary check had
no coverage at all, which is how the mismatch shipped.
@pathscale
pathscale merged commit 140fcce into master Aug 30, 2026
5 checks passed
@pathscale
pathscale deleted the fix/solid-2-boundary-validation branch August 30, 2026 11:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant