Skip to content

v0.3.0

Choose a tag to compare

@DrSkillIssue DrSkillIssue released this 23 Mar 02:59

v0.3.0 — StyleCompilation architecture, LSP redesign, analysis dispatcher

Full architectural rewrite from the legacy SolidGraph/CSSGraph/cross-file/ system to a Roslyn-inspired compilation model.

Highlights

  • StyleCompilation — immutable compilation object replacing the ad-hoc graph caching layer. Owns all CSS/Solid trees and a unified SymbolTable.
  • Cascade binder — full CSS cascade resolution per element with selector matching, specificity ordering, conditional guard tracking, and layout fact computation.
  • Analysis dispatcher — tiered rule execution framework. 70+ rules migrated to self-contained modules with typed registry subscriptions.
  • Incremental tracker — dependency graph-based change propagation for minimal re-analysis.
  • LSP redesign — immutable Session model, unified diagnostic pipeline (push + pull), compilation builder, cancellation support, daemon rewrite.
  • Tailwind integration — TailwindValidator wired through SymbolTable.hasClassName() for class-name-aware rules. Arbitrary value batch validation across CLI, daemon, and LSP.

Bug fixes

  • css-layout-conditional-offset-shift: suppressed false positives for elements inside position: fixed/absolute containers.
  • no-duplicate-selectors: accounts for parent at-rule context.
  • Monorepo support: workspace files synced into TS program.
  • Replaced all Bun.spawn calls with Node child_process for runtime compatibility.

Breaking changes

  • Deleted cross-file/ directory, cache.ts, SolidGraph/CSSGraph classes.
  • Rule IDs unchanged but internal registration API moved from imperative visitors to defineAnalysisRule + registerConditionalDeltaAction / registerElementAction / etc.

See PR #33 for the full diff.