refactor: architecture-backlog cleanups (dead schema normalizer, dialect agreement test) - #796
Conversation
normalizeSchemaOptions was called nowhere and exported from no barrel, and had diverged from the live Schema.extendSchemaOptions (it skipped strict entirely and name for pagination/relations).
The expression encoder predicts tokenizer acceptance via FILTER_EXPRESSION_KEYWORDS and FILTER_FIELD_SEGMENT_PATTERN from @rapiq/parser-expression; until now no spec asserted the prediction against the parser's actual behavior. Pin both directions: accepted field names must decode back to the same condition, rejected ones must also fail to decode when hand-spelled.
|
Warning Review limit reached
Next review available in: 37 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Small cleanup PR from the architecture-deepening backlog (follow-up to the exploration behind #791/#792).
core/src/schema/normalize.ts—normalizeSchemaOptionswas dead code: called nowhere, exported from no barrel, and already diverged from the liveSchema.extendSchemaOptions(it skippedstrictentirely andnamefor pagination/relations). A reader learned a contract the running code doesn't honor.FILTER_EXPRESSION_KEYWORDS+FILTER_FIELD_SEGMENT_PATTERNfrom @rapiq/parser-expression, but no test asserted the two packages agree. The new spec pins both directions: every field name the encoder accepts must decode back to the same condition, and every name it rejects (including the full exported keyword table) must also fail to decode when hand-spelled.Checks
@rapiq/core: build + 361 tests pass@rapiq/codec-url: 234 tests pass (incl. the new agreement spec)